私はLinuxカーネルコードを調べていて、どのファイルが64ビットをサポートするようにロングモードを設定する責任があるのか 、または起動するOSに32ビットまたは64ビットになることを伝えているのかを知ることに興味があります??
このモードを設定するのはブートローダ コードですか??
私はLinuxカーネルコードを調べていて、どのファイルが64ビットをサポートするようにロングモードを設定する責任があるのか 、または起動するOSに32ビットまたは64ビットになることを伝えているのかを知ることに興味があります??
このモードを設定するのはブートローダ コードですか??
ブートローダー(通常はGRUB)がLinuxカーネルを起動しています。このカーネルは、32ビットカーネル(32ビットプログラムのみを実行できます)または64ビットカーネルの場合があります。
64ビットLinuxカーネルは、execve(2) syscallsを介して実行できます。32ビットバイナリ実行可能プログラム(32ビットプロセス内)または64ビットプログラムのいずれかです。
したがって、ほとんどのカーネルは64ビットであり、32ビットまたは64ビットの両方のELF実行可能ファイルを実行できます。
Linuxカーネルは、起動方法にもよりますが、32ビットモードで起動すると思います(少なくともGRUBで起動した場合)。