اطلاعیه

بستن
No announcement yet.

نگاهی به سیستم عامل GNU Hurd

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نگاهی به سیستم عامل GNU Hurd

    از آخرین مطلبمان در مورد سیستم عامل آزاد GNU Hurd مدت زیادی گذشته است. از آنجایی که نسخه جدید Hurd (نسخه ۰.۵) به مناسبت سی ساله شدن GNU منتشر شد و به دنبال آن Debian با انتشار Wheezy، نسخه ای بر پایه Hurd نیز منتشر کرد، زمان را مناسب دیدیم که نگاهی دیگر به سیستم و ساختار این ریزهسته (microkernel) و نحوه اجرای آن داشته باشیم. مقاله Alex Diavatis از وبسایت WorldOfGnome.org از بسیاری از جهات این نیاز را پوشش داده است. ترجمه این مقاله را (با کمی دخل و تصرف) در ادامه با هم می خوانیم (این مقاله تحت مجوز Creative Commons CC-BY منتشر شده است).

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

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

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

    سیستم عامل یا هسته؟
    به نظر من تعریف «سیستم عامل» موضوعی بحث برانگیز است. ما می دانیم هسته چیست و چه کاری انجام می دهد، مدیر نمایش چیست و چه وظیفه ای دارد، ابزارهای GNU چه هستند و چه نقشی دارند؛ هنگامی که تمامی این ها را (با نام یک توزیع) سر هم می کنیم، منظور ما (البته نه همه) یک سیستم عامل است.
    مقاله ویکی پدیا تحت عنوان مباحثه نام گذاری گنو/لینوکس می تواند برای شما که می خواهید نظرات افراد «شناخته شده» در مورد تعریف سیستم عامل را ببینید شروع خوبی باشد. اما در این مقاله من به تعریف Emmanule Bassi (یکی از توسعه دهندگان گنوم) اکتفا می کنم :

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

    این تعریف درباره GNU Hurd نیز صادق است؛ مجموعه ای از چندین نرم افزار که در کنار هم یک سیستم عامل کاملا آزاد را تشکیل می دهند، که احتمالا جالب ترین قسمت آن، هسته اش می باشد.

    هسته ای به نام GNU Mach :
    عبارت GNU، مخفف بازگشتی عبارت “GNU’s Not Unix” (گنو، یونیکس نیست) است. GNU Mach اجرایی از ریزهسته Mach می باشد، که نه لینوکس است، نه یونیکس.
    ریزهسته Mach یک هسته تا-حد-زیادی-سازگار با یونیکس است که بر خلاف هسته یکپارچه (Monolithic) لینوکس، از معماری کلاینت-سرور استفاده می کند که در حالت کلی به معنای به اشتراک گذاری مفاهیم وابسته به معماری و مکانیزم ها با طراحی ریزهسته است.

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

    در یک ساختار یکپارچه، تمامی سرویس های هسته و پروسس ها موجود بوده و در یک فضای به خصوص (address space) اجرا می شوند که از آن به عنوان فضای هسته (kernel space) یاد می شود. برای فهم بهتر می توانید یک پروسس را در نظر بگیرید که در فضای هسته قرار گرفته و تمامی اکستنشن های هسته و اکثر درایورها را اجرا می کند. برنامه ها در فضای به خصوص دیگری اجرا می شوند که به آن فضای کاربری (user space) گفته می شود.

    در ریزهسته ها (همانند Windows NT) هسته پروسس های مختلف را به عنوان سرورهای جدا که در فضا های جداگانه ای اجرا می شوند مدیریت می کند. پروسس های سرور از طریق تجزیه پیام ها (parsing messages) با یکدیگر ارتباط برقرار می کنند، و به همین دلیل به آن معماری کلاینت-سرور گفته می شود.

    طبق تعاریف، معماری ریزهسته مزیت پایداری و امنیت را در مقابل معماری یکپارچه دارد؛ چراکه در صورت کرش کردن یکی از پروسس های هسته (همانند یک درایور)، کل سیستم کرش نکرده و سالم باقی می ماند. اما بازدهی معماری یکپارچه تا ۵٪ بیشتر از ریزهسته است.

    ساختار هسته بسیار پیچیده تر از این توضیح است، به عنوان مثال لینوکس توانایی بارگذاری/حذف ماژول ها و دستگاه های مختلف را داراست و یک سیستم«وصل کن و اجرا کن» (plug and play) می باشد.
    با وجود GNU/Linux، دیگر چرا GNU Mach؟

    جالب ترین سوال این است که چرا GNU Hurd از لینوکس به جای Mach استفاده نمی کند؟
    زمانی که پروژه گنو کلید خورد، هسته لینوکس هنوز به وجود نیامده بود و توسعه دهندگان گنو ساخت هسته مختص خود را شروع کرده بودند. بنا به همین دلیل با وجود معرفی لینوکس به عنوان معمول ترین هسته برای سیستم گنو، به توسعه هسته خود ادامه دادند.

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

    ریچارد استالمن، موسس پروژه گنو در پاسخ به سوال چرا بنیاد نرم افزارهای آزاد همچنان به توسعه GNU Mach ادامه می دهد اینچنین می گوید:

    مردم گاهی اوقات می گویند، «چرا بنیاد نرم افزارهای آزاد یک هسته آزاد جدید را به جای استفاده از لینوکس به وجود آورد؟» که سوالی منطقیست. جواب این سوال به طور خلاصه این است که ما آن موقع به این سوال برخورد نکردیم.
    زمانی که ما توسعه Hurd را در سال ۱۹۹۰ شروع کردیم، سوالی که بدان برخوردیم این بود: «چطور یک هسته آزاد را برای سیستم گنو بدست آوریم؟» در آن زمان هیچ هسته آزاد شبه یونیکس وجود نداشت، و ما از هیچ نقشه ای برای ساخت آن با خبر نبودیم. تنها راهی که به استفاده از یک کرنل آزاد ختم می شد، این بود که خودمان آن را بنویسیم؛ پس شروع کردیم.
    سپس از توسعه لینوکس با خبر شدیم و در آن زمان، سوالی که در ذهنمان به وجود آمد این بود که آیا باید Hurd را کنسل کرده و به جای آن از لینوکس استفاده کنیم؟
    با خبر شدیم که لینوکس به هیچ وجه پرتابل نیست (این مسئله در حال حاضر شاید صحیح نباشد، اما چیزی بود که ما در آن زمان شنیدیم)، و اینکه لینوکس از جهت معماری با کرنل یونیکس در یک سطح است؛ در حالیکه کار ما (هسته تحت توسعه) به چیزی بسیار قدرتمندتر ختم می شد.

    اجرای GNU Hurd :
    اجرای GNU Hurd در ویرچوال باکس پروسه ای بسیار ساده است. کافیست ایمیج Debian GNU/Hurd (تنها ۳۲ بیتی موجود است) را دانلود کرده و طبق دستورات موجود در این لینک پیش بروید. اما نسخه Hurd در این ایمیج ۰.۳ است، نه نسخه جدیدتر ۰.۵. راهنمای به روزتری نیز برای اجرای آخرین نسخه Mach نیز موجود است که از اینجا به آن دسترسی خواهید داشت.

    در حالت کلی از این طریق می توانید آن را اجرا کنید:

    دانلود ایمیج :

    کد PHP:
     wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz 
    اکسترکت آن :

    کد PHP:
     tar xzf debian-hurd.img.tar.gz 
    اجرا در qemu/kvm :

    کد PHP:
     kvm -no-kvm-irqchip -drive file=debian-hurd*.img,cache=writeback -m 1G 
    یا تبدیل ایمیج به فرمت VDI و اجرای آن در ویرچوال باکس :

    کد PHP:
     VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi 
    در فدورا ۱۹ می توان از برنامه qemu-img برای تبدیل استفاده کرد :

    کد PHP:
     qemu-img convert -O vdi debian-hurd.img debian-hurd.vdi 
    پس از تبدیل ایمیج می توانید با ساخت یک ماشین مجازی و انتخاب ایمیج تبدیل شده به عنوان هارد دیسک مجازی، Debian GNU/Hurd را اجرا کنید.

    صفحه گراب درDebian GNU/Hurd :

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	mach-grub.png نمایش ها:	1 اندازه:	136.1 KB شناسه:	18201

    با کاربر ریشه لاگین کنید (بدون نیاز به کلمه عبور) :

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	mach-login.png نمایش ها:	1 اندازه:	134.5 KB شناسه:	18202

    به منظور اجرای محیط گرافیکی فرمان startx را بزنید تا مدیر پنجره IceWM اجرا شود :

    میزکار Debian GNU/Hurd :

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	startx-mach.png نمایش ها:	1 اندازه:	237.0 KB شناسه:	18203

    امیدواریم این مقاله پاسخگوی سوالات شما عزیزان درباره این سیستم عامل آزاد بوده باشد. نظرات خود را با ما و جامعه کاربری مطرح نمایید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-12-2020, 12:49 AM.

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X