C#/Java中的Raspberry Pi操作系统

C#/Java中的Raspberry Pi操作系统,java,c#,operating-system,raspberry-pi,Java,C#,Operating System,Raspberry Pi,有没有办法用c#或Java编写Raspberry pi操作系统 我是一名非常优秀的程序员,但我不想用汇编语言编写,因为这真的很难。自下而上编写一个完整的操作系统显然很困难,而且很耗时。您可以使用任何公开可用的Linux发行版或Linux内核/源代码,并以您喜欢的方式对其进行修改。 要做到这一点,您需要精通C,因为Linux的源代码是用C编写的。 访问我发现的此链接: 虽然我不会说这是不可能的,但用C#语言从头开始编写操作系统是不可行的。所有的C#编译器(如用于.NET和Mono的编译器)都将C#

有没有办法用c#或Java编写Raspberry pi操作系统


我是一名非常优秀的程序员,但我不想用汇编语言编写,因为这真的很难。

自下而上编写一个完整的操作系统显然很困难,而且很耗时。您可以使用任何公开可用的Linux发行版或Linux内核/源代码,并以您喜欢的方式对其进行修改。 要做到这一点,您需要精通C,因为Linux的源代码是用C编写的。 访问我发现的此链接:


虽然我不会说这是不可能的,但用C#语言从头开始编写操作系统是不可行的。所有的C#编译器(如用于.NET和Mono的编译器)都将C#编译成一种称为公共中介语言(CIL)的中介代码。这种语言在运行时被解释成字节码,然后由计算机执行。如果没有操作系统来解释代码,那么运行时就不能很好地解释代码。(Java执行为Java风格的伪字节码,由Java运行时环境解释,因此同样适用。)

您可以做的是将安装到Raspberry Pi上。一旦你这样做了,你就可以通过UWP在你的机器上编程和运行C#程序。也许这不是一个满足您需求的完美解决方案,但它是您不必从头开始编写自定义C#编译器/运行时就能得到的最接近的解决方案


*:有一两个第三方C#编译器确实可以编译成类似C的字节码,但很快它们就被放弃了,而且实验性很强,只支持语言的一小部分,或者三者的任意组合。此外,使用这些编译器将禁止您使用任何.NET标准库,这意味着您将真正从头开始编码。

微软研究院曾开发过一种操作系统,该系统主要是用C#的变体编写的。即使对于那个项目,操作系统的某些核心部分也必须用C和汇编语言编写。虽然该项目早于Pi,但它可以让您了解哪些操作系统组件可以用C#编写。

简而言之,没有。他们有浏览器,所以您可以用Javascript编程。“我是一个非常好的程序员。”这两种语言都编译成中间代码,需要进一步的解释器来执行它——这两种语言都不会编译成编写操作系统所需的本机代码。C/C++可以使用交叉编译器:谢谢,但是没有办法用C#编写操作系统吗?没有。从来没有听说过有人用C#制作了一个操作系统。可能是一个思维实验、研究问题或有趣的项目,但除此之外……)C#可以在Linux上使用Mono:谢谢,这非常有帮助。还有什么方法可以立即启动C#程序吗?在看到引导屏幕和登录屏幕之前…?@Alwin07无法在操作系统之前启动C#程序,因为该程序在操作系统中运行。也就是说,我自己从来没有修补过Windows10IoT,所以我不能确定你能做什么或不能做什么。因此,也许操作系统经过了充分的优化和定制,允许您直接引导到程序中,而不需要任何其他引导视觉效果或其他必要条件。@Abion47(@PaulF我通常不喜欢使用Mono,除非我需要跨平台兼容性。与.NET相比,它们的库和C#实现已经过时,而且一些组件并不总是按照人们期望的方式工作。我不想抨击Mono,但如果我可以选择在.NET中编程,我会接受它,Windows 10 IoT允许因此,除非OP想要Linux的灵活性,否则在这种情况下我还是推荐Windows。