如何使用Visual Studio构建内核映像?

Fra*_*ler 7 kernel osdev multiboot visual-studio

我想使用Visual C++为x86机器构建一个嵌入式内核.我有一些C和汇编代码文件要编译,我想以一种与GRUB等多重引导加载程序兼容的方式将它们连接在一起.

Ale*_*man 6

OSDev 在Visual Studio上有一个wiki条目,可能提供一些见解,尤其是关于PE内核主题的Kaushik Srenevasan 博客 条目的链接,这些内容旨在由基于多引导的引导加载程序(如GRUB)加载.

你应该知道一些大而广泛的事情:

  • 在多引导标头中,您需要使用AOUT kludge.
  • 您需要为链接器指定/ BASE:0x100000参数,因此最终的二进制代码基于引导加载程序将其放置的位置.
  • 你的内核的入口点(通常称为' kmain')需要有__declspec(noreturn)它,你需要做一个__asm { hlt }而不是返回.