Linuxカーネルがどのように起動するのかを詳細に解説する技術ドキュメント「Kernel booting process. Part 5」が公開され、今まで5回に渡って解説されてきた資料がついに最終回を迎えました。
今回のドキュメントPart 5は、前回64bitモードに移行した後の続きを解説するもの。カーネルコードへジャンプする前の最終段階の処理として、カーネル解凍の前準備、再配置、そして実際のカーネルの解凍処理に関する解説が行われています。
最後、最終的なカーネルの解凍処理が終わり、カーネルの再配置が終わった後、raxレジスターにカーネルのアドレスが格納されていて、以下の処理によりカーネル本体の処理が開始します!
jmp *%rax
長かったLinuxブートプロセスはここで終わり、ここからはいよいよLinuxカーネル本体の処理が動き始めるわけです。
今までのチャプターをまとめると以下の通りとなっています。
- From the bootloader to kernel
- First steps in the kernel setup code
- Video mode initialization and transition to protected mode
- Transition to 64-bit mode
- Kernel decompression
Hacker Newsではカーネルに関するディープで得難い情報を惜しみなく提供した作者0xAX氏に対し賞賛の声が上がっています。作者は英語が母国語じゃないそうで、おかげでかえって日本人にとっては読みやすい英語になっているかもしれません。Linuxハッカーを目指す方は解読に挑戦してみてはいかがでしょうか。