歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux操作系統內核啟動參數詳解

Linux操作系統內核啟動參數詳解

日期:2017/2/28 17:46:22   编辑:Linux教程

Linux內核在啟動的時候,能接收某些命令行選項或啟動時參數。當內核不能識別某些硬件進而不能設置硬件參數或者為了避免內核更改某些參數的值,可以通過這種方式手動將這些參數傳遞給內核。

如果不使用啟動管理器,比如直接從BIOS或者把內核文件用“cp zImage /dev/fd0”等方法直接從設備啟動,就不能給內核傳遞參數或選項--這也許是我們使用引導管理器比如LILO的好處之一吧。

Linux的內核參數是以空格分開的一個字符串列表,通常具有如下形式:

name[=value_1][,value_2]...[,value_10]

“name”是關鍵字,內核用它來識別應該把“關鍵字”後面的值傳遞給誰,也就是如何處理這個值,是傳遞給處理例程還是作為環境變量或者拋給“init”。值的個數限制為10,你可以通過再次使用該關鍵字使用超過10個的參數。

首先,內核檢查關鍵字是不是 `root=',`nfsroot=', `nfsaddrs=', `ro', `rw', `debug'或 `init',然後內核在bootsetups數組裡搜索於該關鍵字相關聯的已注冊的處理函數,如果找到相關的已注冊的處理函數,則調用這些函數並把關鍵字後面的值作為參數傳遞給這些函數。比如你在啟動時設置參數name=a,b,c,d,內核搜索bootsetups數組,如果發現“name”已注冊,則調用“name”的設置函數如name_setup(),並把a,b,c,d傳遞給name_setup()執行。

所有型如“name=value”參數,如果沒有被上面所述的設置函數接收,將被解釋為系統啟動後的環境變量,比如“TERM=vt100”就會被作為一個啟動時參數。

所有沒有被內核設置函數接收也沒又被設置成環境變量的參數都將留給init進程處理,比如“single”。

Copyright © Linux教程網 All Rights Reserved