⑴ 樹莓派linux啟動過程簡介
昨天在寫關於linux設置腳本開機啟動的文章時,有個疑問就是開機時怎麼確認運行級別,然後遍歷執行/etc/rcN.d/目錄下的所有服務程序。帶著疑問, 在前人的基礎上 學習總結一下linux系統初始化的工作的內容,現在樹莓派4B上展示出來。
1、載入內核
當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備(通常是硬碟)來啟動。操作系統接管硬體以後,首先讀入 /boot 目錄下的內核文件。樹莓派4B的內核是Raspbian GNU/Linux 10 (buster),基於Debian。
2、初始化進程init
內核文件載入以後,運行第一個程序init,它的作用是初始化系統環境。init位於目錄/sbin,進程號PID為1,即1號進程,其他所有進程都由init衍生,是init的子進程。
同時還有個0號進程,idle進程,在系統初始化時由內核kernel自身從無到有創建,通過調用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 、login shell
默認shell時bash,命令行界面,讓用戶可以直接與操作系統對話。讀取環境變數,具體請參考筆者文章-Linux環境變數的設置。
⑵ 樹莓派查看所有文件用的是什麼命令
ome Linux上的我的文檔,包含用戶名命名的文件夾
/lib 各種應用需要的代碼庫
/lost+found 一般情況下是空的,當系統非法關機後,這里就存放了一些文件
/media 放置可移動存儲驅動器,比如USB和CD
/mnt 用來手動掛在外部硬體驅動器或存儲設備
/opt 可選軟體文件夾,非系統部分的軟體將會放置在這里
/sbin 放置超級用戶使用的系統管理命令
/sys 放置操作系統文件
/tmp 放置臨時文件
/usr 放置用戶使用的程序
/var 虛擬文件,用於程序保存數據
2
樹莓派常用命令: