我有兴趣学习如何制作自己的操作系统。
我知道这不是一夜之间发生的事情。
我有几个问题:
答案 0 :(得分:6)
我推荐Andrew S. Tanenbaum,Operating Systems: Design and Implementation
良好的开端是帮助改进已完成的操作系统(如果你喜欢C#,就像Cosmos一样。)
<强> UPD 强>
一些有用的资源:
答案 1 :(得分:3)
首先了解操作系统的基础知识...阅读高尔文(最好的书),然后决定如何进行开发。我的同事正在UBUNTU开发OS开发。
答案 2 :(得分:2)
取决于你有多棒。可能最好的起点是做自己的Linux发行版并在此基础上进行构建。 c#不是构建操作系统的最佳语言。代码项目有一个实现,但是,最好的起点是程序集,然后构建它。 Windows是c / c ++,因为我认为大多数操作系统都在组装部件之上。
答案 3 :(得分:2)
是否可以在C#中编写操作系统?,
http://www.silveos.com/ 一个Silverlight操作系统,它在WP7上运行良好
如果你想要一个原生操作系统,那么“完全不可能”完全脱离C#,因为C#在虚拟机上运行,而虚拟机在OS XD上运行。
制作操作系统的最佳方法是针对低范围嵌入式系统,因为您不必担心虚拟内存和其他复杂的东西。如果你想这样,请查看https://github.com/DVDPT/Micro-Operating-System,我自己的操作系统是为ARM和AVR嵌入式系统制作的。
最后阅读操作系统概念并研究TNKernel,FreeRTOS,eCos等微操作系统。然后跳转到主要操作系统,如linux或Windows。
答案 4 :(得分:1)
Cosmos,代表C ++ / C#开源管理操作系统,允许您构建和编译自己的操作系统供个人使用。
http://www.codeproject.com/KB/cs/CosmosMS5.aspx
它允许您构建可以使用虚拟机引导的命令行。之后,您可以开始使用Gnome或KDE为操作系统构建UI。
答案 5 :(得分:1)
简短回答:不。
答案很长:不完全。
你必须在汇编中编写某些部分,你也遇到了CLR的问题,但是可以通过使用.NET Micro Framework来解决这个问题。此外,在某些方面,这已由微软在其Singularity OS中完成。如果您想进入操作系统开发,我建议您在OSDev Wiki阅读一些教程或查看Bona Fide OS Developer。