最适合学习的教育操作系统?
为了从头开始编写自己的 x86 操作系统,最好研究什么操作系统?
What's the best operating system to study in order to write your own x86 operating system from scratch?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我认为 Minix 就是为了这个目的而创建的。
玩得开心!
I think Minix was created for pretty much that exact purpose.
Have fun!
一次性理解整个操作系统的源代码可能很困难。 教程位于osdev.org 有一些“基本”代码示例可以帮助您入门。
It might be difficult to comprehend the source for an entire OS all at once. The tutorials over at osdev.org have a few "bare bones" code samples to get you started.
我刚刚从头开始编写了我的 x86 内核版本! (对于我的操作系统类项目),那是我无法描述的经历。您可以在上面的链接中找到有价值的资源。
I just wrote my version of x86 kernel from scratch! (for my OS class project) and that was experience I couldn't probably describe. You can find valuable resources at above link.
对于我在大学的操作系统课程,我们使用了 Nachos 操作系统项目并实现了该项目。我做了 C++ 版本,但我认为也有一个 Java 版本。我记得它非常有趣并且学到了很多东西,尽管工作量很大。
For my OS class in college we used the Nachos OS Project and implemented that. I did the C++ version, however I think there is also a Java port of this as well. I remember it being very interesting and learning a great deal, even though it was a lot of work.
这完全取决于你希望操作系统如何运行,如果你想要一个微内核,你可能应该学习 Minix 3,或者如果你想要一个单片内核,当前的 Linux 内核是一个很好的起点(提示:查看 arch/ x86/boot,里面有一些非常有趣的代码)。
不过,我个人认为您应该阅读 Intel 和 AMD 手册,然后在 osdev.org 论坛和 wiki 上阅读一些内容。他们有大量代码可供学习,并且通常对新手有帮助。
It all depends on how you want your Operating System to function, if you want a microkernel you should probably study Minix 3, or if you want a monolithic kernel the current linux kernel is a good place to start from (HINT: look in arch/x86/boot, there is some very interesting code in there).
However I personally think that you should read through the Intel and AMD manuals, and then do a bit of reading on the osdev.org forums and wiki. They have plenty of code to study, and are generally helpful towards newbies.
老实说,您可能不应该从 x86 架构开始,甚至不应该从操作系统开始,而应该从 8 位入门套件开始,例如基本的 Fox11 开发套件。在大学里,我用汇编语言为 M68HC11 处理器(套件中的那个)编写了第一个(也是唯一的)操作系统。
如果您真的想从头开始构建自己的操作系统,那么您还有很长的路要走。
Honestly, you should probably not start with an x86 architecture, or even operating systems but maybe something like an 8-bit starter kit, like a basic Fox11 development kit. In college, I wrote my first (and only) OS in Assembly for an M68HC11 processor (the one in the kit).
If you really want to build your own OS from scratch, you've got a long road ahead of you.
我认为阅读许多不同操作系统源代码的最佳方法,绝对是 osdev 准系统教程、操作系统研究白皮书以及目标硬件上的文档。
我个人建议查看 l4-ka pistachio 内核,它是用非常好的 C++ 编写的。还有多个较小的项目绝对值得一试,例如 jimix 或 pedigree。
最好坚持使用 osdev 论坛和 wiki - 那里已经有很多信息已得到解答 - 请参阅 http://forum.osdev。 org 和 http://wiki.osdev.org
I think best way to read many different operating system sources, definitely osdev barebone tutorials, whitepapers on OS research and documentation on your target hardware.
I personally would recommend looking at l4-ka pistachio kernel, written in pretty darn good C++. There are also multiple smaller projects definitely worth checking out, like jimix or pedigree.
Best to stick around osdev forums and wiki - there is a lot of information there already answered - see http://forum.osdev.org and http://wiki.osdev.org
我不久前读过这篇文章。你可能会觉得很有趣。这个人当年写 MINIX 的目的就是为了教授操作系统概念。所以它可能是一个很好的、值得研究的简单操作系统。 http://www.cs.vu.nl/~ast/brown/
然而,正如 Martin 和 Cory 提到的,这是一个需要咀嚼的大块。
I read this article a while back. You might find it interesting. This guy wrote MINIX back in the day for the very purpose of teaching OS concepts. So it would probably be a good simple OS to study. http://www.cs.vu.nl/~ast/brown/
However, as Martin and Cory mentioned, it's a big chunk to chew.
研究过时的操作系统没有多大意义,这些操作系统几乎都是当前的操作系统,因为它们的寿命往往很长。看看一些新鲜的想法(尽管基于经过验证的真实想法),例如 Singularity
There is not much point in studying obsolete OS's which is pretty much all current OS's as they tend to have long lives. Have a look at some fresh ideas (although based on tried and true) like Singularity