x86_64環境のブート処理でプロテクトモードからロングモードに移行しているのがhead_64.Sなのでこの辺をめも。 見ているカーネルのバージョンはv3.9です。 ファイル名で気をつけないといけないのはx86_64ではhead_64.Sは2個あるということ。 arch/x86/kernel/head_64.S arch/x86/boot/compressed/head_64.S 今回見るのはstartup_32 -> startup_64 -> x86_64_start_kernel()という流れの部分です。 ブートローダー依存になるけど、ブートローダーが64bitカーネルを直接起動できる場合(UEFI等かな)はstartup_32の処理は呼ばれずにstartup_64が呼ばれるとコメントに書かれています。 arch/x86/boot/compressed/head_64のstartup