【问题标题】:Raspberry Pi operating system in C# / Java [closed]C#/Java 中的 Raspberry Pi 操作系统 [关闭]
【发布时间】:2017-10-22 09:28:19
【问题描述】:

有没有办法用c#或Java编写树莓派操作系统???

我是一个很好的程序员,但我不想用汇编写,因为那真的很难。

【问题讨论】:

  • 简答,不。
  • 他们有浏览器,所以你可以用 Javascript 编程。
  • “我是一个非常优秀的程序员。”
  • 两种语言都编译成中间代码,需要进一步的解释器来执行它——两者都不能编译成你需要编写操作系统的本机代码。
  • C/C++ 可以使用交叉编译器:hackaday.com/2016/02/03/…

标签: java c# operating-system raspberry-pi


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    This is the Linux from scratch page

    【讨论】:

    • 谢谢,但是没有办法用 C# 编写操作系统吗?
    • 不。从来没有听说过有人用 C# 制作过操作系统。
    • 可能是一个思想实验或研究问题或有趣的项目,但除此之外...... :) stackoverflow.com/questions/4058876/…
    【解决方案3】:

    虽然我不会说这是不可能的,但仅使用 C# 从头开始​​对操作系统进行编程实际上并不可行。所有* C# 编译器(例如用于 .NET 和 Mono 的编译器)将 C# 编译成称为通用中间语言 (CIL) 的中间代码。该语言在运行时被解释为字节码,然后由计算机执行。如果没有操作系统来解释它,你就不能很好地让运行时解释该代码。 (Java 执行成 Java 类的伪字节码,由 Java 运行时环境解释,所以同样适用。)

    可以做的是将Windows 10 IoT Core OS 安装到您的Raspberry Pi 上。完成此操作后,您将能够通过 UWP 在您的计算机上编写和运行 C# 程序。可能不是满足您需求的完美解决方案,但无需从头开始编写自定义 C# 编译器/运行时即可获得。

    *:有一个或两个第三方 C# 编译器可以编译成类似 C 的字节码,但 AFAIK 它们已被废弃,高度实验性,仅支持该语言的一小部分,或三者的任意组合.此外,使用这些编译器将不允许您使用任何 .NET 标准库,这意味着您真的要从头开始编码。

    【讨论】:

    • C# 在带有 Mono 的 Linux 上是可能的:maketecheasier.com/write-c-sharp-programs-raspberry-pi
    • 谢谢,这很有帮助。还有一种方法可以立即启动您的 C# 程序吗?在您看到启动屏幕和登录屏幕之前...?
    • @Alwin07 您无法在操作系统之前启动 C# 程序,因为该程序在操作系统中运行。话虽如此,我自己从来没有修补过 Windows 10 IoT,所以我不能确定你能做什么或不能做什么。因此,操作系统可能已经足够精简和可定制,可以让您直接启动程序,绕过任何其他启动视觉效果或其他必要条件。
    • @Abion47 可惜! :(
    • @PaulF 我一般不喜欢使用 Mono,除非我需要跨平台兼容性。与 .NET 相比,它们的库和 C# 实现已经过时,并且一些组件并不总是按照人们期望的方式工作。我并不是要抨击 Mono,但如果我可以选择在 .NET 中编程,我会接受它,并且 Windows 10 IoT 允许这样做。因此,除非 OP 想要 Linux 的灵活性,否则在这种情况下我仍然推荐 Windows。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2013-10-13
    • 2011-09-18
    • 2012-11-04
    • 1970-01-01
    • 2018-10-19
    • 2021-12-22
    相关资源
    最近更新 更多