我在这里看到了这个帖子。我想知道这是否合法(听起来像)以及这样做的缺点是什么。在某些架构中独立运行它需要什么? 谢谢
尝试用托管语言创建操作系统目前是一个“有趣的研究问题”。这意味着这似乎是可能的,但仍有相当多的重要问题需要解决(例如,我不希望很快出现“托管窗口”)。
例如,查看 Singularity 项目(也可在 CodePlex 获得)。它仍然有一些原生部分,但数量很少。据我所知,甚至垃圾收集器也是用托管代码编写的(带有一些允许使用指针进行安全操作的语言扩展)。
诀窍在于,即使是托管代码最终也会被编译为本机代码。在.NET中,编译通常是在启动应用程序时由JITter完成的。在 Singularity 中,这是提前完成的,因此您可以运行本机代码(但从托管生成)。奇点还有其他一些有趣的方面 - 例如,进程通过消息进行通信(并且无法动态加载代码),这使得在生成本机代码时可以进行一些积极的优化。
有一个开源项目正在尝试实现这一目标。 它被称为“托管操作系统联盟”。主要目标是作为一个框架(为用户提供编译器、库、接口、工具和示例内核),它还将具有完整的操作系统内核和小型应用程序。
欲了解更多信息:
.NET 是非常强大的框架,它不断发展,可能包含从元数据属性到 linq 的所有内容,这无疑使我们免受不良指针错误的困扰。
就像 Windows Phone 和 iPhone 一样,人们将能够为设备编写可定制的操作系统。
如今大多数防火墙、路由器(硬件)都包含定制的linux,可以用Singularity内核和您自己的业务流程替换。
Singularity 内核很小,看起来是嵌入式 Windows/Linux 的完美替代品。
我认为没有任何缺点,除了它是全新的系统,硬件供应商需要时间来提供与此兼容的设备,但它会在未来发生。