【问题标题】:OS(Operating System) Programming in C# [closed]C#中的OS(操作系统)编程[关闭]
【发布时间】:2011-08-26 04:52:34
【问题描述】:

我知道这个项目。问题是“我们可以用托管代码创建一个真正的操作系统,还是用这个项目创建的操作系统是一个 hello world 操作系统?” 操作系统需要完全控制硬件。我们可以用这个来做吗? 如果还有其他项目请告诉我
Cosmos Project

【问题讨论】:

  • 您是在问是否有任何托管代码操作系统?查看来自 Microsoft 的 Singularity project
  • 我知道有。但是我们能不能用这些项目写mac os或windows之类的大操作系统???
  • @LightWing:这是一项艰巨的任务。首先,Singularity 是一个操作系统,所以你不能用它来编写操作系统。我知道微软使用类似于 C# 的语言来编写它,但我没有更多细节。
  • 对不起,我错了MOSA,但是Cosmos是c#.Net开发OS的项目
  • 当然您可以在托管环境中构建操作系统。这完全取决于您如何定义操作系统。

标签: c# osdev


【解决方案1】:

是的,它可以完成 - 请参阅 Singularity,它是(曾经)微软的一个研究项目,旨在在“Sing#”(“Spec#”的扩展版本,它本身是 C# 的扩展)中创建一个完全托管的操作系统)。 值得强调的是,这只是一个对该概念的研究项目,从未打算作为 Windows 或 Max OSX 之类的“完整”操作系统。

源代码可在CodePlex 上获得 - 您可以下载代码,构建它并自己在模拟器中运行它(我自己完成了它,它有据可查并且相对容易,尽管我不记得确切的自己走)。

系统的某些部分是用汇编/C 编写的,特别是引导加载程序和最低级别的 x86 中断调度代码,但这基本上是不可避免的(它本质上非常依赖于平台 - 某些东西 需要编写x86指令来控制和响应基础硬件)。就操作系统的实际运行方式而言,低级中断也不是特别有趣,所以我个人认为这并不是在欺骗“完全托管”的定义。

查看 Singularity 的 Wikipedia 页面也有 5-6 个类似的项目,包括 Cosmos 和几个使用 Java 而不是 C# 的类似尝试。

Singularity OS 的重点是安全性和依赖性,但同样令人印象深刻的是,根据 An Overview of the Singularity Project1 (PDF) 中的一些基本基准,其架构的性能实际上与其他“更传统”的操作系统相当:

...这些数字证明了我们的架构 建议不仅不会导致性能损失,而且通常与更多或更快 常规架构。换句话说,它是构建系统的实践基础。

【讨论】:

  • 我认为托管操作系统非常棒。但是性能。
  • 是否开源,如果没有,是否有开源平等
  • 非常感谢 +1 的回答。
  • @LightWing 我不知道它是否是“开源”(它只是一个研究项目而不是“适当的”操作系统),但是 CodePlex 上提供了源代码。
  • 我不知道性能是什么样的,但这不是他们研究的重点,所以它可能并不出色,但我不知道有什么真正的理由不应该这样如果花费足够的精力对其进行适当的优化,则能够执行。
猜你喜欢
  • 2011-10-31
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-10-22
相关资源
最近更新 更多