2012-01-10 89 views
3

我有兴趣学习如何创建自己的操作系统。推荐学习创建您自己的操作系统?

我知道这不是一夜之间发生的事情。

我有几个问题:

  • 我想熟悉这样做有什么样的知识,什么概念?
  • 是否有关于此主题的推荐阅读?
  • 我最喜欢的语言是C#,是否可以用这种语言编写操作系统?
+0

我推荐从这个问题开始:创建新的os的原因是什么? – 4ndrew 2012-01-10 16:18:44

+9

我的理由是学习。 – Rakso 2012-01-10 16:21:12

+1

Linux或BSD将是一个很好的开始,并且有大量的东西可以插入。另一个选择是像PIC微控制器那样的一些选择。请注意,你需要真正在硬件上。因此,另一个开始的选择是编写驱动程序并将其添加到现有的操作系​​统。哦,快乐的学习,即使你什么都没有成功,你会学到很多东西。 – 2012-01-10 16:38:00

回答

6

我建议安德鲁·斯图尔特·塔能鲍姆,Operating Systems: Design and Implementation

良好的开端是有利于提高完成操作系统(如Cosmos如果你喜欢C#)。

UPD

一些有用的资源:

+1

+新闻组:[alt.os.development](http://groups.google.com/group/alt.os.development/topics?gvc=2)和[comp.lang.asm.x86](http://groups.google.com/group/comp.lang.asm.x86/topics?gvc=2) – 2012-01-11 20:24:17

3

首先通过操作系统的基本知识...阅读高尔文(最好的书),然后决定你想如何接近发展。我的同事正在UBUNTU开发操作系统。

2

取决于你有多棒。可能最好的开始是通过做你自己的Linux发行版,并在此基础上发展。 c#不是构建操作系统的最佳语言。在代码项目上有一个实现,但是,最好的开始是组装,然后在此基础上进行构建。 Windows是c/C++,因为我认为大部分操作系统都在汇编部分之上。

+0

Linux也是用C/C++编写的吗? – Rakso 2012-01-10 16:22:51

+0

这样想,可以依赖发行版 – 2012-01-10 16:23:15

+1

@TheCompBoy形式上,Linux不是一个操作系统。它是OS的一个内核。看看编程语言的图表https://github.com/torvalds/linux/graphs/languages – 4ndrew 2012-01-10 16:27:51

2

是否可以在C#中编写操作系统?,

http://www.silveos.com/ Silverlight的操作系统,它运行在WP7

不错

如果你想有一个本地OS,这是“不可能的”,使完全出于C#,因为C#运行在一个虚拟机,以及VM运行在OS XD上。

制作操作系统的最佳方法是锁定低范围嵌入式系统,因为您不必担心虚拟内存和其他复杂的东西。如果你想这样去检查https://github.com/DVDPT/Micro-Operating-System,我自己的操作系统为ARM和AVR嵌入式系统。

最后阅读操作系统概念和研究像TNKernel,FreeRTOS,eCos这样的小型操作系统。然后跳转到主要的操作系统,如Linux或Windows。

+2

Silveos并不是一个真正的操作系统。 – 2012-01-11 20:21:09

1

简答题:

长答案:不完全。

你必须在汇编中编写某些部分,你也会遇到CLR的问题,但这可以通过使用.NET Micro Framework来克服。而且,对于某些部分,这已由Microsoft在其Singularity OS中完成。如果你想进入操作系统开发,我建议阅读一些教程在OSDev Wiki或检查Bona Fide OS Developer