VisualC++を使用してx86マシン用の組み込みカーネルを構築したいと思います。コンパイルするCおよびアセンブリコードファイルがいくつかあり、GRUBなどのマルチブートブートローダーと互換性のある方法でそれらをすべてリンクしたいと思います。
3776 次
1 に答える
6
OSDev にはVisual Studio に関する wiki エントリがあり、特に、マルチブート ベースのブートローダー (GRUB など) によってロードされるように設計された PE カーネルに関するKaushik Srenevasan のブログ エントリへのリンクにより、洞察が得られる可能性があります。
知っておくべきいくつかの大きくて大まかなこと:
- マルチブート ヘッダーでは、AOUT kludge を使用する必要があります。
- /BASE:0x100000 引数をリンカーに指定する必要があるため、最終的なバイナリ コードは、ブートローダーが配置する場所に基づいています。
- カーネルのエントリ ポイント (通常は '
kmain
' と呼ばれます)が必要であり、返す代わりに__declspec(noreturn)
実行する必要があります。__asm { hlt }
于 2009-03-21T05:43:26.570 に答える