使用 C++ 创建我自己的操作系统的方法是什么?我已经创建了引导加载程序(使用 nasm、qemu),但我不知道如何向该引导加载程序添加内核。

没有正确的解决方案

其他提示

小心,C++ 对于操作系统内核来说是相当重量级的。

  • 有些服务(例如异常)必须通过运行时库来支持。
  • 在添加堆之前,它不会感觉像 C++。
  • 内核对于对象的分配位置非常敏感;C++ 中通常使用的单堆模型并不适合。
  • 将 API 与数据结构耦合是一个坏主意。BeOS 在这方面遇到了问题。您需要向用户隐藏内部结构的大小,这意味着当 API 是成员函数时要跳过一些麻烦(Pimpl、私有构造函数、虚拟函数)。

听起来你已经比大多数人走得更远了,所以继续问问题,你可能会得到一个不错的结果!:vD

另外要补充,这本书的Tanenbaum,他解释MINIX的实现细节。

您可以考虑在看 MINIX 这是小的操作系统的x86系统。它最初被设计为一个教学项目,并已演变成东西的意图是在现实世界中是有用的。

我不熟悉的细节,但我所知的 BeOS的 被用C ++编写。来源应该是freeley可同时作为文档。

可以看看MINIX 3的源代码。这是一个非常简单的操作系统,以理解的目的是如何创建的作业系统。

您也可以学习关于操作系统的所有的Tanenbaum的书。他们都是很完整,我记得一本书具有连接MINIX的完整源代码和注释

对于 C++ 操作系统,您可能需要查看 新操作系统 或者 Unix精简版.

一个可用的操作系统可以在 L4 的顶部开发的,甚至通过与其他课程沿着一个学期一个学生(但所有的驱动程序问题已经解决)。如果找到这是一个伟大的冒险,而L4微内核也种先进。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top