我看到了这个帖子here。我想知道这是否合法(听起来像这样)以及这样做的缺点是什么。在一些架构中独立运行它需要什么? 感谢
答案 0 :(得分:12)
尝试使用托管语言创建操作系统目前是一个“有趣的研究问题”。这意味着它似乎有可能,但仍有相当多的重要问题需要解决(例如,我不希望很快就会出现“托管窗口”)。
例如,请查看Singularity project(也可用at CodePlex)。它仍然有一些原生部分,但很少。据我所知,甚至垃圾收集器都是用托管代码编写的(有一些语言扩展,允许使用指针进行安全操作)。
诀窍是即使托管代码最终也会被编译为本机代码。在.NET中,当您启动应用程序时,编译通常由JITter完成。在Singularity中,这是事先完成的,因此您运行本机代码(但是从托管生成)。 Singularity还有其他一些有趣的方面 - 例如,进程通过消息进行通信(并且不能动态加载代码),这使得在生成本机代码时可以进行一些积极的优化。
答案 1 :(得分:4)
有一个开源项目试图实现这一目标。 它被称为“管理操作系统联盟”。主要针对框架(为用户提供编译器,库,接口,工具和示例内核),它还将具有完整的操作系统内核和小型应用程序。
更多信息:
答案 2 :(得分:2)
这是合法的。缺点很明显,这是一个微内核。在你的视频适配器驱动程序完全管理之前还需要一段时间。这需要通过许多开发者和制造商加入潮流来获得临界质量。很难,但Linux已经发生了明显的例子。
微软也在追求这一点。 Singularity已经很好地发表了。它已发展成为一个名为Midori的秘密研究项目。已经有足够的泄漏来了解它的目标,维基百科已经an article了解它。我认为许多在原始CLR上工作的开发人员加入了这个项目。能否达到目的是一个悬而未决的问题。如果确实如此,显然项目支持者可能足以让临界质量滚动。
答案 3 :(得分:1)
微软的Singularity项目是一个操作系统架构框架,它允许人们编写可定制的操作系统,而微软的新操作系统可能会基于奇点。
.NET是一个非常强大的框架,它不断发展,它可能包含从元数据属性到linq的所有内容,它们确实使我们摆脱了错误的指针错误。
就像Windows Phone和iPhone一样,人们可以为设备编写可自定义的操作系统。
今天大多数防火墙,路由器(硬件)都包含自定义的linux,可以用Singularity核心和你自己的业务流程代替。
奇点内核很小,看起来像是嵌入式windows / linux的完美替代品。
我认为没有任何缺点,除了它是一个全新的系统,硬件供应商需要时间来提供与此相符的设备,但它将在未来发生。