我对操作系统编程非常感兴趣。我想从空白的文件中编写自己的内核。我非常了解C语言并且有点汇编。我打算购买Andrew tanenbaum的书:“操作系统设计和实现“并开始阅读它。 每个人都告诉我,这只是浪费时间,如果我放弃编写自己内核的想法会很好。但我只是想知道幕后的一切是如何运作的,学习编写自己的内核只是出于教育目的,我没有任何错觉,我的操作系统将是巨大的和可用的。
有没有办法了解操作系统如何在幕后工作而不是购买AT OS设计和实现“?是否足以构建我自己的Linux发行版?,学习Linux内核开发?或者学习Windows Internals(Mark Russonovich的优秀书籍) )?以了解一切如何运作。
事先谢谢你。
答案 0 :(得分:3)
我认为你最好的机会是学习当前的Linux内核。它已经很成熟并且被广泛使用。它是免费提供的,为什么不呢?编写自己的内核将花费大量时间,你会偶然发现其他人已经想到的东西。虽然创建自己的内核将是一个非常有趣的项目,但不要重新发明轮子。 ; - )
答案 1 :(得分:0)
当然,研究Linux等现有的开源内核是有帮助的,但如果没有某些上下文(即Tanenbaum书或本地/在线大学的OS课程),您可能会完全迷失方向。我建议观看有关操作系统如何工作的讲座,与教科书一起阅读,然后 开始查看源代码。
当您开始从现有内核中读取代码时,请尝试查找业余爱好/学习操作系统。大多数具有良好操作系统课程的大学都有他们教授的内核(有时他们已经删除了一些内核,学生必须将其作为家庭作业练习),或者你可以随时使用Minix。如果您使用Minix来了解操作系统主题,那么使用较旧版本(如Minix2)可能是个好主意 - 我读到新版本更“生产就绪”/“初学者无法访问”。无论如何,请确保在代码之前阅读文档!