一、BIOS
BIOS(基本輸入輸出系統)是電腦的主要固件之一,內置於計算機的主板上,主要作用是在計算機加電時進行自檢,並將系統控制權移交給操作系統。在Linux啟動的過程中,BIOS是第一步。
當計算機開機時,BIOS會自動初始化硬件資源,包括CPU、內存、硬盤、光驅等。接下來,BIOS會加載自檢程序,進行一系列硬件自檢,如果發現錯誤,就會輸出錯誤信息。如果自檢通過,BIOS會搜索啟動設備的引導扇區,並將控制權轉交給引導扇區。在Linux啟動過程中,引導扇區是非常重要的,因為它包含着操作系統的啟動程序。
二、引導程序
引導程序是位於硬盤的引導扇區中的第一扇區,它是操作系統啟動的第二步。在Linux系統中,引導程序通常是GRUB(GRand Unified Bootloader)。GRUB是一個多重引導程序,它可以識別主流操作系統,比如Windows、Linux、Mac等,用戶可以在啟動時選擇任何一個操作系統。
#在Linux系統中,GRUB的配置位於以下文件中:/etc/grub.d/40_custom #GRUB啟動順序可以在/etc/grub.d/00_header和40_custom中進行調整 menuentry 'Ubuntu 18.04' { set root='hd0,msdos2' linux /vmlinuz root=/dev/sda2 ro initrd /initrd.img }
從GRUB開始,Linux系統才開始真正地被加載。在此過程中,GRUB會讀取內核文件和其它必要的文件系統模塊並將它們加載到內存中。
三、內核啟動
內核是Linux系統的核心部分,也是運行與系統最底層,直接操作硬件資源的部分。內核啟動是Linux啟動的第三步。
在內核啟動時,Linux會做如下操作:
1、設置系統日誌
2、初始化CPU、內存、硬盤等硬件
3、掛載根文件系統
4、建立root用戶的環境變量
5、啟動init進程
內核會創建root文件系統並掛在,以便操作系統可以訪問硬盤中的數據。接下來,內核會加載一些必要的模塊,如文件系統模塊、網絡模塊等。在文件系統準備好之後,內核會啟動init進程。init是Linux系統的第一個用戶級別進程,它是進程控制的直接祖先。在Linux中,init一直存在於運行級別中,負責啟動和終止其它的用戶級別進程。
四、用戶級別
用戶級別是操作系統運行時的可供用戶選擇的不同狀態,也稱為運行級別。在Linux中,有七個運行級別。不同的運行級別提供了不同的服務,如多用戶服務、圖形界面、只運行背景服務等。用戶可以根據需求選擇運行級別。
以下是運行級別的定義:
0:系統停機狀態,也稱關機
1:單用戶工作狀態,root用戶的命令行模式
2:多用戶狀態,沒有NFS支持
3:完整的多用戶狀態,有NFS支持且無圖形界面
4:系統未使用,保留
5:多用戶狀態,帶圖形界面
6:系統正常關閉並重啟
用戶可以通過運行級別來控制Linux系統的狀態。在Linux中,運行級別可以通過修改/etc/inittab文件來實現。例如,可以增加下面這行代碼來在“init 5”的時候啟動Nginx服務器。
#在/etc/inittab中設置運行級別,並添加如下兩行代碼 id:5:initdefault: ng:5:respawn:/usr/local/nginx/sbin/nginx
總結
以上是Linux系統啟動的完整過程,從BIOS開始,到引導程序,再到內核啟動,最後到用戶級別。操作系統的啟動過程非常複雜,需要各種硬件和軟件的協同作用。了解Linux的啟動過程可以幫助我們更好地理解操作系統,並且在處理問題時可以更快地找到根本問題。在實際運維中,了解Linux系統的啟動過程也非常重要。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/195771.html