روند بوت
Sinux از طریق GRUB 2 با پروتکل Multiboot2 بوت میشود، از حالت محافظتشدهی ۳۲ بیتی به حالت long ۶۴ بیتی منتقل میشود و در نهایت به نقطهی ورود C یعنی kernel_main() میپرد.
BIOS/UEFI → GRUB 2 → Multiboot2
→ boot.asm (۳۲ بیتی)
├── اعتبارسنجی magic مقدار Multiboot2
├── بررسی CPUID + پشتیبانی Long Mode
├── ساخت جداول صفحهبندی PML4/PDPT/PDT (نگاشت یکبهیک اولین ۱ گیگابایت)
├── فعالسازی PAE + LME + صفحهبندی
├── بارگذاری GDT ۶۴ بیتی
└── پرش به kernel_main() (C ۶۴ بیتی)
توضیح مراحل
- فیروزار (BIOS/UEFI) GRUB را بارگذاری میکند. Secure Boot باید خاموش باشد.
- GRUB 2 هسته را با مشخصهی Multiboot2 بارگذاری میکند و یک ساختار اطلاعات بوت را پاس میدهد.
boot.asmدر حالت ۳۲ بیتی اجرا میشود و:- مقدار magic مقدار Multiboot2 را اعتبارسنجی میکند.
- از
CPUIDبرای تأیید پشتیبانی Long Mode (۶۴ بیتی) استفاده میکند. - جداول صفحهبندی (PML4 → PDPT → PDT) را میسازد که اولین ۱ گیگابایت را یکبهیک نگاشت میکنند.
- PAE، بیت LME و صفحهبندی را فعال میکند.
- GDT ۶۴ بیتی را بارگذاری میکند.
- با پرش دور به
kernel_main()۶۴ بیتی میرود.
از آنجا، هستهی C مدیران حافظه، درایوها، سیستم فایل و زمانبند را مقداردهی اولیه میکند و سپس وارد شل داخلی میشود.