挑戰啓動極速(1)

本博客原創文章屬本人lurker0ster所有,歡迎轉載。
轉載時需同意以下條件:
1. 必須保持版權信息,以及文章出處http://blog.csdn.net/lurker0ster/
2. 不準演繹,修改,必須完整轉載全部內容。

===================分割線====================

       寫這篇blog純屬炒冷飯。源頭是Google最近展示的Chrome OS的啓動時間,根據媒體報道大約是7s。早在去年,intel的moblin團隊就展示了他們的快速啓動進展:5s。對於習慣了每天需要等等幾分鐘才能用自己機器的人們來說,實在是吸引力不少(我那裝滿了各式軟件的Thinkpad大約要8分鐘才能啓動完成–_-!)。

      熟話說外行看熱鬧,內行看門道。5s這樣的成績已經足夠快了麼?回答這個問題之前,我們先來看一張圖:

引自【1】

      大家看這個bootchart圖,它來自於Intel moblin。啓動桌面用的是輕量級的Xfce,而不是GNOME和KDE。同時因爲採用了sReadahead,減少了IO wait的時間,可以看到sreadahead的時段剛好是第二張總圖中IO密集的時段。另外,init的啓動腳本也做了簡化。這張圖是傳統硬盤下的測試結果,大約是10s。SSD下大約是5s。

另外,Chrome OS的7s,也是在SSD下取得的測試成績。這樣的啓動速度到底是快還是不快呢,根據網上的資料,SSD讀取的平均速度大約是普通7200轉硬盤的3倍,爲200MB/s,寫速度爲70MB/s和普通硬盤持平。考慮到啓動過程並不全是IO密集的,這樣的成績應該說符合實際設想。

那麼linux啓動到底可以到多快呢?

      我在這裏想給一個數據,我以前移植過uclinux到我的PSP上,啓動時候大約爲2s,啓動過程不包含網絡初始化和圖形界面,大部分啓動時間都花在解壓內核上了。考慮到PSP 只是266MHZ的MIPS CPU,Intel的Atom 雖然慢,但是比PSP的CPU應該是快多了。如果以桌面CPU的性能去考慮,內核啓動1s都不用。如果能對X window做徹底的優化,同時把網卡初始化延遲到進桌面之後,我認爲可以做到5s以內,注意這是普通硬盤和主流CPU(比如E7400)下的預期成績。

從bootloader到圖形登陸界面(不是tty登陸界面),SSD小於2s,普通硬盤小於5s,纔是我能接受的理想結果。當然以上過程不包含BIOS啓動過程,因爲BIOS通常是廠家定製,時間沒法由我們來控制。

     Arjan在presentation中提出“Done booting means CPU and disk idle”。對此我還有異議,其實在登陸界面的時候,用戶需要時間來輸入用戶名和密碼,我們可以利用這段空閒來初始化剩下部分。哪怕是登陸完成後,我們完全可以繼續初始化工作,只要控制在一個合理的負荷就可以了。

在以後的時間,我希望我自己能夠做一個挑戰,目標是把linux的啓動時間縮小到5s以內。

參考測試環境:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章