گنو هرد

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
نشان گنو هرد (boxes)

گنو هرد (به انگلیسی GNU Hurd) که گاهی به اختصار هرد نامیده می‌شود یک کرنل سیستم‌عامل است که برای سیستم‌عامل گنو طراحی شده است. گنو هرد به عنوان نرم‌افزار آزاد با پروانه جامع همگانی گنو منتشر شده است. گنو هرد از سال ۱۹۹۰ بوسیله پروژهٔ گنو از بنیاد نرم‌افزار آزاد در حال توسعه بوده است.

ساختار

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

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

وضعیت کنونی

به گفتهٔ تیم توسعهٔ دبیان، گنو هرد برای ورودش به این توزیع در انتشار جسی بیش از ۸۰٪ آماده است. با توجّه به این که کرنل FreeBSD هنگام ورودش در انتشار ویزی دارای آمادگی ۸۵٪ بود، امید است به زودی شاهد توزیع گسترده و عمومی آن باشیم. این کرنل در حال حاضر به صورت غیر رسمی توسّط دو توزیع‌کنندهٔ بزرگ دبیان و آرچ قابل دریافت و استفاده است که در میان آن‌ها، توزیع دبیان از وضعیت بهتری برخوردار بوده و تا حد زیادی توانایی انجام کارهای عادی روزمره را دارد.

کاستی‌ها

گنو هرد با تمام خوبی‌هایش، نواقصی نیز دارد که ناشی از کمبود نیروی انسانی داوطلب برای توسعهٔ آن است. برای مثال در حال حاضر هنوز نسخهٔ ۶۴ بیتی از آن موجود نیست و نمی‌تواند با دیسک‌های ساتا کار کند. هم‌چنین راه‌اندازهای سخت‌افزاری آن محدود هستند و ممکن است با خیلی از دستگاه‌ها کار نکند. گرچه برای مثال سرویس‌دهنده‌های پایگاه وب گنو هم‌اکنون به وسیلهٔ گنو/هرد راه‌اندازی شده اند، ولی برای داشتن یک تجربهٔ کاربری بدون مشکل با این سیستم‌عامل برای کارهای روزمره، بهترین روش استفاده از آن بر روی یک مجازی‌ساز مانند kvm است، زیرا که راه‌اندازهای مربوط به دستگاه‌های شبیه‌سازی شدهٔ رایج برای گنو هرد نوشته شده اند.

هرد و لینوکس

ریچارد استالمن رابطهٔ بین هرد و لینوکس را این‌گونه شرح می‌دهد:

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

هنگامی که ما در ۱۹۹۰ شروع به توسعهٔ هرد کردیم، پرسشی که با آن مواجه بودیم این بود که «چگونه می‌توانیم کرنلی آزاد برای سیستم‌عامل گنو داشته باشیم؟» در آن زمان هیچ کرنل شبه‌یونیکس آزادی وجود نداشت و ما هیچ تلاش دیگری را هم برای نوشتنش نمی‌شناختیم. تنها راهی که می‌توانستیم برای داشتن یک کرنل آزاد انتظار داشته باشیم این بود که خودمان بنویسیمش، پس شروع کردیم.

ما پس از انتشار لینوکس دربارهٔ آن شنیدیم. در آن زمان پرسشی که دربرابر ما قرار داشت این بود که «آیا باید پروژهٔ هرد را لغو کنیم و به‌جایش از لینوکس استفاده کنیم؟» ما شنیدیم که لینوکس به هیچ‌وجه قابل انتقال نیست (این گزاره شاید امروزه درست نباشد، ولی در آن زمان این‌گونه گفته می‌شد). هم‌چنین ما شنیدیم که لینوکس از نظر معماری معادل دقیق یونیکس است، در حالی که کار ما به چیزی بسیار پرقدرت‌تر می‌انجامید.

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

اگر ما با این پرسشی که مردم می‌پرسند مواجه بودیم (یعنی لینوکس موجود بود و می‌خواستیم تصمیم بگیریم که کرنل دیگری بنویسیم یا نه)، این کار را نمی‌کردیم. به جای آن پروژهٔ دیگری را برای کار بر رویش انتخاب می‌کردیم؛ چیزی که کاری را انجام دهد که هیج نرم‌افزار آزاد موجودی نمی‌توانست.

ولی ما هرد را قبل از آن شروع کردیم و اکنون نیز آن را به مرحلهٔ اجرایی رسانده‌ایم و امیدواریم که معماری برتر آن، سیستم‌عامل‌های آزاد را قدرتمندتر کند.»

نصب

برای استفاده از گنو/هرد، آسان‌ترین راه استفاده از یک تصویر از پیش نصب شده است. این تصویر را برای توزیع دبیان می‌توان از این‌جا دریافت کرد:


$ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz

و با این دستور از حالت فشرده خارج کرد:

$ tar xzf debian-hurd.img.tar.gz

حال می‌توان آن را مستقیما روی kvm اجرا کرد:

$ kvm -drive file=debian-hurd*.img,cache=writeback -m 1G

یا آن را تبدیل به دیسک virtualbox کرد تا از داخل این برنامه آن را مدیریت کرد:


$ VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi

حال می‌توان به صورت عادی از آن استفاده کرد.