我有一些关于编写操作系统的非常具体的问题,希望能得到解答:
如果我使用 GRUB 作为引导加载程序,我需要编写多少汇编代码来加载最小的 C 内核?
我的内核将用 C 编写,它将加载一个我用 C++ 编写的命令行 shell,它不会调用任何 API 仅调用标准库,我是否需要重写整个 C++ 标准库以这样做?
我可以用 C++ 编写视频、键盘和软盘驱动程序吗?
GCC 和 G++ 是否输出 16 位实模式代码?
我可以在 Windows 上使用 Mingw 编写这一切,还是必须在 Linux 上编写?
我是否需要处于实模式才能直接写入显存?
如果有人能回答我的问题,我将不胜感激
1:您应该只需要少量程序集来处理引导过程和加载 C 代码。我认为不应超过 20-30 行。
2-4:我还没有真正将 C++ 用于 OS 开发,但我想我记得读过它需要做更多的工作才能让它在某个地方运行。抱歉,我无法提供更多帮助。
5:您“可以”使用 MinGW 做到这一点,但根据我的经验,它通常会使事情变得复杂。我永远无法真正让 Windows 环境正常工作,但我也毫不费力地放弃了。
编辑:这里是一些示例程序集的链接。这就是我曾经不得不使用的:
http://www.jamesmolloy.co.uk/tutorial_html/2.-Genesis.html
如果您对此类内容完全感兴趣,该站点的其余部分也是一个很好的教程。