آشنایی با استاندارد پوزیکس

پوزیکس یا همان POSIX (که حداقل در ایران پوسیکس هم خوانده می شود) مخفف عبارت Portable Operating System Interface است و به مجموعه از استانداردهای IEEE گفته می شود که برای نوشتن برنامه های سازگار با یونیکس به کار می روند. البته این استاندارد را می توان در مورد هر سیستم عامل دیگری هم بکار گرفت. استاندارد اولیه پوزیکس، IEEE Std 1003.1-1988 بود که مجموعه به روز شده آن این روزها ISO/IEC 9945 خوانده می شود. وازه پوزیکس پیشنهاد بنیانگذار نرم افزار آزاد، ریچارد استالمن بود.

این استاندارد شامل ۱۷ سند جداگانه است که استانداردهای خط فرمان، رابط اسکریپت نویسی، برنامه‌های سطح کاربر، سرویس های و ابزارهایی مثل awk و echo و ed را به همراه ورودی خروجی های استاندارد (فایل، ترمینال، شبکه) و threadها و غیره را تعریف کرده است.

اسناد پوزیکس در حال در سه بخش تقسیم شده اند:

 APIهای کرنل

 دستورات و ابزارها

 تست‌های مربوط به بررسی تطابق با پوزیکس

برخی از سیستم‌هال عامل‌های کاملا سازگار با پوزیکس عبارت هستند از BSD/OS، HP-UX، Mac OS X، MINIX و سولاریس و OpenSolaris. لازم به ذکر است که سیستم عامل های FreeBSD، لینوکس، NetBSD، OpenBSD از جمله سیستم عامل هایی هستند که تا حد زیادی سازگاری با پوزیکس را حفظ کرده اند.

جالب است در انتها این را هم ذکر کنیم که طراحی خوب و کارای پوسیکس باعث شده تا سیستم‌ عامل‌های دیگر هم از طریق لایه‌های مترجم و ابزارهای تطبیق دهنده، به سمت سازگاری با پوزیکس حرکت کنند. از جمله این سیستم‌عامل‌ها می توان به سیمبین ۹، ویندوز NT و XP (پروفشینال با سرویس پک یک به بعد)، ویندوز سرور ۲۰۰۳ و ویندوز ویستا اشاره کرد.

مرتبط:

 مقاله انگلیسی ویکی پدیا که این نوشته ترجمه آزادی از آن است POSIX

 استاندارد پوزیکس

نماینده مجلس فنلاند: پیشنهاد تعطیلات یک هفته ای برای عشاق

ما که گزینه خوبی نداشتیم. آخر نماینده طیف اصلاح طلب جرات نداره توی روزنامه اش سه خط در مورد تبریک جایزه پروین اردلان آگهی قبول کنه.

اما فنلاند داستان دیگری است. تامی تابرمن نماینده پارلمان در یک پیشنهاد جنجالی، بحث پنجشنبه مجلس رو این کرده بود که دولت سالیانه هفت روز به عشاق تعطیلی بده تا بتونن زندگیشون رو رنگین تر کنند.

بنا به گفته تابرمن، این تعطیلات می‌تونه به زوج ها کمک کنه تا به روابطشون استحکام بدن و در طول این هفت روز از نظر «ارو‌تيک و احساسی» وقت رو به خودشون اختصاص بدن.

حالا مشکل مجلس چی بوده؟ عدالت. البته نه از نوع سهام عدالت و کتک سر چهارراه ها به خاطر لباس بلکه به خاطر ابهام در مورد حقوق برابر برای افراد مجرد. البته تذکر اریک پولیاینن هم به جا بوده: همین تعطیلات چهار هفته ای فعلی در طول سال، معمولا خطرناک ترین روزها برای روابط عاشقانه است و اتفاق های بد معمولا در این روزها می افتند.

منبع: Helsingin Sanomat از طریق بویینگ بویینگ.

لینوکس هم ویروس دارد

در مطلب قبلی ضد ویروس های لینوکس چیستند و آیا اصولا به آن‌ها احتیاج داریم؟ در مورد مفهوم ویروس در دنیای لینوکس نوشته بودم و گفته بودم که آنتی ویروس های دنیای لینوکس به خاطر بررسی ویروس های ویندوز نوشته شده اند چون در دنیای لینوکس، ویروس وجود ندارد.

اون مطلب کامنت های فراوانی داشت که مستقل از حواشی، دو نکته رو یادآوری می کردند:

لینوکس هم ویروس دارد (از جمله فهرست ۲۱ تایی ویروس های دنیای لینوکس که در صفحه بدافزارهای لینوکس در ویکیپدیا)

هیچ نرم افزاری کامل نیست و نباید در مورد هیچ نرم افزاری ( و از اون بالاتر هیچ چیزی) تعصب داشت.

هر دوی این گزاره ها از نظر من هم درست هستند. اول از دومی شروع می کنیم. لینوکس یک نرم افزار است و مثل هر نرم افزار یا ساخته دیگری، اشکال دار. گاهی این اشکال ها آنقدر بزرگ می شوند که افراد یک ویروس مبتنی بر آن می نویسند. این اتفاقی است که در مورد ویروس staog افتاد. این ویروس که اولین ویروس دنیای لینوکس بود، از چند باگ موجود در سیستم عامل استفاده می کرد و پخش می شد. نکته جذاب دنیای لینوکس این است که این ویروس هیچ وقت در جهان پخش نشد. دلیل؟ آزاد بودن نرم افزار لینوکس باعث می شود که اینجور اشکالات به سرعت حل شوند و همه کامپیوترهای متصل به اینترت جهان (که منطقا ممکن است ویروس را بگیرند) با یک آپ دیت در مقابل آن ایمن می شوند. در مورد این ویروس هیچ نیازی به ویروس کش نبود چون مثل دیگر ویروس ها با یک بروز رسانی، ماجول مشکل دار اصلاح می شد و در نتیجه گسترش ویروس متوقف.

اما گزاره اول. گزاره اول هم درست است. در دنیای لینوکس چیزی



به این فکر کنید که در یک اداره رییس زیر یک برگه کاغذ یکی از پرونده ها
بنویسد: «یک کاغذ اتفاقی از یک پرونده بیرون بیاورید و زیرش این جمله را

بنویسید و بدهید رییس امضا کند» و آن را امضا کند.

حدود بیست سی تا ویروس شناخته شده و مشهور وجود دارد. یعنی حداقل بیست یا سی بار تلاش شده ویروس لینوکسی تولید شود ولی هنوز هم می بینیم که هیچ کس نگران ویروس ها نیست. چرا؟

بگذارید قبل از جواب دادن، اول در مورد خود ویروس حرف بزنیم. اگر تعریف ما از ویروس، برنامه ای باشد که خودش را به فایل های دیگر اضافه کند و پخش شود، تقریبا هر چیزی می تواند ویروس داشته باشد. به این فکر کنید که در یک اداره رییس زیر یک برگه کاغذ یکی از پرونده ها بنویسد: «یک کاغذ اتفاقی از یک پرونده بیرون بیاورید و زیرش این جمله را بنویسید و بدهید رییس امضا کند» و آن را امضا کند. چه اتفاقی می افتد؟ با دیدن اولین برگه یک نفر این متن را زیر یک برگه دیگر می نویسد و برای امضا می دهد به رییس. حالا کافی است رییس آن را امضا کند تا ویروس به زندگی اش ادامه بدهد تا همه فایل ها را آلوده کند.

این تعریف از ویروس به هر چیزی قابل اعمال است و بسیار بسیار راحت قابل پیاده سازی. اما برداشت من از «ویروس» در آن مقاله ویروس به شکل عملی بود: خطری که هر بار کول دیسک را به کامپیوتر ویندوزی می زنیم ما را تهدید می کند. ترسی که از بازکردن هر فایل مشکوک داریم. نگرانی ای که با رفتن به سایت های مشکوک، تشدید می شود. دلهره ای که پیدا می کنیم وقتی می بینیم error های کامپیوتر در حال بیشتر و بیشتر شدن است و سرعتش در حال کمتر و کمتر شدن. در این مفهوم عملی از ویروس، تکرار می کن که لینوکس ویروس ندارد. اما چرا؟

بحث اول که در بالا هم به آن اشاره شد، آپدیت های دائمی نرم افزار است. ویندوز XP هنوز هم که هنوز است مشکل دریافت اسپم روی پورت ۹۳۵ (اگر درست بگویم) را دارد و هنوز هم که هنوز است ویروس هایی با تکنیک New Folder.exe به آن حمله می کنند ولی ویروسی مثل staog بیشتر از چند ساعت هم دوام نمی آورند و در بدترین حالت بعد از یکی دو روز که از مشاهده اولین نمونه بگذرد، سیستم اصلاح می شود. این به این معنا نیست که سیستم باگ ندارد بلکه به این معنا است که باگ ها بسیار سریع اصلا حمی شوند و افتخار بهترین هکرهای جهان هم می شود اصلاح کردن یک باگ در کرنل و نه نوشتن یک ویروس برای سوء استفاده از یک ضعف و نمایش قدرت به شرکت بزرگی مثل مایکروسافت.

نکته بعدی که به نظر من مهم تر هم هست، این است که در لینوکس چیزی به اسم «گرفتن برنامه از این و آن» نداریم. ویروس چطور به کامپیوتر ویندوزی می آید؟ از یک طرف از طریق ضعف سیستم عامل و پورت های باز و ضعف mount کردن و ضعف Internet Explorer و از طرف دیگر از طریق دیسک و کول دیسک الوده و برنامه های ویروسی و … در دنیای لینوکس من برنامه را مستقیما از نویسنده اصلی یا مستقیما از حامی توزیع مورد استفاده ام (مثلا ubuntu) دریافت و نصب می کنم. در روند نصب هیچ رابط میانی (حتی سی دی!) وجود ندارد و در نتیجه ویروس ها فرصت نمی کنند به چیزی بچسبند یا از جایی ظاهر شوند. در عین حال تمام برنامه های از طریق کدهای بخصوصی کنترل می شوند و در صورت تغییر حتی یک بیت در آن ها سیستم عاملم به من می گوید که برنامه ای که می خواهم نصب کنم، مشکوک است. با این روش اصولا ویروس ها زنده نمی مانند. ویروس برای زندگی نیاز دارد به یک چیزی بچسبد. در دنیای ویندوز حتی اگر شما برنامه را از فروشنده اصلی بخرید، آنقدر کپی غیرقانونی و برنامه اجرایی در وب وجود دارد که ویروس ها به راحتی به زندگی ادامه می دهند ولی در دنیای لینوکس عملا در اینترنت برنامه اجرایی ای وجود ندارد که به ویروس ها اجازه زنده ماندن بدهد.

فکر می کنم استالمن در جایی توضیح داده که چرا لینوکس ویروس ندارد. دلیلش بامزه است: در صورت علاقه به اجرای ویروس باید به سایت نویسنده بروید، ویروس را دانلود کنید، کمپایل کنید، به آن دسترسی اجرایی بدهید و بعد با دسترسی مدیر سیستم، اجرایش کنید تا فایل های کامپیوتر خودتان را آلوده کند. البته متاسفانه این ویروس با فرمت کامپیوتر شما از بین خواهد رفت چون احتمالا بقیه کاربران علاق های ندارند آن را کمپایل و اجرا کنند و خود به خود هم که نمی تواند به کامپیوترهای دیگر نفوذ کند.

در نهایت اضافه کنم که من نگران ویروس در کامپیوترم نیستم چون با لینوکس کار می کنم. این واقعیت دارد (: در عین حال این هم کاملا واقعیت دارد که بعضی ها توصیه می کنند که در دنیای لینوکس هم باید دائما ضد ویروس اجرا کرد. این تنوع عقیده است که دنیای لینوکس را جذاب می کند. فعلا هم که هیچ کدام از این دو عقیده ضرر نکرده است. حداقل جریان برای من این است که در یک شبکه ویندوزی، کامپیوتر من ایمن است و دوستانم بارها و بارها حافظه های جانبی شان را برای ویروس زدایی به من داده اند (:

آه اشتباه نشود! لینوکس کامل نیست. لینوکس ضعف هایی هم دارد. اتفاقا سه چهار روز است که قرار است در مورد یکیش تحقیق کنم و هنوز موفق نشده ام: bare metal backup. اگر من لینوکس را دوست دارم به خاطر کامل بودن یا حتی قوی تر بودنش نیست، به خاطر زیباتر بودنش است (: آنهم در سطح فلسفی (: برای اثبات ادعایم در مورد آگهی به نقاط ضعف لینوکس، برایتان در موردش خواهم نوشت (:


نیمه مرتبط: بدترین کرم‌های کامپیوتری در طول تاریخ

ضد ویروس های لینوکس چیستند و آیا اصولا به آن‌ها احتیاج داریم؟

مشهور است که لینوکس ویروس ندارد. این حرف کاملا درست است اما اگر اینطور است پس چرا در لینوکس برنامه‌های ضد ویروس داریم؟

در لینوکس چندین برنامه ضد ویروس و ویروس کش وجود دارد که مشهورترین آن‌ها clamAV است. اینها به چه دردی می خورند؟ درک این سوال عمیقا وابسته به درک شما از مفهوم ضد ویروس در ویندوز و لینوکس است. اینها با هم تفاوت دارند.

در ویندوز، ضد ویروس برنامه ای است که در پشت زمینه اجرا می شود و هر فایلی که استفاده می کنید را از نظر داشتن ویروس بررسی می کند و در صورت کشف ویروس آژیر می کشد و اجازه اجرای فایل را نمی دهد.

در لینوکس اصولا جریان اینطور نیست چون ویروس های کامپیوتری توانایی صدمه زدن به لینوکس را ندارند و در نتیجه هیچ نیازی نداریم که یک برنامه دائما اجرا شود و همه فایل های مورد استفاده را چک کند.

در لینوکس برنامه ضد ویروس، برنامه ای است که در صورت نیاز آن را اجرا می کنید تا یک فایل یا دایرکتوری را از نظر داشتن ویروس های ویندوزی بررسی کند. مثلا فرض کنید من یکسری فایل از دوستی گرفته و می خواهم آن ها را از نظر داشتن ویروس‌های ویندوزی بررسی کنم. می زنم:


همانطور که می بینید، تک تک فایل ها بررسی شده اند و هیچ ویروسی پیدا نشده. پس امن است که این فایل ها را روی یک کامپیوتر ویندوزی اجرا کنم.

اما وقتی در دنیای لینوکس ویروس نیست، چه کاری است که شما بخواهید فایل ها را بررسی کنید؟ منطقا هم هیچ وقت نیازی به این کار نیست چون این ویروس ها برای لینوکس خطرناک نیستند. اما در سه حالت این نیاز پیش می آید:

  •  بخواهید یک mailserver داشته باشید. در این حالت لازم است ایمیل های ورودی و خروجی را از نظر داشتن ویروس بررسی کنید.

  •  بخواهید یک file server داشته باشید. یعنی دستگاه لینوکسی شما مکانی باشد برای ذخیره فایل های دیگران

  •  بخواهید به دوستانتان لطف کنید و هر وقت فلش یا فایلی به شما دادند، برایشان آن را اسکن کنید و اطلاع بدهید که چه ویروسی دارند (:

جمع بندی

لینوکس ویروس ندارد اما آنتی ویروس هایی دارد که می توانند ویروس های ویندوزی را شناسایی کنند یا از بین ببرند. کاربرد این آنتی ویروس ها در جاهایی است که با فایل های ویندوزی سر و کار دارید اما بر خلاف آنتی ویروس های ویندوز، آنتی ویروسهای لینوکس نیازی به اجرای دائمی ندارند بلکه به شکل موردی می توان آن ها را روی فایل‌ها / دایرکتوری های خاص اجرا کرد.

مرتبط
لینوکس هم ویروس دارد
جمعه‌ها: پاپیلوماویروس دوستمون نیست ولی خوبه باهاش آشنا بشیم
فرصتی برای استراحت: همین حالا به ویروس ساعت خوش مبتلا بشین

امروز هشت مارس من نیست

امروز هشت مارس است ولی هشت مارس من نیست. در هشت مارس من مردم شاد هستند. در هشت مارس من در جشن های خیابانی خواهیم رقصید. در هشت مارسی که من دوستش دارم زن و مردی وجود ندارد و آدم ها با هم برابرند چون همه آدمند. در هشت مارسی که من از آن لذت می برم هیچ پلیسی با باتوم حضور ندارد. در هشت مارس من، زن و مرد شادند. می‌رقصند. بازی می کنند و می خندند. در هشت مارس من هیچ زنی بلندگو ندارد تا فریاد بکشد که «ما حقوق برابر می خواهیم» در هشت مارس من، لازم نیست من پلاکاردی داشته باشم که رویش نوشته باشد «تمام حقوق بشر، برای تمام انسان ها».



در هشت مارس من، کوبیدن سنگ به سر زنانی که تا نیمه
در زمین دفن شده اند، خاطره ای وحشتناک ولی

مبهم از دوران گذشته به حساب می آید.

هشت مارس من این دور و برها نیست. هشت مارس من در فکرم است. در خیالم. هشت مارس من زیبا است و عاشقانه. شاید غیرواقعی باشد ولی چیزی است که من دوستش دارم. در هشت مارس من، مردم از آدم های معمولی ای حرف می زنند که در روزگاری دور علیه بی عدالتی حرف می زدند و نیازی به قهرمانی نداشتند. باور آن‌ها، بهترین قرمانی شان بود. در هشت مارس من مردم برای عدالت جشن می گیرند و برنامه گسترش آتی آن را می ریزند.

امروز هشت مارس است ولی هشت مارس من نیست. هشت مارس من شاد است. در هشت مارس من هیچ کس به خاطر امضا کردن یک برگه درخواست حقوق حداقلی در زندان نیست. در هشت مارس من، کوبیدن سنگ به سر زنانی که تا نیمه در زمین دفن شده اند، خاطره ای وحشتناک ولی مبهم از دوران گذشته به حساب می آید. در هشت مارسی که من جشنش می گیرم، کسی روی انسان ارزش ثابت پولی نمی گذارد و اعلام نمی کند که ارزش پولی زن نصف مرد است. در هشت مارسی که من دوستش دارم، زنگ تلفن، تهدیدی برای آدم ها نیست. در هشت مارس، چیزی به اسم دولت با ابزاری به اسم پلیس با دروغی به اسم امنیت، خفقان نمی آفریند. آن روز هیچ کس سر چهارراه به مردم به خاطر آنچه به زور پوشیده اند توهین نمی کند. در هشت مارس من آدم ها شاد هستند و نیازی به پوسترهای «تهران: شهر اخلاق» نداریم. در هشت مارس من آدم ها با هم خواهند رقصید، خواهند خواند و انسان بر خلاف تبلیغات دولت، انسان خواهد بود.

هشت مارس من شاید سال های سال نیاید. من منتظر دیدن هشت مارسم نیستم چون نیازی به دیدنش ندارم. هشت مارس من در فکرم است و زیباترین لحظه زندگی ام وقتی است که می بینم یک نفر دیگر هم در هر گوشه ای از دنیا، همین فکر را دارد. این برایم زیبا است و تحقق واقعی هشت مارس. من با هشت مارس زندگی می کنم، حتی اگر پلیس با باتوم دهانم را ببندد. هشت مارس و برابری انسان برای من آنقدر وسیع است که یک لحظه کوتاه از تاریخ، چیزی از شکوهش کم نمی کند چه برسد به یک ضربه باتوم یا یک شلاق شکنجه یا یک سلول زندان. هشت مارس بر هر کسی که اندیشه ای آزاد دارد، مبارک باد (:

معرفی کتاب:‌ رویای کدنویسی


خوندن این کتاب رو تازه تموم کردم. یک کتاب فوق العاده که اگر دیکتاتور بودم، خوندنش رو برای هر کسی که با نرم افزار کار می کنه (می نویسه یا استفاده می کنه) اجباری می کردم.

عنوان فرعی کتاب «دو دوجین برنامه نویس، سه سال، ۴۷۳۲ باگ و تلاشی برای ارتقای نرم افزار است» است. رویای کدنویسی یا Dreaming in Code رو اسکات روزنبرگ نوشته ولی نه به شکلی که دیگر کتاب ها نوشته می شن. اسکات سه سال با یک گروه رویایی زندگی کرده و خاطراتش رو به شکل یک کتاب منتشر کرده. این کتاب داستان نیست. کتاب مهندسی نرم افزار هم نیست. تاریخ نگاری هم نیست. اما همه اینها هم هست. در این کتاب برنامه نویسان پروژه چندلر در طول سه سال تعقیب شده اند و قدم به قدم نوشته شدن این نرم افزار به شکل یک کتاب سرگرم کننده منتشر شده.

درسته. من هم قبل از خوندن کتاب اسم چندلر رو نشنیده بودم. چندلر از چندین سال قبل شروع شده و قرار است بهترین گزینه برای مدیریت کارهای شخصی و شرکتی افراد باشه. چندلر قرار بوده تاریخ برنامه نویسی رو تغییر بده. چندلر قرار بوده با Exchange Server مایکروسافت رقابت کنه و چندلر قرار بوده تحولی باشه برای همه کاربران جهان. اما حداقل تا این لحظه که اینطور نشده. فکر می کنید چرا؟ برنامه نویسان بد بودند؟ اصلا اینطور نیست. بهترین برنامه نویسان جهان در این پروژه مشارکت داشتند از جمله افراد فایرفاکس و لوتوس ۱-۲-۳. پول نبود؟ چرا بود. ثروت شخصی نویسنده لوتوس و کمک سازمان های دیگه. مدیریت قدیمی بود؟ اصلا! پیشرفته ترین سیستم های مدیریت در این شرکت استفاده شده اند.

پس مشکل کجا بود که من و شما هنوز چندلر رو ندیدیم؟ این کتاب می خواد به این سوال پاسخ بده و برای رساندن ما به جواب، ما رو با عمق مهندسی نرم افزار، تاریخچه نوشته شدن نرم افزار، مشکلات پیش روی شرکت های نرم افزاری، تحولات مدیریت نرم افزار و … آشنا می کنه. هر فصل کتاب نشون دهنده یک فصل از نوشته شدن نرم افزار است و شامل بررسی مشکلات و ایده ها.

کتاب بسیار جذاب است و موفق شد که شدیدا دیدگاه من رو نسبت به نرم افزار تغییر بده. به عنوان آدمی که ۲۲ سال با کامپیوترها بوده و برنامه نوشته، تغییر دادن دیدگاهم کار هر کتابی نبود. مطمئن باشید که خوندن این کتاب برای هر کسی که در صنعت نرم افزار است لذت بخش و جذاب است و برای هر کسی که می خواهد یک پروژه نرم افزاری رو مدیریت کند، یک امر لازم (:

نکته اضافی: من کتاب رو نخریدم بلکه دزدیدم! یک نسخه دیجیتال وارز رو از شبکه های Peer2Peer مثل amule و عیره دانلود کردم. به دلایل اخلاقی با این کار مخالفم ولی گاهی برای خوندن کتاب انجامش می دم چون در ایران اسلامی روش دیگه ای نیست. معمولا هم یک ایمیل به نویسنده می زنم و این موضوع رو می گم و معذرت خواهی می کنم. لینک یا خود کتاب رو روی سایت خودم نمی ذارم چون به نظرم دزدی کار صحیحی نیست. هرکس خواست، خودش توی شبکه های وارز سرچ کنه و به راحتی پیدا می شه (: