گنو هرد
گنو هرد (به انگلیسی 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
حال میتوان به صورت عادی از آن استفاده کرد.