گنو گراب

گنو گراب (کوتاه شده عبارات GNU GRand Unified Bootloader) یک بارگذار بوت از پروژه گنو است. گراب پیاده‌سازی مرجع برای مشخصات چند بوت است که امکان بالا آوردن یک یا چند سیستم عامل نصب شده روی یک کامپیوتر یا انتخاب پیکربندی خاص برای یک هسته سیستم عامل را برای کاربر فراهم می‌کند. گنو گراب از یک بسته به نام Grand Unified Bootloader (که یک بازی با نظریه وحدت بزرگ است) توسعه داده شده‌است. گنو گراب عمدتاً برای سیستم‌های شبه یونیکس مورد استفاده قرار می‌گیرد. سیستم عامل گنو مانند اغلب توزیع‌های لینوکس از گنو گراب به عنوان بوت‌لودر استفاده می‌کند. سیستم عامل سولاریس از سولاریس ۱۰، نسخه ۱.۰۶ از گراب به عنوان بوت‌لودر در سیستم‌های X۸۶ استفاده می‌کند.

تاریخچه 
گراب در ابتدا به وسیلهٔ اریش لوین و به عنوان بخشی از پروسه بوت سیستم عامل گنو هرد توسعه یافته به وسیلهٔ بنیاد نرم‌افزار آزاد توسعه می‌یافت. در ۱۹۹۹، Gordon Matzigkeit و Yoshinori K. Okuji گراب را به عنوان یک بسته نرم‌افزاری رسمی از پروژه گنو کردند و روند توسعه را برای عموم باز کردند.

توسعه 
GRUB نسخه 1 (که به عنوان "میراث GRUB" نیز شناخته می شود) دیگر در مرحله توسعه قرار ندارد و در حال خارج شدن است. توسعه دهندگان GNU GRUB تمرکز خود را به GRUB 2 تغییر داده اند ، بازنویسی کامل با اهداف از جمله تمیز کردن GNU GRUB ، استحکام تر ، قابل حمل و قدرتمندتر. GRUB 2 با نام PUPA آغاز شد. PUPA توسط آژانس تبلیغ فناوری اطلاعات (IPA) در ژاپن پشتیبانی شد. PUPA در سال 2002 ، هنگامی که نسخه GRUB 0.9x GRUB Legacy تغییر نام داد ، در توسعه GRUB 2 ادغام شد.

برخی از اهداف پروژه GRUB 2 شامل پشتیبانی از سیستم عامل های غیر x86 ، بین المللی سازی و بومی سازی ، کاراکترهای غیر ASCII ، ماژول های پویا ، مدیریت حافظه ، یک اسکریپت مینی زبان ، کد ویژه (x86) خاص برای انتقال به ماژول های خاص ، و یک چارچوب شی گرا. GNU GRUB نسخه 2.00 به طور رسمی در تاریخ 26 ژوئن 2012 منتشر شد.

سه مورد از رایج ترین توزیع های لینوکس ، از GRUB 2 به عنوان لودر اصلی بوت خود استفاده می کنند. فدورا از فدورا 16 که در نوامبر 2011 منتشر شد ، به عنوان بار گیرنده پیش فرض پیش فرض استفاده کرده است. OpenSUSE با انتشار 12.2 در سپتامبر 2012 ، GRUB 2 را به عنوان بار گیرنده پیش فرض پذیرفت. پلتفرم x86 در نسخه Solaris 11.1.

در اواخر سال 2015 ، سوء استفاده از فشار دادن backspace 28 بار برای دور زدن رمز ورود به سیستم پیدا شد و به سرعت رفع شد.

انواع مختلف 
GNU GRUB نرم افزاری رایگان و منبع باز است ، بنابراین چندین نوع ایجاد شده است. برخی از قابل توجه ، که در خط اصلی GRUB ادغام نشده اند:

OpenSolaris شامل یک میراث GRUB اصلاح شده است که از صفحات دیسک های BSD ، انتخاب خودکار هسته 64 بیتی و بوت شدن از ZFS (با فشرده سازی و محیط های بوت چندگانه) پشتیبانی می کند.

Google Summer of Code 2008 یک پروژه برای پشتیبانی از میراث GRUB برای بوت شدن از پارتیشن های با فرمت ext4 داشت.

پروژه Syllable یک نسخه اصلاح شده از GRUB برای بارگذاری سیستم از سیستم پرونده AtheOS خود ساخت.

TrustedGRUB با اجرای تأیید صحت سیستم و امنیت فرآیند بوت ، با استفاده از ماژول قابل اعتماد Platform (TPM) ، GRUB را گسترش می دهد.

مجموعه تست های اجرای Intel BIOS Intel (BITS) یک محیط GRUB برای آزمایش BIOS ها و به ویژه اولیه سازی آنها از پردازنده ها ، سخت افزارها و فناوری های Intel فراهم می کند. BITS از برنامه نویسی از طریق پایتون پشتیبانی می کند ، و API های Python را نیز برای دسترسی به قابلیت های مختلف سطح پایین سکوی سخت افزاری ، از جمله ACPI ، ثبات های CPU و چیپست ، PCI و PCI Express شامل می کند.

GRUB4DOS یک چنگال قدیمی میراث GRUB بود که تجربه نصب را در DOS و Microsoft Windows با قرار دادن همه چیز به غیر از پیکربندی GRLDR در یک فایل تصویری بهبود می بخشد. توسط Windows Boot Manager بارگیری می شود.

ویژگی‌ها 

گراب به صورت پویا قابل تنظیم است. در زمان راه اندازی تنظیمات پیکربندی خود را بارگذاری می‌کند و اجازه تغییر در زمان راه اندازی مانند انتخاب هسته‌های متفاوت یا تنظیم اولیه حافظه دیسک را می‌دهد. به این منظور، گراب یک واسط خط فرمان ساده و شبه بش را فراهم کرده‌است که به کاربر اجازه می‌دهد علاوه بر لیست منوهای پیش‌فرض در همان زمان توالی بوت جدید بنویسد.
گراب بسیار قابل حمل است. از فرمتهای اجرایی متفاوت پشتیبانی می‌کند و مستقل از ترجمه است. گراب از سیستم پرونده‌های معمول یونیکس، سیستم پرونده‌های ویندوز فت ان‌تی‌اف‌اس و LBA پشتیبانی می‌کند. گراب به کاربران اجازه می‌دهد تا محتویات فایل‌ها در سیستم پرونده‌های پشتیبانی شده را ببینند.
گراب می‌تواند با انواع واسط کاربری‌های مختلف استفاده شود. بسیاری از توزیع‌های لینوکس از امکان پشتیبانی گراب از رابط گرافیکی به منظور ارائه یک منوی بوت سفارشی با تصویر پس‌زمینه استفاده می‌کنند. رابط متنی گراب می‌تواند برای استفاده از درگاه سریال اصلاح شود در نتیجه یک ترمینال راه دور می‌تواند به یک بوت‌لودر دسترسی داشته باشد.
گراب می‌تواند یک تصویر (ایمیج) سیستم عامل را از شبکه دانلود کند و به این ترتیب می‌تواند سیستم‌های بدون دیسک را پشتیبانی کند. گراب از حالت فشرده خارج کردن خودکار تصویرهای سیستم عامل را قبل از بوت شدن آن‌ها پشتیبانی می‌کند.
گراب از صفحه نمایش قابل مرور برای منوی بوت سیستم عامل‌های استفاده می‌کند. این به این معنی است که ۱۵۰ یا تعداد بیشتری گزینه بوت را می‌توان به راحتی افزودن آن‌ها به فایل پیکربندی menu.lst توسط گراب کنترل کرد. از کلیدهای جهتی می‌توان برای انتخاب سیستم عاملی که باید بوت شود استفاده کرد.
گراب از سیستم عامل‌هایی که قابلیت چند بوت ندارند نیز با استفاده از بارگذاری زنجیره‌ای  پشتیبانی می‌کند. گراب از دو یا سه خط فرمان متوالی برای بوت داس، ویندوز، لینوکس، بی‌اس‌دی یا سیستم سولاریس استفاده می‌کند که کار کردن با آن را بسیار آسان کرده‌است. بارگذاری زنجیره‌ای برای پشتیبانی از سیستم‌عامل‌های شبه یونیکس در گراب ایجاد شده‌است.
علاوه بر رابط منوی عادی، گراب می‌تواند واسط خط فرمان شبه بشی (که مجموعه‌ای غنی از دستورها را که به کاربر اجازه نمایش یا تغییر هر بخشی از فرایند بوت را می‌دهد) ارائه کند. با این ابزارها بدون اطلاع از آنچه بروی کامپیوتر نصب است می‌توان از گراب روی یک دستگاه خارجی مانند فلاپی‌دیسک، دستگاه‌های یواس‌بی یا یک سی‌دی‌رام برای بوت سیستم‌عامل‌های نصب شده‌استفاده کرد.
نصب گراب برای هر سیستم عامل پشتیبانی شده‌ای می‌تواند از هر سیستم عامل شبه یونیکسی معمولی همچنین با استفاده از پیاده‌سازی گراب برای داس و ویندوز نصب شود.

فرایند بوت 
هنگامی که یک کامپیوتر روشن می‌شود، بایوس کامپوتر دستگاه اولیه قابل بوت (معمولا دیسک سخت) را پیدا می‌کند و برنامه خود راه‌انداز اولیه را از رکورد راه انداز اصلی یا MBR که ۵۱۲ بایت اول از دیسک سخت است بارگذاری می‌کند سپس کنترل را به این کد منتقل می‌کند.

گراب نسخه ۱

گراب نسخه ۲

بعد از بارگذاری گراب، قبل از این‌که سیستم‌عامل شروع به‌کار کند

نصب 
یکی از ویژگی‌های کلیدی گراب این است که بدون اینکه به سیستم عامل دیگری نصب شود می‌تواند نصب شود. در این حالت به یک کپی از تصویر لینوکس برای چنین نصبی نیاز دارد. هنگام کار کردن به عنوان یک سیستم پایه و تنها گراب عملاً یک سیستم کوچک است که می‌تواند همه سیستم‌عامل‌های اصلی را همان‌طور که در بالا ذکر شده به وسیلهٔ بارگذاری زنجیره‌ای بوت کند.
برخلاف لودر لینوکس یا LILO نیازی به نصب مجدد گراب در رکورد راه انداز اصلی یا MBR یا پارتیشن‌ها بعد از تغییر در فایل پیکربندی نیست.
در لینوکس دستور grub-install برای نصب مرحله ۱ در رکورد راه انداز اصلی یا پارتیشن استفاده می‌شود. فایل پیکربندی گراب، مرحله ۲ (معمولاً) و فایل‌های دیگر باید در یک پارتیشن قابل استفاده باشند. اگر این فایل‌ها یا پارتیش غیرقابل دسترس شوند، مرحله ۱ کاربر را به واسط خط فرمان می‌فرستد.
نام و محل دیسک فایل پیکربندی گراب از سیستمی به سیستم دیگر متفاوت است. برای مثال در اپن سوزه و در دبیان (برای گراب ۱) فایل در مسیر /boot/grub/menu.lst است در حالی که در فدورا، جنتو و دبیان (برای گراب ۲) فایل در مسیر /boot/grub/grub.conf یا. /grub.cfg است. فدورا همچنین یک لینک نرم از /etc/grub.conf به /boot/grub/grub.conf برای سازگاری با FHS فراهم کرده‌است.
گراب را می‌توان در رسانه‌های جداشدنی مانند دیسک نوری (دسترسی بایوس و استاندارد El Torito)، فلاپی دیسک و فلش دیسک به منظور بالا آوردن یک سیستم که دیسک سخت ندارد یا از دیسک سخت نمی‌تواند بوت شود، نصب کرد.

توسعه 
پراستفاده‌ترین نسخه گراب، نسخهٔ قدیمی آن  است. این نسخه هنوز رفع اشکال می‌شود اما امکانات جدید به این نسخه اضافه نمی‌شود. توسعه‌دهندگان گراب تمرکز خود را به گراب ۲، یک بازنویس مجدد با هدف ایجاد یک گنو گراب تمیزتر، قوی‌تر، و قابل حمل‌تر معطوف کرده‌اند. توسعه گراب ۲ با نام PUPA شروع شد. PUPA به وسیلهٔ آژانس توسعه فناوری اطلاعات (IPA) ژاپن پشتیبانی می‌شد. در سال ۲۰۰۲ هنگامی که نسخه ۰٫۹x گراب به گراب میراثی تغییر نام داد PUPA با توسعه گراب ۲ یکپارچه شد.
برخی از اهداف این پروژه عبارتند از پشتیبانی از پلتفرم‌های غیر x86، بین‌المللی کردن/محلی کردن، پشتیبانی از کاراکترهای غیر اسکی، ماژول‌های پویا، مدیرت حافظه، یک زبان اسکریپتی کوچک، چارچوب نرم‌افزار شیءگرا. اوبونتو گراب ۲ را به عنوان بوت‌لودر پیش‌فرض در نسخه ۹٫۱۰ خود به تصویب رساند.

انواع

ابزار پیکربندی گراب 

ابزار نصاب در توزیع‌های مختلف اغلب ماژولهایی برای نصب و راه‌اندازی گراب دارد: برای مثال، یست ۲ در اپن سوزه، آناکوندا  در توزیع‌های فدورا/ ردهت انترپرایز لینوکس. مدیر راه‌انداز  یک ویرایشگر پیکربندی گرافیکی گراب برای توزیع‌های دبیان بیس است. برای گراب ۲ ماژول کنترل کی‌دی‌ئی وجود دارد. GRLDR ICE یک ابزار کوچک برای ویرایش تنظیمات پیش‌فرض gldr از GRUB4DOS است.

ابزارها 
ابزارهای گراب یک مجموعه از ابزارهای چندسکویی برای گراب، گراب ۲ و گراب برای داس (GRUB for DOS) است.

مدیران بوت جایگزین

جستارهای وابسته 

 NTLDR

منابع

پیوند به بیرون 
 سایت رسمی پروژه گراب
 راهنمای رسمی گنو گراب
 صفحه اصلی گنو گراب
 لیست پستی رسمی گنو گراب
 مستندات برای فورک:
 گراب برای داس — منوال, ویکی, راهنما، و انجمن 
 سوپر گراب دیسک — ویکی
 لیلو و گراب: بوت لودر ساده بوسیله Juidth Myerson
 بوت کردن لینوکس در X86 با استفاده از گراب ۲
 بوت با گراب, یک راهنمای خوب در لینوکس ژورنال

گنو گراب
بوت‌لودرهای آزاد
نرم‌افزارهای آزاد برنامه‌نویسی‌شده با اسمبلی
نرم‌افزارهای آزاد نوشته‌شده با اسمبلی
نرم‌افزارهای آزاد نوشته‌شده با سی
نرم‌افزارهای پروژه گنو
طرح‌های پژوهشی
نرم‌افزارهای ۱۹۹۵ (میلادی)