如何解决有哪些可以在 Arduino Uno 上实现的非常轻量级的小型进程虚拟机
我想找到一个可以在 Arduino Uno 上实现的进程虚拟机规范,即使它使用了大约一半的内存或其他资源。要使虚拟机规范合格,它必须非常简单,并且具有对系统要求不高的小指令集。 Java 虚拟机不合格,因为它的指令集非常大,并且因为它定义了许多原始类型,所以有很多重复的指令。
我的目标是找到一个非常简单的进程虚拟机规范,对其环境的要求最少,并且相当高效(它不必是最快、最高效的虚拟机;假设实现系统具有有点记忆力)。任何符合条件的 VM 都将被视为最大公分母,因为它几乎可以在任何系统上实现,并充当软件和计算的半通用抽象层,其中速度不是主要问题。
我之所以这么问是因为我想将虚拟机概念应用于微控制器。有时,使用编译到硬件语言(如 C)进行编程缺乏自反性,目标平台无法检查源代码。此外,除非接收系统(可能是微控制器)具有 C 编译器,否则通过某个网络发送程序的概念对于 C 是不可想象的。这不是一个选择。拥有轻量级的 VM 还可以使软件分发变得容易,正如从 Java 中看到的那样,并且由于它是轻量级的,因此它可以支持许多平台,比 JVM 还多。
我只是要求满足要求的进程虚拟机。如果没有可接受的虚拟机,我计划制定自己的规范。
编辑:以下是一些具体要求。
- VM 必须具有类似 RISC 的指令架构。
- 虚拟机的指令越少越好。
- VM 必须易于实现,内存很少(大约 2k),即使这不是最佳但仍然可行。
- VM 应该易于使用 C、C++、汇编或其他编译到硬件的编程语言实现。
- VM 环境具有冯诺依曼风格的内存管理。换句话说,在 VM 实现上运行的指令也存在于 VM 环境中的内存中。
- VM 是单线程的,这意味着 VM 中没有可用线程的概念。这将使实施更容易。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。