题
使用 C++ 创建我自己的操作系统的方法是什么?我已经创建了引导加载程序(使用 nasm、qemu),但我不知道如何向该引导加载程序添加内核。
没有正确的解决方案
其他提示
下面的信息的吨,你最终会需要,可怕的OS编程的常见问题。
小心,C++ 对于操作系统内核来说是相当重量级的。
- 有些服务(例如异常)必须通过运行时库来支持。
- 在添加堆之前,它不会感觉像 C++。
- 内核对于对象的分配位置非常敏感;C++ 中通常使用的单堆模型并不适合。
- 将 API 与数据结构耦合是一个坏主意。BeOS 在这方面遇到了问题。您需要向用户隐藏内部结构的大小,这意味着当 API 是成员函数时要跳过一些麻烦(Pimpl、私有构造函数、虚拟函数)。
听起来你已经比大多数人走得更远了,所以继续问问题,你可能会得到一个不错的结果!:vD
另外要补充,这本书的Tanenbaum,他解释MINIX的实现细节。
您可以考虑在看 MINIX 这是小的操作系统的x86系统。它最初被设计为一个教学项目,并已演变成东西的意图是在现实世界中是有用的。
我不熟悉的细节,但我所知的 BeOS的 强>被用C ++编写。来源应该是freeley可同时作为文档。
可以看看MINIX 3的源代码。这是一个非常简单的操作系统,以理解的目的是如何创建的作业系统。
您也可以学习关于操作系统的所有的Tanenbaum的书。他们都是很完整,我记得一本书具有连接MINIX的完整源代码和注释
一个可用的操作系统可以在 L4 的顶部开发的,甚至通过与其他课程沿着一个学期一个学生(但所有的驱动程序问题已经解决)。如果找到这是一个伟大的冒险,而L4微内核也种先进。
不隶属于 StackOverflow