فرآیند راهاندازی لینوکس در ۶ سطح
در این آموزش، فرآیند راهاندازی لینوکس در ۶ سطح بررسی خواهد شد. پس از فشردن دکمه روشن در سیستم شما و پس از مدتی، صفحه ورود به لینوکس را مشاهده خواهید کرد.آیا تاکنون کنجکاو شدهاید که چه اتفاقی میافتد وقتی دکمه روشن را میفشارید تا زمانی که صفحه ورود به لینوکس را مشاهده میکنید؟فرآیند راهاندازی لینوکس در ۶ سطح اصلی انجام میشود:
فهرست ۶ مرحله اصلی در فرآیند راهاندازی لینوکس:
۱ – BIOS
۲ – MBR
۳ – GRUB
۴ –Kernel
۵ – Init
۶ –Runlevel
فرآیند راهاندازی BIOS
BIOS مخفف Basic Input/Output System (سیستم ورودی/خروجی پایه) است.
آن برخی بررسیهای سلامت را برای سیستم انجام میدهد.
برنامه بارگیرنده راهانداز را جستجو، بارگیری و اجرا میکند.
برای یافتن بارگیرنده راهانداز، به دنبال دیسکت، سیدی-رام یا دیسک سخت میگردد. شما میتوانید با فشردن یک کلید، فرآیند راهاندازی را در هنگام شروع BIOS تغییر دهید. (معمولاً F12 و F2 بسته به سیستم شما)
به محض اینکه برنامه بارگیرنده راهانداز شناسایی و در حافظه بارگیری شد، BIOS کنترل را به آن (بارگیرنده راهانداز) میدهد.
بنابراین به زبان ساده، BIOS بارگیرنده راهانداز MBR را بارگیری و اجرا میکند.
فرآیند راهاندازی MBR
MBR مخفف Master Boot Record (رکورد اصلی راهانداز) است.
MBR در اولین بخش دیسک قابل بوت قرار دارد که معمولاً /dev/hda/ یا /dev/sda/ است.
اندازه MBR کمتر از ۵۱۲ بایت است که دارای ۳ بخش است: ۱- اطلاعات بارگیرنده اصلی راهانداز در ۴۴۶ بایت اول ۲- اطلاعات جدول پارتیشن در ۶۴ بایت بعدی ۳- بررسی یا چک اعتبارسنجی MBR که در ۲ بایت آخر انجام میشود.
MBR حاوی اطلاعاتی درباره GRUB (یا LILO در سیستمهای قدیمیتر) است.
بنابراین به زبان ساده، MBR مسئول بارگیری و اجرای بارگیرنده راهانداز GRUB است.
فرآیند راهاندازی GRUB
GRUB مخفف Grand Unified Bootloader (بارگیرنده یکپارچه عمومی) است.
اگر شما چندین هسته در سیستم خود نصب کردهاید، میتوانید یکی از آنها را برای اجرا انتخاب کنید.
GRUB صفحه اسپلش (یعنی لوگوی سیستم عامل) را نمایش میدهد، چند ثانیه صبر میکند، اگر شما چیزی وارد نکنید، GRUB خودش هسته پیشفرض مشخص شده در فایل پیکربندی خود را اجرا میکند.
GRUB از فایلسیستم اطلاع دارد. (LILO قدیمی لینوکس نمیتوانست فایلسیستم را تشخیص دهد)
فایل تنظیمات GRUB در مسیر /boot/grub/grub.conf/ قرار دارد (که به فایل /etc/grub.conf لینک شده است)
در زیر یک نمونه از فایل grub.conf برای CentOS آمده است:
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
initrd /boot/initrd-2.6.18-194.el5PAE.img
همانطور که در اطلاعات بالا میبینید، این فایل حاوی هسته و تصویر initrd است.
بنابراین به زبان ساده، GRUB تنها هسته و تصویر initrd را بارگیری و اجرا میکند.
فرآیند راهاندازی Kernel
فایل، سیستم ریشه را بر اساس آنچه در برابر “root=” در فایل grub.conf مشخص شده است، مونت میکند.
هسته برنامه /sbin/init/ را اجرا میکند.
از آنجایی که init اولین برنامهای بود که توسط هسته لینوکس اجرا شد، شناسه فرآیند یا PID 1 را داشت. میتوانید با دستور ps -ef | grep init، PID را بررسی کنید.
initrd مخفف Initial RAM Disk (دیسک RAM اولیه) است.
initrd توسط هسته به عنوان یک سیستم فایل ریشه موقت استفاده میشود تا زمانی که هسته بوت شود و سیستم فایل ریشه اصلی مونت شود. همچنین شامل درایورهای مورد نیاز برای کامپایل خودش است که به آن کمک میکند تا به پارتیشنهای دیسک سخت یا سایر سختافزارها دسترسی پیدا کند.
فرآیند راهاندازی Init
init فایل /etc/inittab را بررسی میکند تا سطح اجرا در لینوکس را تعیین کند.
در زیر میتوانید سطوح اجرا را مشاهده کنید:
۰ – توقف سیستم
۱ – حالت تک کاربره
۲ – چند کاربره، بدون NFS
۳ – حالت چند کاربره کامل
۴ – استفاده نشده
۵ – X11
۶ – راهاندازی مجدد
init در واقع سطح اجرای پیشفرض را از طریق فایل /etc/inittab شناسایی میکند و از آن برای بارگیری تمام برنامههای مورد نیاز استفاده میکند.
میتوانید با اجرای دستور grep –color initdefault /etc/inittab در سیستم خود، سطح اجرا یا سطوح اجرای پیشفرض را مشاهده کنید.
اگر میخواهید برای خودتان دردسر ایجاد کنید، میتوانید سطح اجرای پیشفرض خود را به ۶ یا ۰ تنظیم کنید. از آنجایی که شما معنای ۰ و ۶ را میدانید، هرگز این کار را نمیکنید.
شاید بخواهید سطح اجرای پیشفرض خود را به ۳ یا ۵ تنظیم کنید.
برنامههای Runlevel
هنگامی که سیستم لینوکس در حال راهاندازی است، ممکن است سرویسهای مختلفی را که در حال شروع هستند، مشاهده کنید. به عنوان مثال، ممکن است به شما بگوید که سرویس Sendmail با موفقیت راهاندازی شده است. “starting Sendmail… OK”، که در واقع برنامههای سطح اجرا هستند که از دایرکتوری سطح اجرا (مشخص شده توسط سطح اجرای شما) اجرا میشوند.
بسته به تنظیمات سطح اجرای پیشفرض init، سیستم از یکی از دایرکتوریهای زیرمجموعه خود عبور میکند:
سطح اجرا ۰ – /etc/rc.d/rc0.d/
سطح اجرا ۱ – /etc/rc.d/rc1.d/
سطح اجرا ۲ – /etc/rc.d/rc2.d/
سطح اجرا ۳ – /etc/rc.d/rc3.d/
سطح اجرا ۴ – /etc/rc.d/rc4.d/
سطح اجرا ۵ – /etc/rc.d/rc5.d/
سطح اجرا ۶ – /etc/rc.d/rc6.d/
توجه داشته باشید که در /etc نیز لینکهای نمادین مستقیماً به این دایرکتوریها وجود دارد. بنابراین /etc/rc0.d به /etc/rc.d/rc0.d لینک شده است.
“rc0.d -> rc.d/rc0.d”
در دایرکتوری /etc/rc.d/rc*.d/، باید برنامههایی را ببینید که با S و K شروع میشوند.
برنامههایی که با S شروع میشوند، هنگام راهاندازی سیستم عامل استفاده میشوند. S به معنای شروع (startup) است.
برنامههایی که با K شروع میشوند، هنگام خاموش شدن سیستم عامل استفاده میشوند. K به معنای کشتن (kill) است.
همراه با S و K، یک سری اعداد در نام برنامه وجود دارد که شماره ترتیب برنامه برای شروع یا کشتن را نشان میدهد.
به عنوان مثال، S12syslog برای شروع سرویس Syslog است که شماره ترتیب آن ۱۲ است. S80sendmail برای شروع سرویس Sendmail است که شماره ترتیب ۸۰ دارد. بنابراین برنامه Syslog باید قبل از Sendmail شروع شود.
در این آموزش، فرآیند راهاندازی در لینوکس را توضیح دادیم.
همچنین میتوانید یک سرور مجازی لینوکس خریداری کنید تا پیکربندیها و آزمایشهای خود را روی آن انجام دهید.
امیدوارم از خواندن این مقاله لذت برده باشید.
لطفاً نظرات خود را با ما در میان بگذارید.