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中的位...