زمان تخمینی مطالعه:‌ 3 دقیقه

آموزش system boot یا مراحل بالا آمدن سیستم


مراحل بوت شدن سیستم (Boot Sequence):

1- (Power-On Self Test) POST:

چک کردن اولیه سخت افزار در پایین ترین سطح ممکن (low-level)

2- (Basic I/O System) BIOS:

در این مرحله عملیات شناسایی دیسک ها و سخت افزار انجام می شود.

3- (GRand Unified Bootloader) Chain loader GRUB:

GRUB مرحله اول از MBR لود می شود و GRUB مرحله دوم را از فایل سیستم اجرا می کند.

GRUB انتخاب می کند که کدام سیستم عامل یا OS بالا بیاید.

chain loader بوت را روی پارتیشنی که OS آن انتخاب شده قرار می دهد.

برای راه اندازی ramdisk ، chain loader دستور initrd را اجرا می کند(معمولا با فایل سیستم ext2 فشرده)، که ramdisk هنگامی که کرنل بالا میاید وظیفه اجرا اولین دیوایس های root را دارد. با این روش این امکان وجود دارد که کرنل ماژول های سخت افزار های متصل به سیستم را اجرا کند، برای همین نیاز دارد تا فایل سیستم root واقعی را Mount کند.

بعد از آن سیستم linuxrc/ را به عنوان اولین پردازش با شماره 1 (PID 1) اجرا می کند.

نکته: از لینوکس 2.6.13 به بعد سیستم بجای لود کردن در حافظه ی initramfs، ابتدا یک تصویر فشرده ایجاد می کند و آن را روی RAM و به صورت نمونه (instance) هایی از tmpfs باز (unpack) می کند. پس از آن کرنل از روی آن تصویر دستور /init را اجرا می کند.

4- Linux kernel:

کرنل روی حافظه (memory) از حالت فشرده خارج می شود.( decompression )

کرنل اجرا می شود.

دیوایس ها شناسایی می شوند.

روت اصلی filesystem به جای ramdisk اولیه، روی / نصب (mount) می شود.

5- init:

به به ترتیب زیر برای اجرا اقدام می کند:

/sbin/init
/etc/init
/bin/init
/bin/sh

اگر هیچ کدام از دستورات بالا با موفقیت اجرا نشود به اصطلاح kernel panics رخ می دهد یا سیستم دچار خطایی از نوع بحرانی می گردد.

6- Startup:

سیستم اسکریپت های startup و runlevel را اجرا می کند.

7- Login:

در حالتی که لینوکس بدون محیط گرافیکی نصب شده باشد در این مرحله init پردازش getty را فراخوانی می کند و getty دستور login را فراخوانی می کند و خط فرمان از شما username و password می خواهد.

در صورتی که لینوکس به همراه محیط گرافیکی نصب شده باشد X Display Manager شروع کننده X server می باشد.

نکته: سیستم های جدید تر به جای BIOS از UEFI (Unified Extensible Firmware Interface) یا واسط یکپارچه نرم افزار قابل گسترش، استفاده می کنند.

UEFI چگونه کار می کند؟

UEFI از کد های بوت MBR استتفاده نمی کند، UEFI اطلاعات جدول پارتیشن یا (partition table) و فایل سیستم (filesystem) را دارد و فایل های برنامه مورد نیاز برای اجرا را در پارتیشن سیستمی EFI ذخیره می کند که اغلب فرمت آن پارتیشن FAT32 می باشد.

بعد از POST ، سیستم نرم افزارUEFI را لود کرده که به این معنی می باشد که سخت افزار مورد نیاز برای بوت را راه اندازی می کند، و بعد از آن برای این که بفهمد کدام برنامه UEFI اجرا می شود، داده های Boot Manager را می خواند.

برنامه اجرا شده توسط UEFI می تواند بعدا برنامه دیگری را اجرا کند، مثل kernel و initramfs در بوت لودری شبیه GRUB.


لطفا در راستای هرچه بهتر شدن کیفیت مطالب نظر خود را در رابطه با این سرفصل برای ما ارسال نمایید.