本章主要與linux的啟動有關。
1、linux 啟動流程一覽:
(1)載入bios的硬體資訊與進行自我測試,並依據設定取得第乙個可啟動的裝置
bios會首先cmos,通過cmos讀取硬體配置。
(2)讀取並執行第乙個啟動裝置內mbr的boot loader
mbr:master boot loader
(3)依據boot loader的設定載入kernel,kernel 會開始檢測硬體與載入驅動程式
(4)在硬體驅動成功後,kernel會主動呼叫init程序,而init會取得run-level 資訊
(5)init執行/etc/rc.d/rc.sysinit檔案來準備軟體執行的操作環境
(6)init執行run-level的各個服務的啟動
(7)init執行/etc/rc.d/rc.local檔案
(8)init執行終端機模擬程式mingetty來啟動login程序,最後就等待使用者登陸。
2、boot loader 的功能
最主要的功能是要認識作業系統的檔案格式並據此載入核心到記憶體中去執行
有三個方面:
(1)提供選單:使用者可以選擇不同的啟動選項,這也是多重引導的重要功能
(2)載入核心檔案:直接指向可啟動的程式區段來開始作業系統
(3)轉交其他loader:將引導裝載功能轉交給其他loader負責
windows 的loader預設不具有控制權轉交的功能,因此不能使用windows的loader來載入linux的loader。這就是為什麼之前會強調要先安裝windows再安裝linux的緣故。
3、第乙個程序init及配置檔案/etc/inittab與run level
在核心載入完畢進行完硬體檢測與驅動程式載入後,此時硬體就緒,核心會主動呼叫第乙個程式,那就是/sbin/init
/sbin/init最主要的功能就是準備軟體執行的環境。有很多操作,而這些操作都會通過init的配置檔案/etc/inittab來規劃。
linux就是通過run level來規定系統使用不同的服務來啟動,讓linux的使用環境不同。
4、如果有個新的硬體,而作業系統不支援,該怎麼辦?
(1)重新編譯核心,並加入最新的硬體驅動程式原始碼;
(2)將該硬體的驅動程式編譯成為模組,在啟動時載入該模組。
5、自行載入模組:insmod 完全有使用者自行載入乙個完整檔名的模組,並不會主動分析模組依賴性。
rmmod 可以刪除這個模組。
使用insmod與rmmod的問題就是必須自行找到模組的完整檔名才行,萬一模組有依賴屬性的問題,將無法直接載入或者刪除該模組。這是後可以使用modprobe來處理模組載入的問題。
使用modprobe真的是比insmod方便的多,它可以直接去查詢modules.dep的記錄,可以克服模組的依賴性問題。
6、核心模組放置於/lib/modules/$(uname -r)/kernel/當中,這些模組必須要在根目錄(/)被掛載時才能夠讀取。這時候就需要initrd.
initrd可以將/lib/modules/...內的啟動過程中一定需要的模組打包成乙個檔案,然後在啟動時通過主機的int13硬體功能將該檔案讀取出來並壓縮,並且initrd在記憶體內會**成為根目錄。
initrd內所包含的模組大多是與啟動過程有關,而主要以檔案系統及硬碟模組為主的。
鳥哥私房菜
鳥哥 linux 私房菜 ad 在我們平時使用unix命令的時候,需要平時多積累並且整理。下面,就是我們在平時時候整理的unix命令。而且是很全面的bash內建命令.bash內建unix命令 執行當前程序環境中的程式。同source。file dotunix命令從檔案file中讀取命令並執行。空操作...
鳥哥Linux私房菜
linux相關知識 鳥哥linux私房菜 真是人間美味啊!linux 基礎篇 引言 這部份包括了早期的red hat 6.x以及 鳥哥寫的 一 二版的基礎篇各章節文章彙整!第一部份 linux的規劃與安裝 第二部份 linux檔案 目錄與磁碟格式 第三部份 學習shell與shell scripts...
鳥哥的linux私房菜
各個元件或者裝置在linux下面都是乙個檔案 硬體廠商對linux所推出的驅動程式較慢,選購硬體時候,應該要選擇已經安裝過linux測試的硬體較好 磁碟陣列 raid 可以完成速度效能 備份等任務,通常作為檔案伺服器,訪問頻率較高。網絡卡要求對於讀取非常頻繁的 選用intel 3com 乙個最簡單的...