linux引導和服務

leikj發表於2024-04-16

kernel 實現程序管理、記憶體管理、網路管理、驅動程式、檔案系統、安全功能等功能

1引導過程

1.1開機自檢

伺服器主機開機以後,將根據主機板 BIOS 中的設定對 CPU(Central Processing Unit, 中央處理器)、記憶體、顯示卡、鍵盤等裝置進行初步檢測,檢測成功後根據預設的啟動順序移 交系統控制權,大多時候會移交給本機硬碟。 網路啟動 載入 網路批次pxe

硬體啟動POST:Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主機板、記憶體、硬碟子系統、顯示子系統、串並行介面、鍵盤等硬體情況的檢測

主機板的ROM:BIOS,Basic Input and Output System,儲存著有關計算機系統最重要的基本輸入輸出程式,系統資訊設定、開機加電自檢程式和系統啟動自舉程式等

1.2.MBR引導

當從本機硬碟中啟動系統時,首先根據硬碟第一個扇區中 MBR(Master Boot Record, 主開機記錄)的設定,將系統控制權傳遞給包含作業系統引導檔案的分割槽;或者直接根據 MBR 記錄中的引導資訊呼叫啟動選單(如 GRUB)。
總結:執行放在MBR扇區裡的啟動 GRUB載入程式

1.3GRUB選單 系統型別雙西雅圖 核心檔案 預設值

對於 Linux 作業系統來說,GRUB(GRand Unified Bootloader,統一啟動載入器)是 使用最為廣泛的多系統引導器程式。系統控制權傳遞給 GRUB 以後,將會顯示啟動選單給 使用者選擇,並根據所選項(或採用預設值)準備載入 Linux 核心檔案,然後將系統控制權轉交給 核心。需要注意的是,CentOS 7 採用的是 GRUB2 啟動引導器。
總結:GRUB載入程式透過讀取GRUB配置檔案/boot/grub2/grub.cfg,來獲取核心和映象檔案系統的設定和路徑位置

grub功能和組成

bootloader: 引導載入器,引導硬體去找到 核心(作業系統的核心)

  • Windows: ntloader,僅是啟動OS
  • Linux:功能豐富,提供選單,允許使用者選擇要啟動系統或不同的核心版本;把使用者選定的核心裝載到記憶體中的特定空間中,解壓、展開,並把系統控制權移交給核心

Linux的bootloader

  • LILO:LInux LOader,早期的bootloader,功能單一
  • GRUB: GRand Unified Bootloader, CentOS 5,6 GRUB 0.97: GRUB Legacy, CentOS 7 以後使用GRUB 2.02

GRUB 啟動階段

  • primary boot loader :

    1st stage:MBR的前446個位元組 引導 硬體去找 核心

    1.5 stage:MBR 之後的扇區,讓stage1中的bootloader能識別stage2所在的分割槽上的檔案系統

  • secondary boot loader :2nd stage,分割槽檔案/boot/grub2/grub.cfg

1.4載入Linux核心 作業系統 排程硬體

Linux 核心是一個預先編譯好的特殊二進位制檔案,介於各種硬體資源與系統程式之間, 負責資源分配與排程。核心接過系統控制權以後,將完全掌控整個 Linux 作業系統的執行過 程。在 CentOS 系統中,預設的核心檔案位於“/boot/vmlinuz-3.10.0-514.el7.x86_64”。
總結:把核心和映象檔案系統載入到記憶體中 可以使用

1.5init程序初始化 這是linux 系統執行的第一個程式

為了完成進一步的系統引導過程,Linux核心首先將系統中的“/sbin/init”程式載入到內 存中執行(執行中的程式稱為程序),init 程序負責完成一系列的系統初始化過程,最後等待使用者進行登入
總結:載入硬體驅動程式,核心把init程序載入到記憶體中執行

傳統init依賴於序列執行Shell 指令碼啟動服務,導致效率低下,系統啟動速度較慢 排隊
systemd能夠將更多的服務程序並行啟動,並且具有提供按需啟動服務的能力,使得啟動更少程序,從而提高系統啟動速度 大家一起

相關文章