Linux系統引導流程

2022-06-25 21:12:11 字數 2724 閱讀 2456

1、韌體:硬體和軟體結合

加電自檢是我們按下電源會檢測硬體像cpu、記憶體、網絡卡等資訊(從硬體層次檢測硬體是否可用)

[root@centos ~]# hwclock   #硬體時間

wed 28 mar 2018 09:22:15 pm cst -0.811743 seconds

[root@centos ~]# date #軟體時間

wed mar 28 21:22:18 cst 2018

hwclock的兩個引數:

hwclock --hctosys  #以硬體時鐘為標準修改軟體時鐘

hwclock --systohc #以軟體時鐘為標準修改硬體時鐘

2、檢測完之後跳轉到mbr(主引導記錄)裡面讀取乙個很重要的資料bootloader(後續的所有工作都是bootloader完成)和partition table、magic number

3、bootloader載入核心:

核心的概念:(linux是一堆原始碼,在開機的時候會看到booting the kernel,從軟體層次檢測硬體是否可用)

主要作用就兩個:驅動硬體(所謂驅動就是系統識別硬體,讓作業系統認識硬體,從軟體識別硬體是否可用)、啟動完init程序其任務就完成了。

4、init程序也是linux啟動的第乙個程序

init程序的任務:

init啟動後讀取inittab檔案,執行預設執行級別,從而繼續引導過程。在unix系統中,init時第乙個可以存在的程序,它的pid恒為1,但它也必須向乙個更高階的功能負責:pid為0的核心排程器(kernel scheduler),從而獲得cpu時間。

解釋:init程序的pid為1,其ppid為0,ppid就是父程序id,其父程序是核心任務排程器。

linux是乙個實時系統,就是將處理時間按時間分配,如果你這次時間沒有處理完則下次繼續給你分配時間的時候再處理,這就需要乙個cpu時間排程器,也就是pid為0的核心排程器。

linux中由乙個程序派生出的程序成為子程序。如果乙個程序的父程序死了,其子程序也不能存在。linux中父程序死掉了子程序存活的程序成為孤兒程序,在linux中不允許孤兒程序的存在。linux掃瞄到存在孤兒程序的時候會自動將這個孤兒程序的父程序設定為init程序(pid為1的程序)。

子程序死亡,父程序應該切換和子程序之間的聯絡,這個子程序成為了殭屍程序(j程序),這種程序也不允許存在。

5、讀取 /etc/inittab檔案

inittab定義linux的7個執行級別

6、inittab檔案剖析:

在inittab中,所有條目採用如下格式:

id:runlevel:action:process

actions常用取值:

inittab重要的兩個條目:

id:3:initdefault:

#指定系統預設執行級別為3,如果想系統啟動後自動執行x window,則將上面的3改為5

# system initialization.

si::sysinit:/etc/rc.d/rc.sysinit

#啟動指令碼/etc/rc.d/rc.sysinit,完成系統服務程式啟動,如系統環境變數設定、設定系統時鐘、載入字型、檢查載入檔案系統、生成系統啟動資訊日誌檔案等。

rc.sysinit是乙個標準的shell指令碼,如果我們想開機不管哪個執行級別都執行一段指令碼我們可以將指令碼或命令放在/etc/rc.d/rc.sysinit裡面。

inittab記錄了預設級別、必須啟動的指令碼、電源管理、6個終端等資訊。

接下來系統就會按照inittab指定的執行級別的目錄下的指令碼:(/etc/rc.d/rc[0-6].d目錄分別對應著執行級別的目錄):

假如系統的預設執行級別為3,系統會執行/etc/rc.d/rc3.d/目錄下的指令碼;

總結:

fireware(韌體)開機自檢,檢驗硬體裝置是否正常,如果正常則讀取硬碟上面存放資料的第乙個位置mbr(master boot record)裡面的bootloader

bootloader裡面最重要的是存放了乙個自舉程式(grub)

grub載入核心(kernel)驅動硬體、啟動init程序

init程序讀取/etc/inittab,首先執行指令碼:/etc/rc.d/rc.sysinit(不管任何執行級別都會執行這個指令碼),然後根據initdefault查到預設的執行級別並且去/etc/rc.d/rcn.d/下執行指令碼,以s開頭的指令碼是啟動服務的指令碼,以k開頭的是關閉服務的指令碼

最後會建立終端,等待使用者登入。顯示user、name。

linux系統引導流程

系統管理 linux系統引導流程 開啟系統 執行級別 服務 故障 軟體包管理 rpm yum 使用者和組的管理 計畫任務的安排 at cron 硬碟的分割槽和磁碟配額應用 scsi ide 分割槽 格式化 使用 1 系統引導流程 了解系統指令碼 開啟電源後整個載入過程 步驟 1 讀取韌體 firmw...

linux系統引導流程

系統管理 1 系統引導流程 了解系統指令碼 開啟電源後整個載入過程 步驟 1 讀取韌體 firmware 中資訊 目的 安全設定 設定密碼 設定引導介質順序 定義光碟啟動 電源管理 加電自檢 網絡卡 顯示卡 cpu 硬碟等是否正常 第二步 自舉程式bootloader grub 例如 root使用者...

Linux系統引導流程

linux系統出現於1991年,由芬蘭大學生linux torvalds和後來陸續加入的眾多愛好者共同開發完成,linux是乙個自由軟體,是源 開放的unix。分時的多使用者 多工的作業系統 多數網路協議支援,方便的遠端管理 1.韌體fireware cmos bios post加電自檢 2.自舉程...