19

为了从头开始编写自己的 x86 操作系统,最好学习什么操作系统?

4

9 回答 9

9

可能很难同时理解整个操作系统的来源。osdev.org上的教程有一些“基本”代码示例可以帮助您入门。

于 2010-03-27T01:24:35.357 回答
9

我认为Minix就是为了这个目的而创建的。

玩得开心!

于 2010-03-27T01:39:01.233 回答
3

我刚刚从头开始编写了我的 x86 内核版本!(对于我的操作系统类项目)那是我可能无法描述的经历。您可以在上面的链接中找到有价值的资源。

于 2010-05-17T05:19:44.960 回答
2

这完全取决于您希望您的操作系统如何运行,如果您想要一个微内核,您可能应该学习 Minix 3,或者如果您想要一个单片内核,当前的 linux 内核是一个很好的起点(提示:查看 arch/ x86/boot,里面有一些非常有趣的代码)。不过我个人认为你应该通读 Intel 和 AMD 手册,然后在 osdev.org 论坛和 wiki 上做一些阅读。他们有大量的代码要学习,通常对新手很有帮助。

于 2010-03-27T17:29:53.723 回答
2

对于我在大学的操作系统课,我们使用了Nachos OS 项目并实现了它。我做了 C++ 版本,但我认为也有一个 Java 端口。我记得这很有趣,学到了很多东西,尽管工作量很大。

于 2010-03-27T01:34:24.787 回答
1

老实说,您可能不应该从 x86 架构甚至操作系统开始,而应该从 8 位入门工具包之类的东西开始,比如基本的Fox11 开发工具包。在大学里,我为 M68HC11 处理器(套件中的那个)编写了我的第一个(也是唯一一个)汇编操作系统。

如果您真的想从头开始构建自己的操作系统,那么您还有很长的路要走。

于 2010-03-27T01:08:16.947 回答
1

我认为阅读许多不同操作系统源代码的最佳方式,绝对是 osdev 准系统教程、操作系统研究白皮书和目标硬件文档。

我个人建议看一下 l4-ka pistachio 内核,它是用相当不错的 C++ 编写的。还有多个较小的项目绝对值得一试,例如 jimix 或 pedigree。

最好留在 osdev 论坛和 wiki - 那里已经回答了很多信息 - 请参阅http://forum.osdev.orghttp://wiki.osdev.org

于 2010-05-15T11:19:17.663 回答
0

不久前我读过这篇文章。你可能会觉得很有趣。这个人当年写MINIX的目的就是为了教授操作系统的概念。所以它可能是一个很好的简单操作系统来学习。http://www.cs.vu.nl/~ast/brown/

然而,正如 Martin 和 Cory 所提到的,这是一大块要咀嚼的东西。

于 2010-03-27T01:39:01.340 回答
0

研究过时的操作系统没有多大意义,因为它们的寿命往往很长,几乎是所有当前的操作系统。看看一些新鲜的想法(尽管基于久经考验的真实),比如Singularity

于 2010-03-27T02:02:45.473 回答