انجمنهای فارسی اوبونتو
جامعه کاربران => کافه اوبونتو => نویسنده: masoudk در 04 آبان 1391، 08:55 بظ
-
اندرو تننبام این سیستمعامل را برای اهداف آموزشی برنامهنویسی کرد که بعدها هسته لینوکس با الهام از مینیکس بهوجود آمد. کلمه مینیکس از ترکیب دو کلمه «مینی» و «یونیکس» گرفته شدهاست.
اندرو تننبام مینیکس را در دانشگاه Vrije Universiteit آمستردام بهعنوان یک مثال طراحی برای پوشش اهداف و اصولی که در کتابش به نام طراحی و اجرای سیستمعاملها بدانها اشاره کردهبود در سال ۱۹۸۷ ایجاد کرد. هستهٔ مینیکس، به صورت خلاصه شامل ۱۲٬۰۰۰ خط کد مبدأ به زبان سی میشد که در مینیکس ۱، فقط وظیفهٔ مدیریت حافظه و سیستم پرونده آنرا برعهده داشتند.
طراحی مینیکس ۲ همچنین موضوع کتاب بعدی تننباوم بود که بههمراه آلبرت وودهال به نگارش درآمده بود. مانند نسخه قبلی کتاب، این بار نیز دیسک فشردهای حاوی نسخهای از این سیستمعامل بههمراه کتاب منتشر شد.
IBM و Atari ST، CommodoreAmiga و مکینتاش هم از MINIX استفاده میکردند.
مینیکس ۳، بهصورت رسمی توسط تننبام در ۲۴ اکتبر ۲۰۰۵ میلادی، هنگام سخنرانی در انجمن ماشینهای محاسب معرفی گردید. اگرچه هنوز این نسخه به عنوان مثالی برای کامل کردن کتاب اندرو تنبام دربارهٔ ساختار سیستمعاملها بهکار میرود ولی هدف از معرفی این نسخه، ایجاد یک سیستمعامل پایدار و جدی برای سیستمهایی با منابع محدود با نرمافزارهایی با قابلیتهای سطح بالا بود.
نسخهٔ ۳٫۱٫۲ این سیستمعامل در تاریخ ۸ می، ۲۰۰۶ انتشار یافت. از جمله قابلیتهای جدیدی که به این سیستم افزوده شده بود میتوان به X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine و بیش از ۴۰۰ نرمافزار مخصوص یونیکس اشاره کرد که به صورت کامل قادر به اجرا در این سیستمعامل میباشند.
مینیکس از یک سیستمعامل مبتنی بر خط فرمان، به یک سیستمعامل با واسط گرافیکی کاربر تبدیل شد. از دیگر قابلیتها و امکانات این نسخه، پایداری و ثبات بیشتر سیستمعامل در برابر ایرادات ناشی از درایورهای سختافزاری مختلف بود که با پشتیبانی از محدودهٔ بیشتری از سختافزارهای موجود و همچنین راهاندازی آنها بدون نیاز به اجرا پروسههای جداگانه، به بهترین نحو این مشکلات را حل کرده و در نتیجه قابلیت اجرای نرمافزارها را بالا برده و تبدیل به یک سیستم Self-healing شد.
مینیکس و هستهٔ لینوکس
نکات حرفهای که اندرو تنباوم در طراحی مینیکس در نظر گرفته بود، تاثیر بسیار زیادی در بهوجود آمدن هستهٔ لینوکس داشت. با اینحال تفاوت زیادی بین این دو سیستمعامل وجود دارد. لینوس تُروالدز در ایجاد هستهٔ لینوکس، معماری یکپارچه را مدنظر خود قرار داد که این بر خلاف ریزهسته استفاده شده در مینیکس بود. بعدها در مناظرهٔ ماه می، سال ۲۰۰۶ که بین اندرو تنباوم و لینوس تروالدز شکل گرفت، اندرو تنباوم، طراحی هستهٔ یکپارچه برای لینوکس را بزرگترین اشتباه در طراحی هستهٔ سیستمعامل گنو/لینوکس عنوان کرد. از آنجایی که در پیدایش هستهٔ اولیه لینوکس، از سیستمعامل مینیکس به عنوان میزبان (به انگلیسی: Host) استفاده شده، اینکار باعث شد که هستهٔ اولیه لینوکس چند ویژگی خاص مینیکس مانند «سیستم پرونده مینیکس» را به ارث ببرد که بعدها با استانداردسازی هستهٔ لینوکس توسط استاندارد پوزیکس، این دو سیستمعامل کاملا از هم جدا شدند.
اجازهنامه
در شروع کار توسعهٔ مینیکس، قیمت آن در مقابل سیستمعاملهای موجود در بازار بسیار ارزان بود (۶۹ دلار). با وجود اینکه اندرو تنباوم خواستار قابل دسترس بودن سیستمعاملش برای همهٔ دانشآموزان بود، منتها این امکان بهدلیل مخالفت ناشر کتاب ممکن نشد. و در نهایت پس از مذاکره با ناشر کتاب، این سیستمعامل را با مجوزی محدود کننده و بدون کدمنبع به همراه با کتاب در دسترس خریداران کتاب قرار گرفت. با معرفی شدن سیستمعاملهای آزاد و متنباز مانند گنو/لینوکس و بیاسدی، بسیاری از کاربران، مینیکس را ترک کردند و به اینگونه سیستمعاملها پیوستند. در نهایت ماه آوریل، سال ۲۰۰۰ میلادی، مینیکس نیز رسما به جرگه نرمافزارهای آزاد و متنباز پیوست. منتها به علت دیرهنگام بودن این تغییر این سیستمعامل که روزی علاقهمندان زیادی داشت امکان رقابت خود را تاحد زیادی از دست داد. و تنها توانست در بین دانشآموزان و علاقهمندان خاص مطرح بماند.
منبع:
http://fa.wikipedia.org/wiki/%D9%85%DB%8C%D9%86%DB%8C%DA%A9%D8%B3
پ . ن: حسابی حالم گرفته شد این و خوندم. میخوام برم از یه جایی یه جوری MINIX نصب کنم. اگه سوتی هم بده برام مهم نیست، میدونم که یه آدم بزرگ روی این سیستم عامل کار کرده.
-
مگه هسته لینوکس ماژولار نیست؟
اگر یکپارچه باشه مثل ویندوز باید با هنگ یه برنامه کل سیستم هنگ کنه که
ممنون میشم منو روشن کنید ;D
-
مگه هسته لینوکس ماژولار نیست؟
اگر یکپارچه باشه مثل ویندوز باید با هنگ یه برنامه کل سیستم هنگ کنه که
ممنون میشم منو روشن کنید ;D
ویندوز از کرنل پیوندی (Hybrid ) استفاده میکنه. لینوکس یکپارچه هست.
این اطلاعات مختصر من در مورد کرنلهاست. البته اگر پروژه هرد عملیاتی بشه روی دسکتاپ هم میکروکرنل خواهیم داشت و از سرعت بسیار بالاتر سیستم لذت خواهیم برد ;D .
-
مگه هسته لینوکس ماژولار نیست؟
اگر یکپارچه باشه مثل ویندوز باید با هنگ یه برنامه کل سیستم هنگ کنه که
ماژولار هست، ولی به صورت یکپارچه، برای همین یک مشکل در درایورها میتونه باعث Kernel Panic بشه و کل سیستم از کار بیفته.
نرمافزارهای دیگه یک لایه بالاتر قرار دارند و داخل هسته نیستند، در نتیجه مشکلی برای کل سیستم به وجود نمیارند.
-
مگه هسته لینوکس ماژولار نیست؟
اگر یکپارچه باشه مثل ویندوز باید با هنگ یه برنامه کل سیستم هنگ کنه که
ماژولار هست، ولی به صورت یکپارچه، برای همین یک مشکل در درایورها میتونه باعث Kernel Panic بشه و کل سیستم از کار بیفته.
نرمافزارهای دیگه یک لایه بالاتر قرار دارند و داخل هسته نیستند، در نتیجه مشکلی برای کل سیستم به وجود نمیارند.
ممنون :) .
اگر ممکنه این کرنلهای پیوندی هم تشریح کنید (آخرش نفهمیدیم چی به چین ;D) .
-
خوب در کل مدلهای مختلفی برای طراحی هسته وجود داره.
مدل یکپارچه (Monolithic) که در این مدل همه قسمتها داخل خود کرنل قرار میگیره. مشکل این کرنل اینه که خیلی سریع بزرگ میشه، احتمالا کلی قسمتهای اضافه در کرنل وجود خواهد داشت که برای همه کاربرها لازم نیست و میتونه سرعت رو بیدلیل پایین بیاره، درایورها هم داخل خود کرنل قرار میگیره. همچنین یک مشکل توی قسمتی از کرنل (مثلا یک درایور) میتونه کل هسته رو از کار بندازه. از طرف دیگه، توسعه این کرنل راحتتره و باعث میشه سرعت توسعه بالا بره و درگیر محدودیتهای دیگه نباشه. نمونه این کرنل لینوکس هستش.
مدل ریزهسته (Microkernel) که در این مدل تنها قسمتهای ضروری در کرنل نگهداری میشه و تمام قسمتهای دیگه مانند برنامههای جانبی بیرون کرنل قرار دارند. این کرنل میتونه امنیت بالاتری داشته باشه و مثلا راهاندازها مجوزهای محدود خودشون رو داشته باشند، چون قسمتهای دیگه جزئی از کرنل نیستند، از کار افتادن اونها کل سیستم رو از کار نمیاندازه (همونطور که هنگکردن یک برنامه عمومی کل سیستم رو از کار نمیاندازه)، احتمال اشتباه در کدهای خود کرنل کمتر میشه و در تئوری میتونه سریعتر باشه، چون هسته بسیار کوچک هست. از طرف دیگه توسعه این کرنل سختتر هست و محدودیتهایی داره که باعث میشه روند کار کند بشه. نمونه این کرنل هرد (Hurd) هستش.
مدل هیبرید (Hybrid) بین این دو هسته قرار داره، یعنی تا جایی که ممکن بوده قسمتهای اضافه از کرنل خارج شده ولی بعضی از قسمتها به دلایل مختلف هنوز داخل کرنل مونده. نمونه این کرنل XNU و NT هست که در Mac OS X و Windows استفاده شده.
البته مدلهای دیگه هم وجود داره، ولی خوب این مدلها پرکاربردترین مدلها هستند.
-
خوب در کل مدلهای مختلفی برای طراحی هسته وجود داره.
مدل یکپارچه (Monolithic) که در این مدل همه قسمتها داخل خود کرنل قرار میگیره. مشکل این کرنل اینه که خیلی سریع بزرگ میشه، احتمالا کلی قسمتهای اضافه در کرنل وجود خواهد داشت که برای همه کاربرها لازم نیست و میتونه سرعت رو بیدلیل پایین بیاره، درایورها هم داخل خود کرنل قرار میگیره. همچنین یک مشکل توی قسمتی از کرنل (مثلا یک درایور) میتونه کل هسته رو از کار بندازه. از طرف دیگه، توسعه این کرنل راحتتره و باعث میشه سرعت توسعه بالا بره و درگیر محدودیتهای دیگه نباشه. نمونه این کرنل لینوکس هستش.
مدل ریزهسته (Microkernel) که در این مدل تنها قسمتهای ضروری در کرنل نگهداری میشه و تمام قسمتهای دیگه مانند برنامههای جانبی بیرون کرنل قرار دارند. این کرنل میتونه امنیت بالاتری داشته باشه و مثلا راهاندازها مجوزهای محدود خودشون رو داشته باشند، چون قسمتهای دیگه جزئی از کرنل نیستند، از کار افتادن اونها کل سیستم رو از کار نمیاندازه (همونطور که هنگکردن یک برنامه عمومی کل سیستم رو از کار نمیاندازه)، احتمال اشتباه در کدهای خود کرنل کمتر میشه و در تئوری میتونه سریعتر باشه، چون هسته بسیار کوچک هست. از طرف دیگه توسعه این کرنل سختتر هست و محدودیتهایی داره که باعث میشه روند کار کند بشه. نمونه این کرنل هرد (Hurd) هستش.
مدل هیبرید (Hybrid) بین این دو هسته قرار داره، یعنی تا جایی که ممکن بوده قسمتهای اضافه از کرنل خارج شده ولی بعضی از قسمتها به دلایل مختلف هنوز داخل کرنل مونده. نمونه این کرنل XNU و NT هست که در Mac OS X و Windows استفاده شده.
البته مدلهای دیگه هم وجود داره، ولی خوب این مدلها پرکاربردترین مدلها هستند.
+1 بصورت اساسی :).
-
مدل یکپارچه (Monolithic) که در این مدل همه قسمتها داخل خود کرنل قرار میگیره. مشکل این کرنل اینه که خیلی سریع بزرگ میشه، احتمالا کلی قسمتهای اضافه در کرنل وجود خواهد داشت که برای همه کاربرها لازم نیست و میتونه سرعت رو بیدلیل پایین بیاره.
البته من سه سال پیش که کتاب سیستم عامل مدرسان شریف رو خوندم یادمه توش نوشته شده بود که مدل یکپارچه به علت وجود نداشتن لایه های مختلف دارای سریعترین سرعت هستش، ولی چون به صورت یکپارچه هستش برای تغییر در مدل باید تمام مدل بازبینی بشه و ساختارش به سادگی به هم میریزه.
در مقابل ساختار لایه ای به دلیل وجود لایه و ارتباط بین لایه ها دارای سرعت کمتری هستش ولی دارای flexibility بالایی هستش.
-
این صفحه رو هم الان برای کسانی که دوست دارند بیشتر درباره ی تانن باوم بدونن اسکن گرفتم:
http://www.uploadtak.com/images/z93_scan0001.jpg
سیستم عامل MINIX 3 رو میشه از اینجا دانلود کرد:
http://www.minix3.org/
حجمش 360 مگابایت هست، خودم میخوام امشب دانلود کنمش. به نظرم امتحانش خالی از لطف نباشه.
ویژگیهایی که داره:
Open source, with a BSD license
Networking with TCP/IP
X Window System
Languages: C, Perl, Python, etc.
Over 650 UNIX programs
این هم آدرس وبسایت خود تانن باوم:
http://www.cs.vu.nl/~ast/
اندرو تننبام این سیستمعامل را برای اهداف آموزشی برنامهنویسی کرد
قشنگیش برام اینه که خیلی صادقانه درباره ی MINIX نوشته بودن. به جای اینکه بنویسن این سیستم عامل برای همه مناسب هستش نوشتن که برای اهداف آموزشی ساخته شده، و من اگه بعد از نصب با مشکل مواجه بشم اصلا تعجب نمیکنم، چون به جای اینکه به من قول یک سیستم عامل عالی داده بشه صادقانه به من گفتند که این سیستم عامل برای علاقه مندان رشته ی کامپیوتر هست.
-
به نظرم امتحانش خالی از لطف نباشه.
البته این سیستمعامل کلا برای استفاده ساخته نشده و لطفش وقتی هست که کد اون رو بخونید و ببینید که چطور کار میکنه. یکی از دلایلی هم که Minix خیلی سعی نمیکنه جلو بره همینه که میخواد کد اون ساده و قابل فهم بمونه.
-
من سال ها پیش کتاب زندگی توروالدز رو ترجمه کردم. سال ها گیر کرد تو سیستم سانسور میهن عزیز [آخه یه گیک زندگیش دیگه چه سانسوری داری؟!] (: حالا داریم با نارنجی هماهنگ می کنیم که یک ماه آینده چاپ بشه دیجیتالی.
علی الحساب این هشت صفحه اش رو براتون می فرستم که در این مورد است و به نظر خودم خیلی جالب:
https://dl.dropbox.com/u/14240570/linus_andrew.pdf
بعد از این دعوا، یکبار بعدها توروالدز کتاب تاننباوم رو می بره دانشگاهش که براش امضا کنه ولی تاننباوم (نویسنده مینیکس) توی دانشگاه نبوده و لینوس موفق به دلجویی نمی شه (:
-
علی الحساب این هشت صفحه اش رو براتون می فرستم که در این مورد است و به نظر خودم خیلی جالب:
https://dl.dropbox.com/u/14240570/linus_andrew.pdf
متن کامل تمامی ایمیلهایی که بین Tanenbaum و torvalds رد و بدل شد: :)
http://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html
-
سیستم عامل جالبیه ولی خب محیط گرافیکی پیشفرض نداره متاسفانه :|
-
من کدش رو گرفتم.
از کجاش باید شروع کنم به خوندن؟ منظورم اینه که اول ِ برنامش کجاس؟
میشه یکم راجع به خوندن اینجور کدهایی که چنتا فایل دارن توضیح بدید؟
-
باید با خوندن کتابش شروع کنید.
-
خوندن کتاب مینیکس؟
از کجا دانلود کنم؟
-
به صورت رایگان (قانونی) برای دانلود وجود نداره. کتابش اینجاست: لینک (http://www.pearsonhighered.com/educator/academic/product/0,,0131429388,00%2ben-USS_01DBC.html)
-
داکیومنت ها
http://www.minix3.org/documentation/index.html
ویکی
http://wiki.minix3.org/en/
-
با تشکر