理解linux系統初始化

2021-04-25 18:35:54 字數 1799 閱讀 9326

文章內容由網上蒐集的資料整理而得,由於資料下的太多沒注意出處及作者,在這裡只好謝謝各位大大們了。  

要說linux服務就不得不說linux系統的初始化過程了。

開機步驟:

1.開機自檢

2.預引導

3.核心映像裝入

4.核心啟動

5.系統初始化

6.等待使用者登入

注:在核心啟動完之後會搜尋檔案系統中的init程式(或者由init=命令列引數指定的程式),並使用 execve()系統呼叫載入執行init程式,到這裡也就進入了系統初始化階段。

系統初始化的工作:init程序負責進行一系列系統初始化程式和指令碼檔案,/etc/inittab中包含了init所做的所有工作。

inittab檔案簡單描述

init程序是系統所有程序的起點,核心在完成核內引導以後,即在本執行緒(程序)空間內載入init程式,它的程序號是1。

啟動 init程式需要讀取/etc/inittab檔案作為其行為指標,inittab是以行為單位的描述性(非執行性)文字,每乙個指令行都具有以下格式:

id:runlevel:action:process其中id為入口識別符號,runlevel為執行級別,action為動作代號,process為具體的執行程式。

id一般要求4個字元以內,對於getty或其他login程式項,要求id與tty的編號相同,否則getty程式將不能正常工作。

runlevel是init所處於的執行級別的標識,一般使用0-6。0、1、6執行級別被系統保留,0作為shutdown動作,1作為重啟至單使用者模式,6為重啟。

在一般的系統實現中,都使用了2、3、4、5幾個級別,在redhat系統中,2表示無nfs支援的多使用者模式,3表示完全多使用者模式(也是最常用的級別),4保留給使用者自定義,5表示xdm圖形登入方式。

initdefault是乙個特殊的action值,用於標識預設的啟動級別;當init由核心啟用以後,它將讀取inittab中的initdefault項,取得其中的runlevel,並作為當前的執行級別。

在redhat系統中,一般情況下inittab都會有如下幾項:

id:3:initdefault:

#表示當前預設執行級別為3--完全多工模式;

si::sysinit:/etc/rc.d/rc.sysinit

#啟動時自動執行/etc/rc.d/rc.sysinit指令碼

l3:3:wait:/etc/rc.d/rc 3

#當執行級別為3時,以3為引數執行/etc/rc.d/rc指令碼

init程序將啟動執行rc指令碼,下面將介紹rc指令碼具體的工作:

看上面的inittab檔案系統啟動級別3的模式;

自動執行etc/rc.d/rc.sysinit,

rc.sysinit中最常見的動作就是啟用交換分割槽,檢查磁碟,載入硬體模組(具體的大家可以去看指令碼);      

接著在執行級別3下,/etc/rc.d/rc將會得到執行,命令列引數為3,即執行/etc/rc.d/rc3.d/目錄下的所有檔案。rc3.d下的檔案都是指向/etc/rc.d/init.d/目錄下各個shell指令碼的符號連線,而這些指令碼一般能接受start、stop、restart、status等引數。rc指令碼以start引數啟動所有以s開頭的指令碼,在此之前,如果相應的指令碼也存在k打頭的鏈結,而且已經處於執行態了(以/var/lock/subsys/下的檔案作為標誌),則將首先啟動k開頭的指令碼,以stop作為引數停止這些已經啟動了的服務,然後再重新執行。顯然,這樣做的直接目的就是當init改變執行級別時,所有相關的服務都將重啟,即使是同乙個級別。

rc程式執行完畢後,系統環境已經設定好了,下面就該使用者登入系統了。

linux初始化系統init

linux從bios開始啟動,然後載入記憶體映像到記憶體,進行記憶體初始化,核心初始化的最後一步是啟動乙個pid為1的init的程序!他負責載入啟動別的程序。對應的啟動指令碼都在 etc init.d下。init是序列化啟動,啟動較慢!init的管理 etc init.d deamon start,...

LINUX 系統初始化指令碼

bin bash the system first start configuretion for install copy right by donglei 1 配置sysctl mv etc sysctl.conf etc sysctl.bak echo the new config for s...

Linux系統初始化流程

linux系統的啟動,指的是從系統加電到系統控制台顯示 login 登入提示符為止的系統執行階段,與這部分動作密切相關的 主要是 在系統啟動過程中,主要關注一下幾個方面 中斷系統及排程系統 檔案系統的初始化 裝置管理系統的初始化 網路協議的初始化 在init main.c中reset init函式 ...