【问题标题】:Writing an operating system in C++ [closed]用 C++ 编写操作系统 [关闭]
【发布时间】:2016-10-03 08:18:23
【问题描述】:

什么是使用 c++ 创建我自己的操作系统的方法。我已经创建了引导加载程序(使用 nasm、qemu),但我不知道将内核添加到这个引导加载程序。

【问题讨论】:

  • 我认为这实际上是一个很好的建设性问题。
  • 也许它的性质很广泛,但它确实给了我很好的探索提示
  • 没有愚蠢的问题,只有愚蠢的人。

标签: c++


【解决方案1】:

这是您最终需要的ton of information,可怕的操作系统编程常见问题解答。

【讨论】:

    【解决方案2】:

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

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

    听起来你已经比大多数人走得更远了,所以继续提问,你最终可能会找到不错的地方! :vD

    【讨论】:

      【解决方案3】:

      另外补充一下,This book by Tanenbaum,他解释了 minix 的实现细节。

      【讨论】:

      • +1:我有那本书,并且打算提出相同的建议。即使您最终没有使用与 Tanenbaum 相同的概念,至少您会知道这些概念是什么!
      • 好书……读起来很愉快;)
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我不熟悉细节,但据我所知 BeOS 是用 C++ 编写的。资源和文档应该是免费可用的。

        【讨论】:

        • 对于内核,您可以查看newos.org(写了一个前Be员工haiku-os.org用于他们的Be克隆)。
        【解决方案6】:

        【讨论】:

        【解决方案7】:

        对于 C++ 操作系统,您可能需要查看 NewOSUnixLite

        【讨论】:

          【解决方案8】:

          您可以查看 minix 3 源代码。这是一个非常简单的操作系统,旨在了解操作系统的工作原理。

          你也可以学习所有关于操作系统的 tanenbaum 书。它们都非常完整,我记得有一本书附有完整的 minix 源并发表了评论

          【讨论】:

            【解决方案9】:

            可以在L4 的基础上开发一个可用的操作系统,即使是一个学生在一个学期内与其他课程一起开发(但所有驱动程序问题已经解决)。如果发现这是一次伟大的冒险,那么 L4 微内核也有点先进。

            【讨论】:

              猜你喜欢
              • 2012-10-07
              • 1970-01-01
              • 1970-01-01
              • 2011-11-19
              • 2013-08-18
              • 2019-07-04
              • 2011-10-31
              • 1970-01-01
              • 2022-10-01
              相关资源
              最近更新 更多