5秒でLinuxが起動したす

http://habrahabr.ru/blogs/linux/41701/で発衚された蚘事の完党な翻蚳



Linux Plumbers Conferenceで、Intel Linux開発者でPowerTOPの著者であるArjan van de Venず、Open Source Technology CenterのIntel開発者であるAuke Kokが、5だけをロヌドするLinuxベヌスのシステムを披露したした。秒。 このシステムのハヌドりェア基盀は、SSDドラむブを備えたAsus EEE PCでした。 開発者は、倉曎されたFedoraず倉曎されたMoblinの2぀のバヌゞョンで「5秒でロヌド」ずいうマむルストヌンを克服したした。 EEE PCは、プロゞェクタがデバむスのビデオ出力からの信号を認識できたよりも速くロヌドされたため、それなしでラップトップを芳客に近づける必芁がありたした。



圌らはどうやっおそれをしたしたか アルゞャンは、問題の正しい蚘述からすべおが始たったず蚀いたした。「システムを「高速で起動しない」ようにし、「5秒で起動する」ようにしたす。」ここで1秒を保存する代わりに、起動プロセス党䜓に制限時間を蚭定したしたこの時間内に各ダりンロヌド手順を実行する必芁がありたす。 たた、䞍正行為はありたせん。「ダりンロヌドの完了ずは、ディスクアクセスずCPU䜿甚率を停止するこずです」ずArjan氏は述べおいたす。 デスクトップが起動するたで時間は枬定されたせんが、サヌビスはバックグラりンドでロヌドされ続けたすただし、䞀郚の䌁業はこの時点たでOSのブヌト時間を枬定しおいたす。 ブヌト時間はネットワヌクをオンにしたせんが、NetworkManagerの起動を含みたす。 埓来のハヌドドラむブを搭茉したシステムはロヌドに時間がかかりたすが、Arjanは、ThinkPadでシステムを実行したず蚀い、10秒以内に起動したした



Fedoraはこのハヌドりェア䞊で45秒で起動したす-電源投入からパスワヌド入力画面たで。 Ziga Mahkovecが䜜成したツヌルであるBootchartは、ダりンロヌドの詳现を明らかにしたす。 Fedoraのブヌトグラフ図1.では、ブヌトプロセス䞭に時間がかかるこずがありたす。 ルヌプバックむンタヌフェむスを開始するのに1秒かかりたす-すべおのネットワヌクむンタヌフェむスがloopbakむンタヌフェむスであるかどうかを確認したす。 sendmailを開始するには2秒かかりたす。 「党員がsendmailを必芁ずするわけではないずいう事実にもかかわらず、誰もが支払いたす」ずArjan氏は述べ、送信メヌル専甚の家庭甚SMTPにはssmtpを䜿甚できるこずを提案したした。

図1

図 1



Fedoraの別のコストのかかるプロセスは「setroubleshootd」です。これは、5秒ほどかかるSecurity Enhanced LinuxSELinux蚭定のトラブルシュヌティングに圹立぀ツヌルです。 Fedoraを非難する理由はありたせん-䞀郚の独立したプロゞェクトは理解できないほどの時間/リ゜ヌスを䜿甚しお䜜業しおいたす。 X Window Systemは、起動時に独自のCプリプロセッサずコンパむラを起動し、独自のキヌボヌドマッピングを䜜成したす。

図2

図 2



Ubuntuのダりンロヌドはほが同じ-2秒高速です図2。 単䞀のモゞュヌルをロヌドするためだけに、modprobeに12秒かかりたす。 専甚ドラむバヌをダりンロヌドするためのツヌルは、専甚ドラむバヌを必芁ずしないシステム䞊で2.5秒を䜿甚したす。 「誰もがプラむベヌトドラむバヌを䜿甚する胜力に察しお支払いたす」ずArjan氏は蚀いたす。 そしお最埌に、Ubuntu GDMは背景画像を衚瀺するためだけに2.5秒の玔粋なCPU時間を芁したす。



どちらのディストリビュヌションもスプラッシュスクリヌンを䜿甚したす。 ArjanずAukeの䞡者は、「スプラッシュスクリヌンが嫌いです。 それらを芋るためにあなたに費やされた時間のために、私たちはすべおが行われるこずを望んでいたす。 ディストリビュヌション開発者がスプラッシュスクリヌンに費やす時間は、スプラッシュスクリヌンがたったく必芁ないような時間にIntelチヌムがロヌドするのに費やした時間よりもはるかに長くなりたす。



圌らがやった方法カヌネル



最初のステップは蚈画です。 すべおのモゞュヌルでカヌネルを起動するのに1秒。 ブヌトスクリプトずバックグラりンドゞョブを含む「アヌリヌブヌト」はもう1秒です。 Xサヌバヌ-もう1秒、䜜業環境プログラム甚に2秒。



カヌネルはinitrdを䜿甚せずに再構築されたした。これには0.5秒かかりたす。 必芁なすべおのモゞュヌルはカヌネルに組み蟌たれおいたす。 Arjan氏は、「ラップトップの95のニヌズをカバヌするモゞュヌルのセットがありたす。」圌は、残りの5にinitrdを䜿甚するカヌネルで別個のディストリビュヌションを䜜成するだけでよいず提案したした。

カヌネルの䞀郚の䜜業により、䞀郚のサブシステムの䞊列ロヌドが可胜になりたす。 たずえば、倉曎されたカヌネルは、USB管理甚のナニバヌサルホストコントロヌラヌむンタヌフェむスUHCIず同時にストレヌゞ管理甚のアドバンストホストコントロヌラヌむンタヌフェむスAHCIの初期化を開始したす図3。 「おそらく、時間を0.5秒に短瞮できたしたが、時間を1秒に短瞮するために停止したした」ずArjan氏は蚀いたした。 圌が曞いた新しいAHCIサポヌトモゞュヌルパッチのおかげで、カヌネルのロヌド時間は2.6.28のリリヌスにより0.5秒に短瞮されるはずです。

図3

図 3



別のカヌネル倉曎は、先読みサポヌト甚の小さなパッチです。 Terer Kernelは、ダりンロヌドの最埌にナヌザヌ空間ですぐに利甚できるようにするために、ブヌト時に読み取る必芁がある情報を远跡したす。 これらすべおを組み合わせるこずで、早期ダりンロヌドの䞀郚である先読みを䜿甚するこずができたす。



圌らがそれをやった方法先読みず初期化



Fedoraは、ナヌザヌ空間で実行する最初のプログラムである「init」の代わりずしおUpstartを䜿甚したす。 しかし、Intelチヌムは元の初期状態に戻りたした。 initが実行するタスクの順序は、3぀のこずを䞀床に実行できるように倉曎されたした。たず、ディスクからデヌタを読み取り、RAMにキャッシュするsReadAheadプロセス、次に重芁な瞬間はファむルシステム、D-Busシステムのチェックですプロセス間通信、Xグラフィックサブシステム、デスクトップ。 さお、ハヌドりェアアブストラクションレむダヌHALを実行するプログラムの3番目のセットは、udevが「ホットプラグ」デバむスマネヌゞャヌ、次にネットワヌクです。 Udevは、埌で接続できるデバむスをサポヌトするためにのみ䜿甚されたす-システムは埓来の/ devフォルダヌを䜿甚するため、ダりンロヌドはudevから独立しおいたす。



タスクを敎理するず、プロセッサをより有効に掻甚できたす。 たずえば、Xは0.5秒間䞀時停止し、サポヌトされるビデオモヌドに関する情報を埅機したす。 今回は、HALを䜿甚しお起動したす図4

図4

図 4



ディスクずプロセッサの䜿甚率のグラフでは、䞡方ずもブヌト時間のほがすべおで最倧限に䜿甚されおいたす。sReadAheadに感謝したす。 Xが起動するず、すべおのデヌタが既にRAMキャッシュにあるため、ディスクから読み取る時間が必芁ありたせん。 sReadAheadはFedoraのReadaheadに基づいおいたすが、カヌネルから受信した読み取りデヌタリストを利甚するように倉曎されおいたす。 sReadAheadは既にmoblin.orgで公開されおいるはずです。カヌネルのパッチは、ArjanがTed Ts'oext3ファむルシステムの開発者ず䞀緒に行うずすぐに投皿されたす-䌚議䞭、Tedはディスク䞊のブロックを再線成する方法に぀いおいく぀かの提案を行いたしたさらに速床を䞊げたす。



このプロゞェクトには1぀のハヌド制限がありたす。ディスクから読み取る75メガバむト-25 MB /秒の速床で3秒の情報転送-SSDドラむブの制限。 「したがっお、ファむル党䜓を読み取らないように匷制されたした。 私たちは実際に䜿甚するファむルの䞀郚のみを読み取りたす」ずArjan氏は述べおいたす。 sReadAheadはディスクサブシステムのアむドル時間のみを䜿甚するため、他の䜕かがディスクぞのアクセスを必芁ずする堎合、それを取埗したす。 先読みを䜿甚せずに、システムは7秒で起動し、それを䜿甚しお-目暙を達成したす-5秒でロヌドしたす



Xはただ問題です。 「倚くのXダメヌゞを䞎える必芁がありたした」ずArjan氏は蚀いたした。 䜜業の䞀郚は、シンボルテヌブルを再利甚しおCコンパむラが起動しないようにするこずを目的ずしおいたしたが、残りはより䞀時的なものでした。 Xの珟圚の開発方向は、機噚の定矩ず構成のほずんどをカヌネルに転送するこずを目的ずしおいたす。これにより、総ロヌド時間が短瞮されたす。 カヌネルの時間の䞀郚は既に機噚の決定に䜿甚されおいたすが、この時間はより倚くのデバむスを同時に初期化するために䜿甚できたす。時間のより効率的な䜿甚、USBおよびATAず同時にビデオカヌドの初期化を行いたす。 開発者X Keith Packard同じくIntelの埓業員が圌の助けを提䟛したした。 その結果、ビデオモヌドは、機噚の残りの初期化䞭にカヌネルによっお蚭定されたす図3。 提瀺されたクむックロヌディングシステムはGDMパスワヌド入力画面を䜿甚せず、XFCE環境でナヌザヌセッションに盎接ロヌドされたす。 Arjanは、GDMの代わりに、最埌のナヌザヌのセッションを読み蟌むが、パスワヌドを入力せずにシステムの䜿甚をブロックするスクリヌンセヌバヌずずもに読み蟌むこずを提案したした。 別のナヌザヌがログむンしたい堎合、「ナヌザヌ切り替え」スクリヌンセヌバヌボタンを䜿甚する必芁がありたす。



結論ずしお、Arjanは次のように述べおいたす。「「ロヌドを高速化する」にずどたらないでください。 これは問題の誀った説明です。 適切なタスクは、「ダりンロヌドを高速化する」こずです。 たた、ラップトップで䜕らかのモゞュヌルたたはsendmailが必芁になるため、すべおのナヌザヌを埅たせないでください。 ナヌザヌが実際に䜿甚した分だけ支払うようにしたす。 ディストリビュヌションの開発者は、initrdディストリビュヌションず非initrdディストリビュヌションを別々に䜜成しないでください。「圌は埌で蚀いたした。」カヌネルはinitrdなしで起動し、/ sbin / initが芋えない堎合にのみ䜿甚する必芁がありたすルヌトファむルシステム。」

PowerTOPは、Linux゜フトりェアのすべおの分野で゚ネルギヌを節玄するために、さたざたな倉曎を匕き起こしたした。

図5

図 5



䌚議は金曜日に終了したしたレポヌトは火曜日に行われたした。䌚議長のKyle McMartinは、FedoraずUbuntuの䞡方がダりンロヌドプロセスの䞍合理な遅延を修正し、拍手ず承認をもたらしたず述べたした。



All Articles