中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統啟動流程是怎么樣的

發布時間:2022-02-19 10:13:43 來源:億速云 閱讀:136 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Linux系統啟動流程是怎么樣的”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux系統啟動流程是怎么樣的”這篇文章吧。

linux啟動時我們會看到許多啟動信息,Linux系統的啟動過程并不是大家想象中的那么復雜,其過程可以分為5個階段:內核的引導、運行 init、系統初始化、建立終端 、用戶登錄系統。

Linux系統啟動流程是怎么樣的

LINUX啟動流程

先通過一張圖來簡單了解下整個系統啟動的流程,整個過程基本可以分為POST–>BIOS–>MBR(GRUB)–>Kernel–>Init–>Runlevel。下面會詳細說明每個過程的作用。

Linux系統啟動流程是怎么樣的
Linux開機流程詳解:BIOS->MBR->GRUB->KernelLinux開機流程詳解:BIOS->MBR->GRUB->Kernel

BIOS

BIOS(Basic Input/Output System),基本輸入輸出系統,該系統存儲于主板的ROM芯片上,計算機在開機時,會最先讀取該系統,然后會有一個加電自檢過程,這個過程其實就是檢查CPU和內存,計算機最基本的組成單元(控制器、運算器和存儲器),還會檢查其他硬件,若沒有異常就開始加載BIOS程序到內存當中。詳細的BIOS功能,這邊就不說了,BIOS主要的一個功能就是存儲了磁盤的啟動順序,BIOS會按照啟動順序去查找第一個磁盤頭的MBR信息,并加載和執行MBR中的Bootloader程序,若第一個磁盤不存在MBR,則會繼續查找第二個磁盤(PS:啟動順序可以在BIOS的界面中進行設置),一旦BootLoader程序被檢測并加載內存中,BIOS就將控制權交接給了BootLoader程序。

MBR

MBR(Master Boot Record),主引導記錄,MBR存儲于磁盤的頭部,大小為512bytes,其中,446bytes用于存儲BootLoader程序,64bytes用于存儲分區表信息,最后2bytes用于MBR的有效性檢查。

Linux系統啟動流程是怎么樣的
Linux開機流程詳解:BIOS->MBR->GRUB->KernelLinux開機流程詳解:BIOS->MBR->GRUB->Kernel

GRUB

GRUB(Grand Unified Bootloader),多系統啟動程序,其執行過程可分為三個步驟:

Stage1:這個其實就是MBR,它的主要工作就是查找并加載第二段Bootloader程序(stage2),但系統在沒啟動時,MBR根本找不到文件系統,也就找不到stage2所存放的位置,因此,就有了stage1_5

Stage1_5:該步驟就是為了識別文件系統

Stage2:GRUB程序會根據/boot/grub/grub.conf文件查找Kernel的信息,然后開始加載Kernel程序,當Kernel程序被檢測并在加載到內存中,GRUB就將控制權交接給了Kernel程序。

PS:實際上這個步驟/boot還沒被掛載,GRUB直接識別grub所在磁盤的文件系統,所以實際上應該是/grub/grub.conf文件,該配置文件的信息如下:

grub.conf:#boot=/dev/sdadefault=0 #設定默認啟動的title的編號,從0開始timeout=5 #等待用戶選擇的超時時間splashimage=(hd0,0)/boot/grub/splash.xpm.gz #GRUB的背景圖片hiddenmenu #隱藏菜單title CentOS (2.6.18-194.el5PAE) #內核標題root (hd0,0) #內核文件所在的設備kernel /vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ #內核文件路徑以及傳遞給內核的參數initrd /initrd-2.6.18-194.el5PAE.img #ramdisk文件路徑

Kernel

Kernel,內核,Kernel是Linux系統最主要的程序,實際上,Kernel的文件很小,只保留了最基本的模塊,并以壓縮的文件形式存儲在硬盤中,當GRUB將Kernel讀進內存,內存開始解壓縮內核文件。講內核啟動,應該先講下initrd這個文件,

initrd(Initial RAM Disk),它在stage2這個步驟就被拷貝到了內存中,這個文件是在安裝系統時產生的,是一個臨時的根文件系統(rootfs)。因為Kernel為了精簡,只保留了最基本的模塊,因此,Kernel上并沒有各種硬件的驅動程序,也就無法識rootfs所在的設備,故產生了initrd這個文件,該文件裝載了必要的驅動模塊,當Kernel啟動時,可以從initrd文件中裝載驅動模塊,直到掛載真正的rootfs,然后將initrd從內存中移除。

Kernel會以只讀方式掛載根文件系統,當根文件系統被掛載后,開始裝載第一個進程(用戶空間的進程),執行/sbin/init,之后就將控制權交接給了init程序。

Init

init,初始化,顧名思義,該程序就是進行OS初始化操作,實際上是根據/etc/inittab(定義了系統默認運行級別)設定的動作進行腳本的執行,第一個被執行的腳本為/etc/rc.d/rc.sysinit,這個是真正的OS初始化腳本,簡單講下這個腳本的任務(可以去看看實際腳本,看看都做了什么):

  1. 激活udev和selinux;
  2. 根據/etc/sysctl.conf文件,來設定內核參數;
  3. 設定系統時鐘;
  4. 裝載硬盤映射;
  5. 啟用交換分區;
  6. 設置主機名;
  7. 根文件系統檢測,并以讀寫方式重新掛載根文件系統;
  8. 激活RAID和LVM設備;
  9. 啟用磁盤配額;
  10. 根據/etc/fstab,檢查并掛載其他文件系統;
  11. 清理過期的鎖和PID文件

執行完后,根據配置的啟動級別,執行對應目錄底下的腳本,最后執行/etc/rc.d/rc.local這個腳本,至此,系統啟動完成。

Runlevel

runlevel,運行級別,不同的級別會啟動的服務不一樣,init會根據定義的級別去執行相應目錄下的腳本,Linux的啟動級別分為以下幾種

  1. 0:關機模式
  2. 1:單一用戶模式(直接以管理員身份進入)
  3. 2:多用戶模式(無網絡)
  4. 3:多用戶模式(命令行)
  5. 4:保留
  6. 5:多用戶模式(圖形界面)
  7. 6:重啟

在不同的運行級別下,/etc/rc.d/rc這個腳本會分別執行不同目錄下的腳本

Run level 0 – /etc/rc.d/rc0.d/
Run level 1 – /etc/rc.d/rc1.d/
Run level 2 – /etc/rc.d/rc2.d/
Run level 3 – /etc/rc.d/rc3.d/
Run level 4 – /etc/rc.d/rc4.d/
Run level 5 – /etc/rc.d/rc5.d/
Run level 6 – /etc/rc.d/rc6.d/

這些目錄下的腳本只有K和S開頭的文件,K開頭的文件為開機需要執行關閉的服務,S開頭的文件為開機需要執行開啟的服務。

Linux系統啟動流程是怎么樣的
Linux開機流程詳解:BIOS->MBR->GRUB->KernelLinux開機流程詳解:BIOS->MBR->GRUB->Kernel

以上是“Linux系統啟動流程是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宾川县| 西乡县| 柳江县| 定南县| 榆中县| 徐水县| 伽师县| 大理市| 高密市| 松江区| 盐源县| 武乡县| 南溪县| 张家口市| 湖南省| 道真| 鲜城| 旌德县| 内黄县| 定安县| 和政县| 长白| 特克斯县| 扶余县| 宁德市| 青阳县| 乐平市| 安达市| 治多县| 临夏市| 阳信县| 嘉义县| 惠东县| 平顺县| 全州县| 娱乐| 新泰市| 临汾市| 喜德县| 太原市| 浦江县|