【问题标题】:Resources to develop an operating system [closed]开发操作系统的资源[关闭]
【发布时间】:2010-09-20 05:29:28
【问题描述】:

我打算写一个操作系统,但我对操作系统不是很了解。有什么好的资源或书籍可供我学习吗?你有什么建议?

【问题讨论】:

    标签: operating-system osdev


    【解决方案1】:

    我们在我就读的大学使用了 Andrew Tannenbaum 的 Modern Operating Systems。我强烈推荐它,因为它清楚地解释了您将遇到的许多设计决策中固有的权衡。这本书比 Minix 的书更“公平和平衡”。

    我也推荐这本书,因为尽管他有net-famous flame war with Linus Torvalds,但他的偏见很少在书中体现出来。此外,他是一个相当不错的作家,而且这本书实际上很有趣。

    【讨论】:

    • 我正在阅读这本书(第二版),我们说话时从头到尾阅读,虽然它是一本巨大的书,但它的详细程度令人难以置信。这本书和 Silberschatz 和 Galvin 的操作系统概念是学习操作系统知识的两本最佳书籍。
    【解决方案2】:

    Operating Systems Implementation Prentice Software

    本书由 Minix 背后的主要人物 Tanenbaum 撰写,这是 Linux 的基础。它为内存管理、文件系统、进程等基本操作系统概念提供了很好的概述。本书中的概念与 Minix 操作系统的示例密切相关,这是一件好事。

    我认为你应该从这样的事情开始。

    【讨论】:

    • 我只想指出,Linux 并不是真正“基于”Minix,它旨在替代它。 Linux 有一个单体内核,而 Minix 是基于微内核设计的。
    【解决方案3】:
    【解决方案4】:

    Operating System Concepts 是我们在大学使用的书。这很丑陋,但里面的信息很好地解释了(从基本的内存管理,到操作系统如何决定执行什么或如何避免死锁)。很宽。

    【讨论】:

    • 丑吗?但是封面是漂亮!我喜欢那本书,因为它在我的书架上看起来很漂亮。不过,我真的不记得里面是什么样子了。
    • 是的,这是经典。它通常被称为恐龙书。实际上,我现在就在沙发上。这是一本好书,虽然是介绍性的。通常是本科生课本。
    • 我一直听说它被称为 The Dino Book,我同意这是一本本科教科书。
    • 我尝试点击查看内部,但没有成功:(
    【解决方案5】:

    如果您也想开始编写自己的操作系统,Os dev 网站提供了丰富的信息,

    【讨论】:

      【解决方案6】:
      【解决方案7】:

      看看HelenOS,这是一个从零开始的基于微内核的操作系统,旨在成为一个完全现代的操作系统。 Disclamer,我是贡献者,我正在从头开始开发它的外壳。

      HelenOS 已被移植到 ia32/64、SPARC、ARM 等,它的设计非常好并且易​​于阅读。它仍处于起步阶段,但展示了一种可能的设计,该设计真正利用了微内核设计并解决了微内核实现(例如 IPC)中的许多问题。

      它还包括自动设置交叉编译所需的适当工具链的脚本。它非常容易构建,并且在大多数模拟器(即 QEMU)或裸机中运行良好。

      我还会研究 L4、Minix3 和 GNU HURD(基于 Mach),后者是尝试利用微内核时设计缺陷的例证。

      如果你想走单体路线,那就学习 Linux。

      【讨论】:

        【解决方案8】:

        我强烈建议您查看MIT Operating Systems class。它有很多有用的参考资料,还有一堆你可以玩的实验室练习(包括自动评分脚本,所以你不必成为麻省理工学院的学生也可以这样做)。

        【讨论】:

          【解决方案9】:

          textbook http://ecx.images-amazon.com/images/I/411E3CQQYZL._SS500_.jpg

          我在大学时使用过操作系统和中间件:支持受控交互。它可能是这方面最好的教科书之一。

          【讨论】:

            【解决方案10】:
            【解决方案11】:

            Richard A. Burgess 开发您自己的 32 位操作系统。详细介绍了引导加载程序、设置那些奇怪的内存和进程管理寄存器等。这是 1996 年的一篇很棒的读物,当时我想我会尝试从头开始编写一个简单的操作系统,但可能会过时现在,只处理前几代奔腾级 CPU。

            【讨论】:

            • 从头开始编写操作系统取得了多大的进展?
            【解决方案12】:

            如果我没记错的话,Powerup to Bash Prompt HOWTO 包含很多看起来对这个有用的信息。旧版本的 Linux From Scratch HOWTO 也是如此,但在最近的版本中已被删除。

            您还可以在Understanding the Linux Kernel 中找到很多有用的信息。

            【讨论】:

              【解决方案13】:

              我建议研究嵌入式操作系统并构建嵌入式操作系统。它将处理核心概念,而无需现代台式机 CPU 的开销。

              去年春天我写了一个多任务嵌入式操作系统作为最终项目,它比你想象的要容易。

              【讨论】:

              • 您能为此推荐任何资源吗?谢谢。
              • @Sohaib - 不再。这个答案已经快 12 岁了。
              • 你现在在做什么@Paul Nathan?你在从事计算机架构方面的工作吗?
              【解决方案14】:

              您应该研究一下 MINIX 3。我相信,这是一个用不到 10,000 行代码编写的操作系统。借助 Tanenbaum 的一本书,您可以很好地了解操作系统的工作原理,并了解 MINIX 3 的工作原理。您可以直接使用 Linux,但我认为这是一项有用的任务,并且确实可以帮助您了解构建一个正常工作的操作系统实际上不需要那么多行。

              http://www.minix3.org/

              【讨论】:

              • 只是把它放在那里......但我认为MINIX 1
              【解决方案15】:

              除了书籍,还有很多学习操作系统开发的网站
              BrokenThorn Entertainment在这个网站上,从基础学习操作系统开发

              【讨论】:

                猜你喜欢
                • 2010-09-06
                • 2011-12-10
                • 2011-09-18
                • 2011-10-20
                • 2010-12-04
                • 1970-01-01
                • 2011-05-12
                • 2012-07-11
                • 2010-09-20
                相关资源
                最近更新 更多