我希望学习如何制作自己的操作系统。
我知道这不是一夜之间可以完成的。
我有几个问题:
- 我需要了解哪些知识和概念才能做到这一点?
- 是否有任何关于这个主题的推荐读物?
- 我的最喜爱的语言是C#,是否可能在这种语言中编写操作系统?
我希望学习如何制作自己的操作系统。
我知道这不是一夜之间可以完成的。
我有几个问题:
我推荐Andrew S. Tanenbaum的 操作系统:设计与实现。
如果你喜欢C#,那么改进已完成的操作系统(如Cosmos)是一个好的开始。
更新
一些有用的资源:
首先,学习操作系统的基础知识...建议阅读Galvin(IT领域最好的书籍),然后决定您想如何进行开发。我的同事正在UBUNTU上进行操作系统开发。
取决于您有多厉害。可能最好的起点是创建自己的Linux发行版并在此基础上进行构建。C#不是构建操作系统的最佳语言。Code Project上有一个实现,但最好的起点是汇编语言,然后在此基础上进行构建。Windows是使用C/C++,我认为大多数操作系统都是在汇编部分之上构建的。
简短回答:不行。
详细回答:不完全是这样。
你必须使用汇编语言编写某些部分,同时你可能会遇到CLR的问题,但这可以通过使用.NET微框架来克服。此外,微软在他们的Singularity OS中已经完成了部分工作。如果你想进入操作系统开发领域,我建议阅读OSDev Wiki上的一些教程或查看Bona Fide OS Developer。
Cosmos是C++/C#开源托管操作系统的缩写,它允许您构建和编译自己的操作系统以供个人使用。
http://www.codeproject.com/KB/cs/CosmosMS5.aspx
它允许您构建一个可在虚拟机中引导的命令行。之后,您可以开始使用Gnome或KDE为操作系统构建用户界面。