我想学习操作系统设计。我想知道我是否应该在此过程中处理 Minix 或 GNU/Linux?我喜欢书籍,所以我会主要关注一本书,但也欢迎视频资源(可能是录像讲座)。
我已经正式学习过 C 和 C#,并且可以在其中编写中小型程序。我对数据结构也有非常基本的了解。
如果我走 Minix 路线,我应该处理版本 2(更简单??)还是版本 3?
我想学习操作系统设计。我想知道我是否应该在此过程中处理 Minix 或 GNU/Linux?我喜欢书籍,所以我会主要关注一本书,但也欢迎视频资源(可能是录像讲座)。
我已经正式学习过 C 和 C#,并且可以在其中编写中小型程序。我对数据结构也有非常基本的了解。
如果我走 Minix 路线,我应该处理版本 2(更简单??)还是版本 3?
我会选择 Minix 路线,只是因为我的个人经验。Minix 非常简单明了,并且是从教育的角度编写的。另一方面,Linux 内核已经存在了很长时间,因此进行了大量优化。我不认为这是一个好的开始。
我不会太担心哪个 minix 版本。概念保持不变。使用较新的版本,您可以在其上运行 X,这可能会有所帮助,但同时会增加更多复杂性。只需选择您找到一本好书的版本即可。
操作系统:设计和实现涵盖 Minix,所以这可能是 Minix 的一个很好的论据。
自己没有接触过这个话题,Linux 相当大(上次我检查了 1000 万行+,当然你不必研究所有这些),并且 Minix 使用带有单独模块的微内核架构,因此可能更容易抓牢。
我会选择Minix。
(另一方面,O'Reilly 有许多关于 Linux 的书;但我想我还是会选择 Minix,以那本 phat 书作为参考)
在我做的实习中,我不得不更改 Minix 中的硬盘驱动器,以便它使用电梯算法而不是先到先服务来处理请求。我应该在 Minix 2 中完成,但我想在 Minix 3 中完成,因为我从不喜欢使用旧技术。
在我研究的 2 个月里,最令人沮丧的是 Minix 3 在 I5 处理器、4GB RAM 运行 Windows 7 的笔记本电脑上花了大约 20 分钟在 VMWare 中编译。最后,在 2 个月后,我放弃了在 Minix 3 上并切换到 Minix 2,它在大约 20 秒内编译。
现在我并不是说我编译系统的方式不会有什么问题,但我真的很努力地加快速度,但没有成功。
顺便说一句,当时我刚刚获得计算机科学硕士学位,并且有 5 年的 C 编程密集经验(只是为了让你不认为我是一个自学成才的程序员,只是决定通过重新设计操作系统来进行编程:D)
编辑:最后,我建议你尝试编译 Minix 3 看看它对你有什么好处。如果你有更多的运气,肯定会选择这个,因为它有更现代的操作系统概念,另一方面,如果你是一个完全的初学者,你可能会从 Minix 2 中学到很多东西。我做到了。
正如其他发帖人所说,从 Linux 开始可能会很困难,因为它现在如此庞大和复杂,以至于进入门槛已经飙升。但是,如果您确实选择了这条路线,我建议您从一个小型子系统开始并专注于它。