آیا تاکنون با خودتان به این قضیه فکر کردهاید که وقتی دکمه ی پاور کامپیوتر یا لپ تاپ خود را فشار میدهید، تا زمانی که صفحه ی لاگین سیستم عامل بالا میآید چه اتفاقاتی رخ می دهد؟ زمانی که شما شروع به استفاده از لینوکس می کنید، داشتن درک مشخصی از فرایندهایی که پس از فشردن دکمه ی پاور اتفاق میافتند به شما در رفع مشکلات احتمالی از یک سو و مهمتر از آن Customize (کاستومایز یا شخص سازی) سیستم بسته به نیازهای خود از سوی دیگر کمک خواهد کرد. در واقع پس از فشردن دکمه ی پاور، بوت پراسس اتفاق می افتد. به طور کلی، Boot Process فرایندی است که از آن طریق سیستم عامل لینوکس استارت می شود:
برای مثال، یک سیستم x86 را مد نظر قرار می دهیم. زمانی که سیستم روشن میشود، BIOS که مخفف واژگان Basic Input/Output System است سختافزار -مثلا مانیتور و کیبورد- را شروع به کار کرده و مموری سیستم را تست میکند (لازم به ذکر است که BIOS در چیپی تحت عنوان ROM که روی مادربورد قرار گرفته ذخیره می شود.)
به خاطر داشته باشید |
معماری x86 به CPU های ساخت شرکت اینتل اشاره دارد که در سال ۱۹۸۲ به بازار عرضه شدند که سازگار با سیستم عامل های ۳۲ بیتی هستند. در مقابل، CPU هایی با معماری x64 قرار دارند که نرم افزارهای ۶۴ بیتی را ساپورت می کنند. |
به این مرحله اصطلاحاً POST که مخفف واژگان Power On Self Test است گفته می شود. از این مرحله به بعد، کلیه ی فرایند های بوت پراسس توسط سیستم عامل کنترل می شود:
زمانی که فرایند POST که پیش از این در موردش اطلاعاتی کسب کردیم تکمیل شد، از مرحله یی که تحت کنترل BIOS بود به مرحله یی تحت عنوان Boot Loader می رسیم. بوت لودر معمولاً روی هارد دیسک ذخیره میشود که در سیستمهای قدیمی Master Boot Records یا MBR نام دارد.
تا این مرحله از کار، سیستم به هیچ کدام از فایلهای ذخیره شده روی هارد دسترسی نداشته اما از این پس، به اطلاعاتی همچون تاریخ، زمان و … دست پیدا می کند. برای سیستم عامل لینوکس بوت لودرهای مختلفی به بازار عرضه شده که رایج ترین آنها GRUB که مخفف واژگان Grand Unified Boot Loader و همچنین ISOLINUX برای بوت کردن از روی مموری فلش می باشد.
به طور کلی، بوت لودر دارای دو مرحله ی مختلف است که در محله ی اول، بوت لودر در سکتور اول هارد دیسک که تحت عنوان MBR شناخته میشود مینشیند که سایز آن چیزی در حدود ۵۱۲ بایت است. در این مرحله، بوت لودر لیست پارتیشن های هارد دیسک را تست میکند تا یک پارتیشن قابل بوت بیابد. زمانی که پارتیشن Bootable (قابل بوت شدن) را یافت، به دنبال بوت لودر مرحله ی دوم یا همان GRUB میگردد و آن را داخل حافظه ی RAM لود می کند.
بسیاری از بوت لودرهای لینوکس دارای یک رابط کاربری به منظور انتخاب کردن آپشن های مختلف برای بوت کردن لینوکس هستند. زمانی که سیستم عامل لینوکس را بوت می کنیم، بوت لودر مسئول بارگذاری کرنل لینوکس در حافظه ی سیستم است:
بوت لودر مرحله ی دوم تحت دایرکتوری boot/ قرار دارد. در این مرحله، یک Splash Screen (صفحه یی که از طریق آن لیست سیستم عامل های نصب شده روی سیستم نمایش داده می شوند) نمایان شده که این امکان را به کاربر میدهد تا یکی از سیستم عامل ها را انتخاب کند (فرض کنید که هم ویندوز و هم لینوکس روی سیستم خود نصب دارید.)
پیش از انتخاب OS مد نظر، بوت لودر کرنل سیستم عامل انتخابی را روی حافظه ی رم بارگذاری می کند. همان طور که در تصویر فوق مشاهده می شود، بوت لودر کرنل انتخابی -مثلا لینوکس- را لود میکند و از این لحظه به بعد کنترل سیستم را به آن می سپارد. معمولاً کرنل سیستم عامل ها فشرده هستند لذا اولین کار این است که آن را از حالت فشرده خارج سازد. پس از این مرحله، بوت لودر به چک کردن و آنالیز سختافزار و اجرای هر درایوری که در کرنل سیستم عامل به صورت پیشفرض قرار دارد می پردازد.
کرنل لینوکس
بوت لودر علاوه بر کرنل، سایر فایلهای سیستمی مرتبط را هم در حافظه ی رم بارگذاری میکند تا مستقیماً توسط کرنل قابل استفاده باشند. زمانی که کرنل در حافظه ی رم بارگذاری شد، بلافاصله حافظه ی کامپیوتر و تمامی سخت افزارهای وصل شده به سیستم مثل پردازنده ها، هارد دیسک، مانیتور، ماوس و کیبورد و غیره استارت خورده و تنظیمات اولیه ی آن ها صورت می گیرد.