推荐了解如何创建自己的操作系统吗?涉及IT技术并且是一个问题标题。

3

我希望学习如何制作自己的操作系统。

我知道这不是一夜之间可以完成的。

我有几个问题:

  • 我需要了解哪些知识和概念才能做到这一点?
  • 是否有任何关于这个主题的推荐读物?
  • 我的最喜爱的语言是C#,是否可能在这种语言中编写操作系统?

我建议从这个问题开始:为什么要创建新的操作系统? - 4ndrew
9
我的理由是为了学习。 - User
1
Linux或BSD是一个不错的开始,有很多现成的东西可以插入。另一个选择可能是像PIC微控制器这样的东西。请注意,您需要真正了解硬件。因此,另一个开始的选项是编写驱动程序并将其添加到现有操作系统中。哦,祝你学习愉快,即使你没有取得任何成就,你也会学到很多。 - Tony Hopkinson
我在哪里可以获取Linux源代码? - User
@TheCompBoy 你可以在 github 或者 kernel.org 上检出 Linux 源代码。 - 4ndrew
@TheCompBoy 我更新了我的帖子(添加了有用的资源) - 4ndrew
6个回答

6

1
- Alexey Frunze

3

首先,学习操作系统的基础知识...建议阅读Galvin(IT领域最好的书籍),然后决定您想如何进行开发。我的同事正在UBUNTU上进行操作系统开发。


2

取决于您有多厉害。可能最好的起点是创建自己的Linux发行版并在此基础上进行构建。C#不是构建操作系统的最佳语言。Code Project上有一个实现,但最好的起点是汇编语言,然后在此基础上进行构建。Windows是使用C/C++,我认为大多数操作系统都是在汇编部分之上构建的。


Linux 也是用 C/C++ 编写的,对吗? - User
可能因为发行版的不同而有所不同。 - Daniel Casserly
1
@TheCompBoy 在正式的说法中,Linux 不是一个操作系统。它是一个操作系统内核。看一下编程语言的图表 https://github.com/torvalds/linux/graphs/languages - 4ndrew
我在哪里可以获取Linux的源代码? - User
1
https://github.com/mirrors/linux-2.6 - Daniel Casserly

2
“是否可能用C#编写操作系统?” http://www.silveos.com/ 这是一个Silverlight操作系统,它在WP7上运行良好。
如果您想要本机操作系统,那么完全使用C#制作是“不可能的”,因为C#运行在虚拟机上,而虚拟机又运行在操作系统上。
制作操作系统的最佳方式是针对低端嵌入式系统,因为您不必担心虚拟内存和其他复杂的东西。如果您想走这条路,请查看https://github.com/DVDPT/Micro-Operating-System,这是我自己为ARM和AVR嵌入式系统制作的操作系统。
最后,请阅读操作系统概念并学习像TNKernel、FreeRTOS、eCos这样的微型操作系统。然后再转向主要的操作系统,如Linux或Windows。

1

简短回答:不行。

详细回答:不完全是这样。

你必须使用汇编语言编写某些部分,同时你可能会遇到CLR的问题,但这可以通过使用.NET微框架来克服。此外,微软在他们的Singularity OS中已经完成了部分工作。如果你想进入操作系统开发领域,我建议阅读OSDev Wiki上的一些教程或查看Bona Fide OS Developer


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接