系統運行環境及開發環境的搭建?目标⑴ 描述BIOS的功能,并談到引導的過程,今天小編就來聊一聊關于系統運行環境及開發環境的搭建?接下來我們就一起去研究一下吧!
目标
⑴ 描述BIOS的功能,并談到引導的過程
⑵ 描述引導加載的功能
⑶ 在引導期間由内核執行的功能列表
⑷ init的功能狀态
⑸ 使用inittab去配置init
⑹ 列出系統V的循行級别與每個級别的功能狀态
⑺ 用适當的工具手動配置init腳本
⑻ 關閉系統和重啟系統到任何一個級别
議程
3.1 Linux的引導順序
1.BIOS初始化
2.引導加載(Boot loader)
3.内核初始化
4.開始init進程并進入想要的運行級别
Linux系統引導順序中較大的步驟是:Bios初始化,引導加載Boot Loader,内核初始化,init啟動,在以下章節中詳細講解。
3.24 Bios 初始化
1.檢測外圍設備
由Bios開始引導過程,bios(basic Input/ output system)是在硬件與軟件之間的界面,它處在一個非常基礎的水平。Bios提供基礎的設置使用操作系統的指令。成功的引導系統依賴Bios,事實上BIOS是最低級别的控制外圍設備的界面。
Bios将首先運行一個電源自檢(post),然後他将尋找外圍設備且從一個設備引導。硬件配置信息是永久地儲存在一個小的區域(cmos通常為64byte 是“cmos complementary metal oxide semiconductor”的縮寫)中,cmos”是帶電的,它由主機上的小電池供電,這個電池允許cmos永久保存硬件的配置信息甚至當計算機被關閉和從電源斷開以後。
2.選擇引導設備
在系統自檢結束後,可從檢測到的引導設備的列表中選擇引導設備。現在的Bios将允許你去設置引導設備的優先權。引導設備包括:軟驅、硬盤、光驅、網卡、Zip驅動器或其他可移動媒體。
3.讀取并執行引導設備的第一扇區
Bios讀取并執行選擇的引導媒體上的第一個物理扇區上的系統。通常這被包含在硬盤的第512字節。
3.3 Boot loader (引導加載)
1.加載引導程序并運行内核
加載内核:Bios從引導媒體的前512 字節加載初始程序。這是Red Hat Linux系統正常的第一階段引導加載,即加載操作系統内核。
2.分别進入兩個獨立的階段:
第一階段:查找引導扇區。
第一階段包含奇偶檢驗碼并需要去引導一個操作系統。因此,它從在引導媒體上别處存儲的一個文件加載一個有能力的第二階段引導程序。
第二階段:讀取在/boot 下的一個文件。
第二階段通常提供一個界面,通過它系統操作員能選擇一個内核或一個可替換的操作系統去引導。它也能提供一種機制去通過不同的參數去加載内核或init.
3.選擇兩個标準引導程序:
⑴ Grub和Lilo:
Red Hat Linux上默認的引導程序是GRUB,即Ground Unified Rood loader的縮寫。GRUB支持一個高級特性的引導程序,包括md5密碼保護、一個引導菜單編輯模式并且在引導時提供一個shell,很像命令行界面。Grub能直接地讀取标準的Linux文件系統,因此它能加載内核,修改GRUB的配置文件,這樣的好處是不需要去運行一個安裝程序。
如果你使用Red Hat Linux系統先前的7.2版本,那麼你就有最大可能使用lilo,建立在它的實際磁盤扇區位置之上的lilo引導程序加載内核,與它的文件名相反。如果Linux内核因為一些理由(例如你建造一個新内核)被移動,運行lilo命令可去重建内核位置的映像。
⑵ 圖形引導和Lilo
Red Hat Linux以前使用一個Lilo的版本,它的特性是圖形引導迅速。鍵入ctrl-x Lilo将迅速切換到傳統的文本模式。現在Red Hat Linux默認的引導程序是GRUB。
3.4 内核初始化
1.檢測硬件設備
檢查内核初始化信息:雖然它們輸出的信息非常重要,但内核初始化非常的快以緻于你如果在引導期間不小心監視,,很可能錯過而看不到它們。有一個好辦法可“凍結時間”來檢查這些輸出的信息,那就是去查看/var/ log/ dmesg文件,此文件包含這些内核信息的快照(剛走去的)。對這些輸出信息的評審将揭示基礎的Linux内核初始化步驟。
2.設備驅動初始化
調用被編譯進内核的設備驅動,并嘗試去查找對應的設備。如果查找到設備,将驅動初始化并将記錄信息輸出到内核儲存。
驅動在内核中可以被編譯為模塊,被包含在一個initrd 鏡像裡,它由内核臨時加載在一個RAM磁盤上去為初始化進程提供可用到的模塊。
3.隻讀加載root文件系統
所有的必須的驅動被加載後,内核将隻讀加載root文件系統。
4.加載inital進程(通常為init)
第一個加載的進程是init,它負責從内核到進程的控制權。
3.5 Init初始化
1.init進程讀取自己的配置文件:/etc/ inittab
文件/ etc/inittab包含init如何設置系統每個運行級别的信息,以及默認的運行級别。
如果/etc/inittab文件發生故障或嚴重損壞,你将不能引導到标準運行級别(0—6)中的任何一個且将需要使用單一用戶或緊急模式代替。此程序将在本書以後單元深入讨論。
初始化運行級别。
系統初始化腳本。
運行特殊級别腳本目錄下的腳本。
捕獲确定的鍵盤信号。
規定ups電源故障/ 恢複腳本。
在虛拟控制台上開啟gettys進程
初始化X到運行級别5
當改變到運行級别為5 時,文件/etc/sysconfig/desktop确定顯示管理程序(即圖形登錄程序)并運行。圖形登錄程序可能是GNOME和KDE。當init運行腳本/etc/ xll/ prefdm時,将讀取/etc/sysconfig/desktop文件。
2.init是所有進程的父進程
可以用 pstree命令查看。
$ pstree
init- - apmd
1—atd
|----auto mount
|----crond-----crond
|----deskuide—cuone
|----gdm-- --x
因為init是第一個進程,它允許有一個pid号為1。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!