Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
OSが実行するにはacファイルが必要であることがわかっています。しかし、カーネルを起動すると、最初に解凍されますが、解凍には ac 関数が使用されます。今のところ、システムには OS がありません。それでは、このCコードはどのように実行されますか?
BootmgrとVmlinuxに関するWikipediaの記事(およびinitrd)は、プロセスがどのように機能するかをざっと説明する必要があります。
基本的に、BIOSがディスクのMBRからブートローダー(GRUB)をロードすると、GRUBは小さなramdisk(initrd)をメモリにロードします。メモリはすでに非常に軽量化されたオペレーティングシステムであり、必要な最も基本的なプロセスを処理できます。実際のOSを起動します。
C コードを実行するために OS を必要とする必要はありません。
明確にさせてください。
プログラムがGCCによってコンパイルされると、アセンブラーへの入力として機能するオブジェクトコードが生成され、アセンブラーはそのオブジェクトコードをマシンで直接実行できるバイナリコードに変換します。
しかし、GCC がバイナリ コードを直接生成する場合、アセンブラや OS は必要ありません。したがって、バイナリはハードウェア命令ごとに直接実行できます。