0

私はLinuxカーネルコードを調べていて、どのファイルが64ビットをサポートするようにロングモードを設定する責任があるのか​​ 、または起動するOSに32ビットまたは64ビットになることを伝えているのかを知ることに興味があります??

このモードを設定するのはブートローダ コードですか??

4

1 に答える 1

0

ブートローダー(通常はGRUB)がLinuxカーネルを起動しています。このカーネルは、32ビットカーネル(32ビットプログラムのみを実行できます)または64ビットカーネルの場合があります。

64ビットLinuxカーネルは、execve(2) syscallsを介して実行できます。32ビットバイナリ実行可能プログラム(32ビットプロセス内)または64ビットプログラムのいずれかです。

したがって、ほとんどのカーネルは64ビットであり、32ビットまたは64ビットの両方のELF実行可能ファイルを実行できます。

Linuxカーネルは、起動方法にもよりますが、32ビットモードで起動すると思います(少なくともGRUBで起動した場合)。

于 2013-02-26T06:32:35.240 に答える