好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 1 秒內(nèi)啟動Linux的方法

1 秒內(nèi)啟動Linux的方法

熱門標(biāo)簽:外呼電話系統(tǒng)怎么操作 測繪地圖標(biāo)注名稱 鶴崗400電話申請 智能電銷機(jī)器人有用嗎 德陽400電話申請 怎么在百度地圖標(biāo)注公司的位置 百度地圖標(biāo)注直線距離 天津電話外呼系統(tǒng)排名 商機(jī)地圖標(biāo)注

 盡可能快的啟動系統(tǒng),對于自動化設(shè)備是非常重要的。系統(tǒng)能夠在用戶無法感知的時間內(nèi)啟動,也就意味著在不需要工作時,可以完全切斷電源,而不是掛起 進(jìn)入休眠狀態(tài)。本文基于Atmel AT91系列片上系統(tǒng)和NAND閃存,經(jīng)過一系列的優(yōu)化,將Linux系統(tǒng)啟動時間,從最初的11秒,降低到最終的656毫秒。

背景知識

系統(tǒng)從上電到完全啟動,需要經(jīng)過許多過程。一個簡化的啟動流程大概包含:

硬件重置
啟動引導(dǎo)程序(bootloader)
操作系統(tǒng)初始化
應(yīng)用程序執(zhí)行
其中硬件非常關(guān)鍵,但是硬件一般難以更改。后續(xù)的優(yōu)化,主要針對引導(dǎo)程序、Linux內(nèi)核和應(yīng)用程序展開。

引導(dǎo)程序優(yōu)化

引導(dǎo)程序主要完成對CPU的基礎(chǔ)設(shè)置,處理ARM標(biāo)記(ATAGS,ARM TAGS)或設(shè)備樹(device trees),切換存儲管理單元(MMU,Memory Management Unit)等工作。

對于U-Boot,常用的優(yōu)化方式有:

刪除不不要的功能:如網(wǎng)絡(luò)加載等,如果不需要,那么直接移除這些代碼吧;
關(guān)閉不需要的功能
關(guān)閉內(nèi)核鏡像驗證
關(guān)閉引導(dǎo)程序輸出
關(guān)閉啟動延遲

將通用功能的引導(dǎo)程序修改成一個優(yōu)化后的初始程序加載器(Initial Program Loader,IPL),對于U-Boot,可以通過SPL(Second Program Loader,第二階段程序加載器)來實現(xiàn)。

內(nèi)核優(yōu)化

Linux內(nèi)核被設(shè)計的非常靈活,可以針對需要的功能做各種配置優(yōu)化。因此,優(yōu)化內(nèi)核對于系統(tǒng)啟動速度是至關(guān)重要的。

首先,移除一切不要的驅(qū)動,盡可能的減少內(nèi)核加載的內(nèi)容,能夠大大縮短系統(tǒng)啟動時間。其次,還有很多內(nèi)核選擇可能需要進(jìn)一步嘗試,比如內(nèi)核壓縮方 式,對于嵌入式系統(tǒng)來說,LZO壓縮方式,通常會是一個不錯的選擇。最后,還可以通過定制一些啟動參數(shù),達(dá)到加快啟動的目的。例如可以通過“l(fā)pj=”參 數(shù),預(yù)設(shè)每個循環(huán)需要的節(jié)拍數(shù)(loops per jiffy,lpj)的值,避免系統(tǒng)在啟動時自動推算。這樣在基于ARMv5的系統(tǒng)中,可以節(jié)省100ms以上的時間。

對于內(nèi)核啟動的優(yōu)化,可以通過bootgraph.pl腳本(位于內(nèi)核源碼的script/bootgraph.pl)來繪制內(nèi)核啟動耗時圖表,用以分析啟動最耗時的地方。這個腳本使用非常簡單,直接將dmesg的輸出作為其輸入,即可生成svg圖表:

復(fù)制代碼 代碼如下:

dmesg | perl scripts/bootgraph.pl > output.svg

生成的圖表如下圖,

圖中每一個色段表示一個功能的初始化耗時。可以簡單的關(guān)閉不需要的功能,或者針對功能進(jìn)行特定的優(yōu)化。

除了內(nèi)核本身之外,內(nèi)核所在的文件系統(tǒng)也對系統(tǒng)啟動有著非常大的影響。對于使用閃存芯片作為存儲的系統(tǒng)來說,UbiFS是一個很好的選擇。它能夠容忍意外斷電,有著出色的掛載速度,以確保系統(tǒng)快速啟動。

應(yīng)用程序優(yōu)化

內(nèi)核完成系統(tǒng)啟動之后,接來下就是執(zhí)行應(yīng)用程序。對于應(yīng)用程序的優(yōu)化,主要有兩部分,一部分是由應(yīng)用程序來接管啟動的INIT進(jìn)程,另一部分是優(yōu)化應(yīng)用程序的鏈接方式。

標(biāo)準(zhǔn)的SystemV INIT程序,需要執(zhí)行一堆啟動腳本。對于嵌入式系統(tǒng)來說,大部分是沒有意義的。另一部分(比如掛載文件系統(tǒng)),可以由應(yīng)用程序自己來實現(xiàn)。然后,可以在內(nèi)核啟動參數(shù)中通過“init=”參數(shù),將INIT進(jìn)程直接指定為應(yīng)用程序。

應(yīng)用依賴的動態(tài)鏈接庫,會按照以下順序查找:

LD_PRELOAD環(huán)境變量指定的路徑(一般對應(yīng)文件/etc/ld.so.preload);
ELF .dynamic節(jié)中DT_RPATH入口指定的路徑,若DT_RUNPATH入口不存在的話;
環(huán)境變量LD_LIBRARY_PATH指定的路徑,但如果可執(zhí)行文件有setuid/setgid權(quán)限,則忽略這個路徑;編譯時指定--library-path會覆蓋這個路徑;

ELF .dynamic節(jié)中DT_RUNPATH入口指定的路徑;
ldconfig緩存中的路徑(一般對應(yīng)/etc/ld.so.cache文件),若編譯時使用了-z nodeflib的鏈接選項,則此步跳過;
/lib,然后/usr/lib路徑 ,若使用了-z nodeflib鏈接選項,則此步亦跳過;

因此,盡可能的將應(yīng)用程序依賴的動態(tài)鏈接庫放到優(yōu)先查找的路徑,可以加快鏈接速度。對于交叉編譯環(huán)境特別需要注意,主機(jī)上的動態(tài)鏈接庫位置和目標(biāo)系統(tǒng)上的位置可能不一致,這會增加應(yīng)用程序執(zhí)行時動態(tài)鏈接庫的加載時間。

總結(jié)

基于上面提到的三個優(yōu)化點(diǎn),可以將系統(tǒng)的啟動時間,從最初的11s降低到656ms(數(shù)據(jù)參考Jan Altenberg在都柏林舉行的嵌入式Linux會議上的演講稿)。從硬件到引導(dǎo)程序再到內(nèi)核最后到應(yīng)用程序,每個啟動步驟都有自己可優(yōu)化的地方,經(jīng)過一些簡單的優(yōu)化,就可以減少系統(tǒng)的啟動時間。

ps:linux下啟動和關(guān)閉網(wǎng)卡命令

ifup、ifdown:linux命令   
實時地手動修改一些網(wǎng)絡(luò)接口參數(shù),可以利用ifconfig來實現(xiàn),如果是要直接以配置文件,亦即是在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件的設(shè)置參數(shù)來啟動的話,那就得要通過ifdown或ifup來實現(xiàn)了。   

復(fù)制代碼 代碼如下:

[root@linux ~]# ifup {interface}
[root@linux ~]# ifdown {interface}
[root@linux ~]# ifup eth0  
 

ifup與ifdown真是太簡單了。這兩個程序其實是script而已,它會直接到 /etc/ sysconfig/network-scripts目錄下搜索對應(yīng)的配置文件,例如ifup eth0,它會找出ifcfg-eth0這個文件的內(nèi)容,然后加以設(shè)置。關(guān)于ifcfg-eth0的設(shè)置請參考前一章連上Internet的說明。

  不過,由于這兩個程序主要是搜索設(shè)置文件(ifcfg-ethx)來進(jìn)行啟動與關(guān)閉的,所以在使用前請確定ifcfg-ethx是否真的存在于正確的目錄內(nèi),否則會啟動失敗。另外,如果以ifconfig eth0來設(shè)置或者是修改了網(wǎng)絡(luò)接口后,就無法再以ifdown eth0的方式來關(guān)閉了。因為ifdown會分析比較目前的網(wǎng)絡(luò)參數(shù)與ifcfg-eth0是否相符,不符的話,就會放棄這次操作。因此,使用ifconfig修改完畢后,應(yīng)該要以ifconfig eth0 down才能夠關(guān)閉該接口。

如何讓LINUX網(wǎng)卡開機(jī)自動啟動

激活網(wǎng)卡的命令是:ifconfig eth0 up你既然知道了命令,自己做一個腳本,放在啟動項目就可以了。

建議通過編輯網(wǎng)卡配置文件修改網(wǎng)卡配置文件保存在/etc/sysconfig/network-scripts目錄下面,第一塊網(wǎng)卡的文件是ifcfg-eth0,第二塊是ifcfg-eth1,以此類推,所以,如果如果你有一塊,那么你就輸入一下命令vi  /etc/sysconfig/network-scripts/ifcfg-eth0,打開之后,將ONBOOT=no,改為ONBOOT=yes,(如果沒有,手動添加ONBOOT=yes),保存退出,重啟服務(wù)。

復(fù)制代碼 代碼如下:

echo "ONBOOT=yes" >> /etc/sysconfig/network-script/ifcfg-eth0

在/etc/sysconfig/network-scripts中添加ONBOOT=yes設(shè)置網(wǎng)絡(luò)開機(jī)自動啟動

以上內(nèi)容是大家介紹了1秒內(nèi)啟動linux的方法,對啟動linux相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧。

您可能感興趣的文章:
  • Linux下的Oracle啟動腳本及其開機(jī)自啟動
  • 程序中獲取linux系統(tǒng)啟動時間方法
  • linux啟動級別的含義(init 0-6)
  • linux停止和查看啟動服務(wù)的命令使用方法
  • linux設(shè)置tomcat自啟動的方法
  • 在Linux上用forever實現(xiàn)Node.js項目自啟動
  • Linux下啟動多個mysql服務(wù)器例子
  • Linux下php5.4啟動腳本
  • Linux小技巧分享之如何重新啟動tomcat

標(biāo)簽:優(yōu)質(zhì)小號 百色 丹東 六盤水 鎮(zhèn)江 自貢 武漢 滁州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《1 秒內(nèi)啟動Linux的方法》,本文關(guān)鍵詞  秒內(nèi),啟動,Linux,的,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《1 秒內(nèi)啟動Linux的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于1 秒內(nèi)啟動Linux的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 男人捅女人视频| 91国模少妇一区二区三区| 中国女人丰满毛片ⅩXXXX| 缅甸黄色片| 国产欧美性综合视频性刺激| 国产精品18久久久久久不卡| 全亚洲最大最好的私人影剧院| 天天操天天干视频| 综合久久综合久久| 少妇推油按摩做爰A片联系电话| 校花灌浣肠惩罚| 上流社会小说全文阅读无删减| 中文字幕日本一区| 亲胸揉胸膜下刺激娇喘的原因 | 被俘虏的女兵A级毛片| 久久综合欧美| 国产对白在线播放九色| 国产日韩AⅤ精品一区二区桃花| 性欧美视频videos6一9| 男明星被强h肉| 一本大道香蕉高清视频app| 男士揉着揉着流出了液体怎么回事| 50岁老熟女超大尺度人体摄影| 范冰冰xxxx性| 精品91一区二区三区| 美女视频网站黄| 国产亚洲成AV人在线观看导航| 高H肉辣动漫H在线观看| 秋霞网韩国理伦片不卡免费看| 男女爽爽大片| 免费看男人j放进女人j免费看| 日韩精品欧美激情亚洲综合| 草草浮力线路①线wy55移动入口| 保母的诱惑| 免费大片看黄在观看| 河南女人模仿各国叫床| 伊人逼逼| 日韩爱爱视频| silk026中文字幕一区二区| 久久er99热精品一区二区免费| 美女胸免费视频网站|