1,加載內核
?電腦開機,第壹步是BIOS自檢,根據BIOS中設置的啟動設備(壹般是硬盤)開始。在操作系統接管硬件之後,它首先讀取/boot目錄中的內核文件。樹莓派4B的內核是Raspbian GNU/Linux 10(Buster),基於Debian。
2.初始化進程init
?加載內核文件後,運行第壹個程序init,它用於初始化系統環境。Init位於目錄/sbin中,進程號PID為1,即進程1。所有其他進程都是從init派生的,並且是init的子進程。
同時還有壹個0進程,空閑進程,是系統初始化時內核自己從頭創建的。通過調用kernel_thread創建壹個內核線程來執行init函數,0進程創建壹個1進程。
3.操作級別
具體可以參考作者的文章——Linux運行級別入門?但是,如何確定開機時的運行級別呢?
init進程首先讀取文件/etc/inittab,這是運行級別的設置文件。但是每個發行版都不壹樣,init的配置文件也不壹樣。可以使用/etc/event.d中的配置文件,最新版本改為/etc/init目錄。
4、引導程序
有關詳細信息,請參考文章-在-linux中設置/etc/init.d。確定運行級別後,執行rcN.d目錄下的文件。這些鏈接文件是連接到init.d目錄的程序。Init進程逐個加載引導程序,實際上是在這個目錄下運行啟動腳本。
例如,當運行級別為5時啟動的程序(圖形多用戶):
5.用戶登錄
?用戶在引導程序加載後登錄。用戶有三種登錄方法:
?命令行登錄:init進程調用getty程序。
?Ssh登錄:init進程調用sshd程序。
?圖形界面登錄:init進程調用顯示管理器,Gnome圖形界面對應的顯示管理器是gdm。
6?、登錄shell
默認的shell是bash,命令行界面,它允許用戶直接與操作系統對話。讀環境變量,請參考作者的文章——Linux環境變量設置。