گنو هرد: تفاوت بین نسخهها
جز |
جز |
||
(۸ نسخهٔ میانی ویرایش شده توسط ۳ کاربر نشان داده نشده) | |||
سطر ۱: | سطر ۱: | ||
[[پرونده:GNU_HURD_logo.svg|thumb|200px|نشان گنو هرد (boxes)]] | [[پرونده:GNU_HURD_logo.svg|thumb|200px|نشان گنو هرد (boxes)]] | ||
− | گنو هرد (به انگلیسی GNU Hurd) که گاهی به اختصار هرد نامیده میشود یک [[Kernel|کرنل]] [[OS|سیستمعامل]] است که برای [[GNU|سیستمعامل گنو]] طراحی شده است. گنو هرد به عنوان [[Free Software|نرمافزار آزاد]] | + | گنو هرد (به انگلیسی GNU Hurd) که گاهی به اختصار هرد نامیده میشود یک [[Kernel|کرنل]] [[OS|سیستمعامل]] است که برای [[GNU|سیستمعامل گنو]] طراحی شده است. گنو هرد به عنوان [[Free Software|نرمافزار آزاد]] با [[GPL|پروانه جامع همگانی گنو]] منتشر شده است. گنو هرد از سال ۱۹۹۰ بوسیله [[GNU Project|پروژهٔ گنو]] از [[FSF|بنیاد نرمافزار آزاد]] در حال توسعه بوده است. |
=ساختار= | =ساختار= | ||
− | گنو هرد شامل مجموعهای از | + | گنو هرد شامل مجموعهای از شیوهنامهها و فرایندهای سرور (یا [[daemon]] در اصطلاح [[Unix|یونیکس]]) است که روی [[Micro Kernel|ریزهسته]]ای به نام [[GNU Mach|گنو ماخ]] اجرا میشود. هدف هرد پیش افتادن از سیستمعامل یونیکس در عملکرد، امنیت و ثبات در عین حفظ سازگاری زیاد با آن عنوان شده است. |
+ | |||
+ | پروژه گنو معماری ریزهسته را به دلیل مزایای بیشتر نسبت به معماری سنتی هسته یکپارچه یونیکس برای این سیستمعامل انتخاب کرده است. این انتخاب با معماری اکثر هستههای موجود (از جمله [[Linux|لینوکس]]) متفاوت بوده و دامن زننده به بحثهای مفصل انتخاب بین ریزهسته و [[Monolithic Kernel|هستههای یکپارچه]] است. | ||
=وضعیت کنونی= | =وضعیت کنونی= | ||
− | به | + | به گفتهٔ تیم توسعهٔ [[Debian|دبیان]]، گنو هرد برای ورودش به این توزیع در انتشار جسی بیش از ۸۰٪ آماده است. با توجّه به این که کرنل [[FreeBSD]] هنگام ورودش در انتشار ویزی دارای آمادگی ۸۵٪ بود، امید است به زودی شاهد توزیع گسترده و عمومی آن باشیم. این کرنل در حال حاضر به صورت غیر رسمی توسّط دو توزیعکنندهٔ بزرگ دبیان و [[Arch|آرچ]] قابل دریافت و استفاده است که در میان آنها، توزیع دبیان از وضعیت بهتری برخوردار بوده و تا حد زیادی توانایی انجام کارهای عادی روزمره را دارد. |
=کاستیها= | =کاستیها= | ||
− | گنو هرد با تمام خوبیهایش، نواقصی نیز دارد که ناشی از کمبود نیروی انسانی داوطلب برای | + | گنو هرد با تمام خوبیهایش، نواقصی نیز دارد که ناشی از کمبود نیروی انسانی داوطلب برای توسعهٔ آن است. برای مثال در حال حاضر هنوز نسخهٔ ۶۴ بیتی از آن موجود نیست و نمیتواند با [[Disk|دیسکهای]] ساتا کار کند. همچنین [[Driver|راهاندازهای]] سختافزاری آن محدود هستند و ممکن است با خیلی از دستگاهها کار نکند. گرچه برای مثال [[Server|سرویسدهندههای]] پایگاه وب گنو هماکنون به وسیلهٔ گنو/هرد راهاندازی شده اند، ولی برای داشتن یک تجربهٔ کاربری بدون مشکل با این سیستمعامل برای کارهای روزمره، بهترین روش استفاده از آن بر روی یک [[Virtual Machine|مجازیساز]] مانند [[kvm]] است، زیرا که راهاندازهای مربوط به دستگاههای شبیهسازی شدهٔ رایج برای گنو هرد نوشته شده اند. |
=هرد و لینوکس= | =هرد و لینوکس= | ||
− | [[ | + | [[RMS|ریچارد استالمن]] رابطهٔ بین هرد و [[Linux|لینوکس]] را اینگونه شرح میدهد: |
− | + | <blockquote> | |
«بعضیوقتها مردم میپرسند «چرا بنیاد نرمافزار آزاد بهجای استفاده از لینوکس، یک کرنل آزاد جدید را توسعه داد؟» این پرسش معقولی است. پاسخ آن به صورت خلاصه این است که ما با این پرسش مواجه نبودیم. | «بعضیوقتها مردم میپرسند «چرا بنیاد نرمافزار آزاد بهجای استفاده از لینوکس، یک کرنل آزاد جدید را توسعه داد؟» این پرسش معقولی است. پاسخ آن به صورت خلاصه این است که ما با این پرسش مواجه نبودیم. | ||
− | هنگامی که ما در ۱۹۹۰ شروع به | + | هنگامی که ما در ۱۹۹۰ شروع به توسعهٔ هرد کردیم، پرسشی که با آن مواجه بودیم این بود که «چگونه میتوانیم کرنلی آزاد برای سیستمعامل گنو داشته باشیم؟» در آن زمان هیچ کرنل [[شبهیونیکس]] آزادی وجود نداشت و ما هیچ تلاش دیگری را هم برای نوشتنش نمیشناختیم. تنها راهی که میتوانستیم برای داشتن یک کرنل آزاد انتظار داشته باشیم این بود که خودمان بنویسیمش، پس شروع کردیم. |
− | ما پس از انتشار لینوکس | + | ما پس از انتشار لینوکس دربارهٔ آن شنیدیم. در آن زمان پرسشی که دربرابر ما قرار داشت این بود که «آیا باید پروژهٔ هرد را لغو کنیم و بهجایش از لینوکس استفاده کنیم؟» ما شنیدیم که لینوکس به هیچوجه قابل انتقال نیست (این گزاره شاید امروزه درست نباشد، ولی در آن زمان اینگونه گفته میشد). همچنین ما شنیدیم که لینوکس از نظر معماری معادل دقیق یونیکس است، در حالی که کار ما به چیزی بسیار پرقدرتتر میانجامید. |
با توجّه به سالها کاری که تا آن زمان بر روی هرد انجام شده بود، ما تصمیم گرفتیم که آن را به جای دور انداختن، به اتمام برسانیم. | با توجّه به سالها کاری که تا آن زمان بر روی هرد انجام شده بود، ما تصمیم گرفتیم که آن را به جای دور انداختن، به اتمام برسانیم. | ||
− | اگر ما با این پرسشی که مردم میپرسند مواجه بودیم (یعنی لینوکس موجود بود و میخواستیم تصمیم بگیریم که کرنل دیگری بنویسیم یا نه)، این کار را نمیکردیم. به جای آن | + | اگر ما با این پرسشی که مردم میپرسند مواجه بودیم (یعنی لینوکس موجود بود و میخواستیم تصمیم بگیریم که کرنل دیگری بنویسیم یا نه)، این کار را نمیکردیم. به جای آن پروژهٔ دیگری را برای کار بر رویش انتخاب میکردیم؛ چیزی که کاری را انجام دهد که هیج نرمافزار آزاد موجودی نمیتوانست. |
− | ولی ما هرد را قبل از آن شروع کردیم و اکنون نیز آن را به | + | ولی ما هرد را قبل از آن شروع کردیم و اکنون نیز آن را به مرحلهٔ اجرایی رساندهایم و امیدواریم که معماری برتر آن، سیستمعاملهای آزاد را قدرتمندتر کند.» |
+ | </blockquote> | ||
=نصب= | =نصب= | ||
برای استفاده از گنو/هرد، آسانترین راه استفاده از یک تصویر از پیش نصب شده است. این تصویر را برای توزیع دبیان میتوان از اینجا دریافت کرد: | برای استفاده از گنو/هرد، آسانترین راه استفاده از یک تصویر از پیش نصب شده است. این تصویر را برای توزیع دبیان میتوان از اینجا دریافت کرد: | ||
− | + | ||
+ | {{bc| | ||
$ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz | $ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz | ||
− | + | }} | |
و با این دستور از حالت فشرده خارج کرد: | و با این دستور از حالت فشرده خارج کرد: | ||
− | + | {{bc| | |
$ tar xzf debian-hurd.img.tar.gz | $ tar xzf debian-hurd.img.tar.gz | ||
− | + | }} | |
حال میتوان آن را مستقیما روی kvm اجرا کرد: | حال میتوان آن را مستقیما روی kvm اجرا کرد: | ||
+ | |||
<pre> | <pre> | ||
$ kvm -drive file=debian-hurd*.img,cache=writeback -m 1G | $ kvm -drive file=debian-hurd*.img,cache=writeback -m 1G | ||
سطر ۴۴: | سطر ۴۹: | ||
یا آن را تبدیل به دیسک virtualbox کرد تا از داخل این برنامه آن را مدیریت کرد: | یا آن را تبدیل به دیسک virtualbox کرد تا از داخل این برنامه آن را مدیریت کرد: | ||
− | + | ||
+ | {{bc| | ||
$ VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi | $ VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi | ||
− | + | }} | |
حال میتوان به صورت عادی از آن استفاده کرد. | حال میتوان به صورت عادی از آن استفاده کرد. |
نسخهٔ کنونی تا ۳ مرداد ۱۴۰۳، ساعت ۱۳:۲۳
گنو هرد (به انگلیسی 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
حال میتوان به صورت عادی از آن استفاده کرد.