Linux系統的啟動過程

2021-08-04 05:22:22 字數 1393 閱讀 1022

linux的啟動過程:

這裡先給乙個簡單的概述,後面再是詳述:

a. 位於rom的bios首先加電自檢,然後裝載mbr內容到ram,將控制權交給ram中的bootloader(比如grub);

b. bootloader進行自身的多階段引導,裝載一些檔案系統的驅動等,最後將核心裝載入ram;

c. 核心首先執行,然後掛載記憶體檔案系統initrd;

d. initrd針對當前的硬體情況,決定應載入哪些核心模組並載入之,並且掛載root filesystem(系統盤),最後用/sbin/init來代替自己的/init以起到啟動1號程序init的作用;

e. init程序工作,啟動系統服務,處理使用者登入事宜,最終linux系統可用。

bios是位於rom中的,所以可以說就是機器本身。相反地,磁碟就不一定算機器本身的了,因為可以遠端掛載。

a. 首先,bios加電自檢,即所謂的post(power on self test)

b. 然後,按照bios中設定的引導順序(如:硬碟分割槽、光碟機、軟盤、usb裝置等)讀入引導塊。

一般來說,從硬碟啟動,引導塊指的就是mbr(master boot record,主引導記錄)。mbr是乙個 512 位元組大小的扇區,位於磁碟的第乙個扇區(0道 0柱面 1扇區),它在硬碟上的三維位址為(柱面,磁頭,扇區)= (0,0,1)

c. 當 mbr 被載入到 ram 中之後,bios就將控制權交給mbr了,而mbr中的內容可以是grub或lilo.

mbr是乙個512位元組的區域,其中放置的是bootloader程式。bootloader是引導程式,它一般分為多階段引導(見下面對grub的介紹)。常見的bootloader程式有grub和lilo.

grub(grand unified bootloader),遵循fsf(free software foundation)的多引導規範(multiboot specification),它允許使用者選擇一種作業系統來啟動。

grub分為version 1和version2,前者已經是legacy了,後者才是常用的。

grub的引導分為3個stage:

附:grub和lilo的區別:(grub完勝)

bootloader負責裝載kernel image(vmlinuz)和initrd image(initramdisk)到記憶體中。在bootloader把控制權交給kernel之前,vmlinuz和initrd就已經被裝載在記憶體中了。

附:幾個概念

核心引導結束之後的事情,不是筆者目前關注的重點,所以簡單寫一下。

在核心引導結束之後,還有3件事情要做,之後使用者就可以使用系統了。

a. init程序完成其工作:在進入某個特定的執行級別(runlevel)時執行相應的程式,以此對各種執行級別進行管理。

b. 初始化系統的服務程式

c. 使用者登入過程的處理

Linux 系統的啟動過程

linux啟動時可以看到很多啟動資訊。linux系統的啟動過程並沒有想象中那麼複雜,可以分為五個階段 核心引導 計算機通電以後,首先bios會進行開機自檢,按照bios中設定的啟動裝置 通常是硬碟 來啟動。作業系統接管硬體以後,首先讀入 boot目錄下的核心檔案。執行init init程式是系統所有...

Linux系統的啟動過程

linux系統的啟動過程大體上可分為五部分 核心的引導 執行init 系統初始化 建立終端 使用者登入系統。當計算機開啟電源後,首先是bios開機自檢,按照bios中設定的啟動裝置 通常是硬碟 來啟動。緊接著由啟動裝置上的grub程式開始引導linux,當引導程式成功完成引導任務後,linux從它們...

Linux系統的啟動過程

linux系統的啟動過程 bios自檢 grub引導程式 載入核心 執行init 啟動shell login登陸系統 系統啟動各個階段的詳細介紹 計算機在接通電源之後首先由bios進行post自檢,然後依據bios內設定的引導順序從硬碟 軟盤或cdrom中讀入引導塊。linux系統是人bios中的位...