مینیکس

مینیکس یک سیستم‌عامل از رده سیستم‌عامل‌های شبه‌یونیکس است که معماری نرم‌افزار آن بر پایه طراحی به‌صورت ریزهسته می‌باشد.
اندرو تننبام این سیستم‌عامل را برای اهداف آموزشی برنامه‌نویسی کرد که بعدها هسته لینوکس با الهام از مینیکس به‌وجود آمد. کلمه مینیکس از ترکیب دو کلمه «مینی» و «یونیکس» گرفته شده‌است.
پیشینه
اندرو تننبام مینیکس را در دانشگاه Vrije Universiteit آمستردام به‌عنوان یک مثال طراحی برای پوشش اهداف و اصولی که در کتابش به نام طراحی و اجرای سیستم‌عامل‌ها بدان‌ها اشاره کرده‌بود در سال ۱۹۸۷ ایجاد کرد.
هسته مینیکس، به صورت خلاصه شامل ۱۲،۰۰۰ خط کد مبدا به زبان سی می‌شد که در مینیکس ۱، فقط وظیفه مدیریت حافظه و سیستم پرونده آن‌را برعهده داشتند. انتشارات Prentice-Hall نسخه‌ای از مینیکس و باینری مینیکس با تعدادی جزوه راهنما را بر روی دیسکت فلاپی منتشر کرد. مینیکس ۱، از بخشی از مکانیسم کاری یونیکس به نام system call بهره می‌برد.
اندرو تننبام در واقع مینیکس را برای اجرای بر روی ریزکامپیوترهای موجود در بازار آن زمان آی‌بی‌ام و آی‌بی‌ام PC/AT طراحی و ساخته بود. منتها با انتشار مینیکس نسخه ۱٫۵ در سال ۱۹۹۱، به‌خاطر سازگاری هسته آن با معماری تراشه‌های Motorola ۶۸۰۰۰ و SPARC، کامپیوترهای ماوس‌دار ساخت شرکت آی‌بی‌ام نیز از توانایی اجرای مینیکس برخوردار شدند و مینیکس توانست موفقیت بسیار خوبی را در بین برنامه‌نویسان و طراحان کسب کند و در نتیجه مینیکس با قابلیت استفاده در آتاری اس‌تی، CommodoreAmiga و مکینتاش توانست به بازار سخت‌افزارهای ساخته‌شده برپایه تراشه اسپارک وارد شود.
همچنین مینیکس بر روی کامپیوترهایی مانند اینتل ۸۰۳۸۶ که معماری ۳۲ بیتی داشتند و برپایه تراشه‌های ترانزپیوتر NS۳۲۰xx، ARM یا INMOS ساخته شده بودند نیز کار می‌کرد. مدتی بعد، شرکت Meiko Scientific سیستم‌عامل MeikOS را که براساس مینیکس ساخته شده‌بود را وارد بازار کامپیوترهای پردازش موازی خود کرد. همچنین نسخه‌ای از مینیکس در یکی از پروسه‌های اجرایی کاربران سیستم‌عامل SunOS موجود است.
پس از معرفی معماری جدید x86 اینتل، مینیکس ۲ در سال ۱۹۹۷ انتشار یافت که تنها این معماری جدید و سیستم‌های میزبانسیستم‌عامل سولاریس که برپایه تراشه SPARC طراحی و ساخته شده‌بودند را پشتیبانی می‌کرد. نحوه طراحی مینیکس ۲ همچنین موضوع کتاب بعدی تننباوم بود که به‌همراه آلبرت وودهال به نگارش درآمده بود. مانند نسخه قبلی کتاب، این بار نیز دیسک فشرده‌ای حاوی نسخه‌ای از این سیستم‌عامل به‌همراه کتاب منتشر شد.
مینیکس ۲ به پوزیکس اضافه شد و پشتیبانی برای تراشه‌های ۳۸۶ و دیگر تراشه‌های مبتنی بر پردازش ۳۲بیتی را فراهم آورد و با جایگزین کردن پروتکل شبکه سیستم‌عامل آمیب که در نسخه ۱٫۵ مینیکس استفاده شده بود با مجموعه پروتکل اینترنت قدمی رو به جلو برداشت. هرچند سازگاری مینیکس ۲٫۰٫۲ با ایستگاه‌های کاری به‌صورت رسمی در مستندات قید نشده بود، ولی این سیستم‌عامل بر روی ایستگاه‌های کاری ISICAD Prisma ۷۰۰ به خوبی کار می‌کرد و همچنین بر روی کامپیوتر جیبی‌های ساخت شرکت HP، بر روی مدل‌های Jornada ۶۸۰/۶۹۰ توسعه داده‌شد
مینیکس وی‌ام‌دی نیز توسط دو محقق دانشگاه Vrije Universiteit توسعه داده شد که در آن امکاناتی مانند پشتیبانی از حافظه مجازی و سیستم پنجره اکس اضافه شده بودند و در کامپیوترهایی با تراشه اینتل IA-۳۲ نیز اجرا می‌شدند.
مینیکس ۳
مینیکس ۳، به‌صورت رسمی توسط اندرو تننبام در ۲۴ اکتبر ۲۰۰۵ میلادی، هنگام سخنرانی در انجمن ماشین‌های محاسب معرفی گردید. اگرچه هنوز این نسخه به عنوان مثالی برای کامل کردن کتاب اندرو تنبام درباره ساختار سیستم‌عامل‌ها به‌کار می‌رود ولی هدف از معرفی این نسخه، ایجاد یک سیستم‌عامل پایدار و جدی برای سیستم‌هایی با منابع محدود با نرم‌افزارهایی با قابلیت‌های سطح بالا بود. مینیکس ۳، از بسیاری پلتفرم‌های سخت‌افزاری به‌خصوص IA-۳۲ پشتیبانی می‌کند و به عنوان یک دیسک زنده قابلیت اجرا از روی دیسک زنده بدون نیاز به نصب بر روی دیسک سخت را داراست.
نسخه ۳٫۱٫۲ این سیستم‌عامل در تاریخ ۸ می، ۲۰۰۶ انتشار یافت. از جمله قابلیت‌های جدیدی که به این سیستم افزوده شده بود می‌توان به X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine و بیش از ۴۰۰ نرم‌افزار مخصوص یونیکس اشاره کرد که به صورت کامل قادر به اجرا در این سیستم‌عامل می‌باشند. با افزودن X11 (سیستم پنجره اکس)، مینیکس از یک سیستم‌عامل مبتنی بر خط فرمان، به یک سیستم‌عامل با واسط گرافیکی کاربر تبدیل شد. از دیگر قابلیت‌ها و امکانات این نسخه، پایداری و ثبات بیشتر سیستم‌عامل در برابر ایرادات ناشی از درایورهای سخت‌افزاری مختلف بود که با پشتیبانی از محدوده بیشتری از سخت‌افزارهای موجود و همچنین راه‌اندازی آن‌ها بدون نیاز به اجرا پروسه‌های جداگانه، به بهترین نحو این مشکلات را حل کرده و در نتیجه قابلیت اجرای نرم‌افزارها را بالا برده و تبدیل به یک سیستم Self-healing شد.
مینیکس و هسته لینوکس
نکات حرفه‌ای که اندرو تنباوم در طراحی مینیکس در نظر گرفته بود، تاثیر بسیار زیادی در به‌وجود آمدن هسته لینوکس داشت. با این‌حال تفاوت زیادی بین این دو سیستم‌عامل وجود دارد. لینوس تروالدز در ایجاد هسته لینوکس، معماری یکپارچه را مدنظر خود قرار داد که این بر خلاف ریزهسته استفاده شده در مینیکس بود. بعدها در مناظره ماه می، سال ۲۰۰۶ که بین اندرو تنباوم و لینوس تروالدز شکل گرفت، اندرو تنباوم، طراحی هسته یکپارچه برای لینوکس را بزرگترین اشتباه در طراحی هسته سیستم‌عامل گنو/لینوکس عنوان کرد.
از آنجایی که در پیدایش هسته اولیه لینوکس، از سیستم‌عامل مینیکس به عنوان میزبان استفاده شده، اینکار باعث شد که هسته اولیه لینوکس چند ویژگی خاص مینیکس مانند «سیستم پرونده مینیکس» را به ارث ببرد که بعدها با استانداردسازی هسته لینوکس توسط استاندارد پوزیکس، این دو سیستم‌عامل کاملا از هم جدا شدند.
پروانه
در شروع کار توسعه مینیکس، قیمت آن در مقابل سیستم‌عامل‌های موجود در بازار بسیار ارزان بود (۶۹ دلار). با وجود اینکه اندرو تنباوم خواستار قابل دسترس بودن سیستم‌عاملش برای همه دانش‌آموزان بود، منتها این امکان به‌دلیل مخالفت ناشر کتاب ممکن نشد؛ و در نهایت پس از مذاکره با ناشر کتاب، این سیستم‌عامل را با مجوزی محدودکننده و بدون کدمنبع به همراه با کتاب در دسترس خریداران کتاب قرار گرفت.
با معرفی شدن سیستم‌عامل‌های آزاد و متن‌باز مانند گنو/لینوکس و بی‌اس‌دی، بسیاری از کاربران، مینیکس را ترک کردند و به این‌گونه سیستم‌عامل‌ها پیوستند. در نهایت ماه آوریل، سال ۲۰۰۰ میلادی، مینیکس نیز رسما به جرگه نرم‌افزارهای آزاد و متن‌باز پیوست. منتها به علت دیرهنگام بودن این تغییر این سیستم‌عامل که روزی علاقه‌مندان زیادی داشت امکان رقابت خود را تاحد زیادی از دست داد؛ و تنها توانست در بین دانش‌آموزان و علاقه‌مندان خاص مطرح بماند.
پیوندهای وابسته
مقایسه سیستم‌عامل‌های متن‌باز