欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
[轉]Linux操作系統內核啟動(dòng)參數詳細解析 - Passion~嵌入式_磊磊的技術(shù)博客的...

Linux操作系統內核啟動(dòng)參數詳細解析

 

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

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

 

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

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

“name”是關(guān)鍵字,內核用它來(lái)識別應該把關(guān)鍵字后面的值傳遞給誰(shuí),也就是如何處理這個(gè)值,是傳遞給處理例程還是作為環(huán)境變量或者拋給“init”。值的個(gè)數限制為10,你可以通過(guò)再次使用該關(guān)鍵字使用超過(guò)10個(gè)的參數。

 

首先,內核檢查關(guān)鍵字是不是 “root=,nfsroot=, nfsaddrs=, ro, rw, debug”或 “init”,然后內核在bootsetups數組里搜索于該關(guān)鍵字相關(guān)聯(lián)的已注冊的處理函數,如果找到相關(guān)的已注冊的處理函數,則調用這些函數并把關(guān)鍵字后面的值作為參數傳遞給這些函數。比如你在啟動(dòng)時(shí)設置參數namea,b,c,d,內核搜索bootsetups數組,如果發(fā)現“name”已注冊, 則調用“name”的設置函數如name_setup(),并把a,b,c,d傳遞給name_setup()執行。

所有型如“namevalue”參數,如果沒(méi)有被上面所述的設置函數接收,將被解釋為系統啟動(dòng)后的環(huán)境變量,比如“TERM=vt100”就會(huì )被作為一個(gè)啟動(dòng)時(shí)參數。

所有沒(méi)有被內核設置函數接收也沒(méi)又被設置成環(huán)境變量的參數都將留給init進(jìn)程處理,比如“single”。

 

常用的設備無(wú)關(guān)啟動(dòng)時(shí)參數。

1、init...

設置內核執行的初始化進(jìn)程名,如果該項沒(méi)有設置,內核會(huì )按順序嘗試/etc/init,

/bin/init,/sbin/init, /bin/sh,如果所有的都沒(méi)找到,內核會(huì )拋出 kernel panic:的錯誤。

2、nfsaddrs=...

設置從網(wǎng)絡(luò )啟動(dòng)時(shí)NFS的啟動(dòng)地址,以字符串的形式給出。

3、nfsroot=...

設置網(wǎng)絡(luò )啟動(dòng)時(shí)的NFS根名字,如果該字符串不是以 "/"、","、"."開(kāi)始,默認指向“/tftp-boot”。

以上2、3在無(wú)盤(pán)站中很有用處。

4、no387

該選項僅當定義了CONFIG_BUGi386時(shí)才能用,某些i387協(xié)處理器芯片使用32位的保護模式時(shí)會(huì )有BUG,比如一些浮點(diǎn)運算,使用這個(gè)參數可以讓內核忽略387協(xié)處理器。

5、no-hlt

該選項僅當定義了CONFIG_BUGi386時(shí)才能用,一些早期的i486DX-100芯片在處理“hlt”指令時(shí)會(huì )有問(wèn)題,執行該指令后不能可靠的返回操作系統,使用該選項,可以讓linux系統在CPU空閑的時(shí)候不要掛起CPU。

6、root=...

該參數告訴內核啟動(dòng)時(shí)使用哪個(gè)設備作為根文件系統。比如可以指定根文件為hda8root=/dev/hda8。

7、rorw

ro參數告訴內核以只讀方式加載根文件系統,以便進(jìn)行文件系統完整性檢查,比如運行fsck;rw參數告訴內核以讀寫(xiě)方式加載根文件系統,這是默認值。

8、reserve=...

保留端口號。格式:reserve=iobase,extent[,iobase, extent]...,用來(lái)保護一定區域的I/O端口不被設備驅動(dòng)程序自動(dòng)探測。在某些機器上,自動(dòng)探測會(huì )失敗,或者設備探測錯誤或者不想讓內核初始化設 備時(shí)會(huì )用到該參數;比如: reserve=0x300,32 device=0x300,除device=0x300外所有設備驅動(dòng)不探測 0x300-0x31f范圍的I/O端口。

9、mem=...

限制內核使用的內存數量。早期BIOS設計為只能識別64M以下的內存,如果你的內存數量大 于64M,你可以指明,如果你指明的數量超過(guò)了實(shí)際安裝的內存數量,系統崩潰是遲早的事情。如:mem=0x1000000意味著(zhù)有16M內存,如果是 mem=0x6000000,就是96M內存了。

注意:很多機型把部分內存作為BIOS的映射,所以你在指定內存大小的時(shí)候一定要預留空間。你也可以在 pentium或者更新的CPU上使用mem=nopentium關(guān)閉4M的頁(yè)表,這要在內核配置時(shí)申明。

10、panic=N

默認情況,內核崩潰--kernel panic 后會(huì )宕機而不會(huì )重啟,你可以設置宕機多少秒之后重啟機器;也可以在/proc/sys/kernel/panic文件里設置。

11、reboot=[warm|cold][,[bios|hard]]

該選項僅當定義了CONFIG_BUGi386時(shí)才能用。2.0.22的內核重啟默認為cool reboot,warm reboot 更快,使用"reboot=bios"可以繼承bios的設置。

12、nosmp maxcpus=N

僅當定義了 __SMP__,該選項才可用??梢杂脕?lái)禁用多CPU或者指明最多支持的CPU個(gè)數。

 

內核開(kāi)發(fā)和調試的啟動(dòng)時(shí)參數

這些參數主要用在內核的開(kāi)發(fā)和調試上,如果你不進(jìn)行類(lèi)似的工作,你可以簡(jiǎn)單的跳過(guò)本小節。

1、debug

linux的日志級別比較多(詳細信息可以參看linux/kernel.h),一般地,日志的守護進(jìn)程klogd只把比DEBUG級別高的日志寫(xiě)進(jìn)磁盤(pán);如果使用該選項,klogd也把內核的DEBUG信息寫(xiě)進(jìn)日志。

2、profile=N

在做內核開(kāi)發(fā)的時(shí)候,如果想清楚的知道內核在什么地方耗用了多少CPU的時(shí)鐘周期,可以使用 核心的分析函數設置變量prof_shift為非0值,有兩種方式可以實(shí)現:一種是在編譯時(shí)指定,另一種就是通過(guò)“profile=”來(lái)指定;他給出了一個(gè)相當于最小單位--即時(shí)鐘周期;系統在執行內核代碼的時(shí)候, profile[address >;>; prof_shift]的值就會(huì )累加,你也可以從 /proc/profile得到關(guān)于它的一些信息。

3、swap=N1,N2,N3,N4,N5,N6,N7,N8

設置內核交換算法的八個(gè)參數:max_page_age, page_advance, page_decline,page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight,bufferout_weight。

4、buff=N1,N2,N3,N4,N5,N6

設置內核緩沖內存管理的六個(gè)參數:max_buff_age, buff_advance, buff_decline,buff_initial_age, bufferout_weight, buffermem_grace。

 

使用 RAMDISK的參數

(僅當內核配置并編譯了 CONFIG_BLK_DEV_RAM)。一般的來(lái)說(shuō),使用ramdisk并不是一件好事,系統自己會(huì )更加有效的使用可用的內存;但是,在啟動(dòng)或者制作啟 動(dòng)盤(pán)時(shí),使用ramdisk可以很方便的裝載軟盤(pán)等設備上的映象(尤其是安裝程序、啟動(dòng)過(guò)程中),因為在正真使用物理磁盤(pán)之前,必須要加載一些必要的模 塊,比如文件系統模塊,scsi驅動(dòng)等(可以參見(jiàn)我的initrd-x.x.x.img文件分析-制作安裝程序不支持的根文件系統)。

早期的ramdisk(比如1.3.48的核心)是靜態(tài)分配的,必須以ramdisk=N來(lái)指定ramdisk的大??;現在ramdisk可以動(dòng)態(tài)增加。一共有四個(gè)參數,兩個(gè)布爾型,兩個(gè)整形。

1、load_ramdisk=N

如果N1,就加載ramdisk;如果N0,就不加載ramdisk;默認值為0。

2、prompt_ramdisk=N

N1,提示插入軟盤(pán);N0,不提示插入軟盤(pán);默認為1。

3、ramdisk_size=N或者ramdisk=N

設定ramdisk的最大值為N KB,默認為4096KB。

4、ramdisk_start=N

設置ramdisk的開(kāi)始塊號為N,當ramdisk有內核的映象文件是需要這個(gè)參數。

5、noinitrd

(僅當內核配置了選項 CONFIG_BLK_DEV_RAMCONFIG_BLK_DEV_INITRD)現在的內核都可以支持initrd了,引導進(jìn)程首先裝載內核和一個(gè) 初始化的ramdisk,然后內核將initrd轉換成普通的ramdisk,也就是讀寫(xiě)模式的根文件系統設備。然后linuxrc執行,然后裝載真正的 根文件系統,之后ramdisk被卸載,最后執行啟動(dòng)序列,比如/sbin/init。

選項noinitrd告訴內核不執行上面的步驟,即使內核編譯了initrd,而是把initrd的數據寫(xiě)到 /dev/initrd,只是這是一個(gè)一次性的設備。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
U-Boot在S3C2410上的移植
Linux內存初始化
Linux系統啟動(dòng)流程
linux根文件系統與initrd
Linux initrd的分析、創(chuàng )建和使用(轉)接上 - liux系統技術(shù) - 隨心--linux
Linux 初始 RAM 磁盤(pán)(initrd)概述
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久