日前,该项目发布消息称 Jitter 正式成为 GNU Project 旗下的一个项目 它现在正在使用 GNU 基础设施并按照项目要求以 GNU Jitter 的名义开发。
对于不熟悉 Jitter 的人,你应该知道它是a 是一种允许生成可移植且非常快速的虚拟机的实现 适用于任意设计的编程语言,其代码执行性能明显领先于解释器并接近原生编译代码。
Jitter 是高度可移植的,一个正确的 VM 将在任何只有编译器和标准 C 库的平台上表现出完全相同的行为; 但是,在带有 GCC 的 ELF 系统上使用受支持的架构之一(当前:M68k、MIPS、PowerPC、RISC-V、SPARC、x86_64;第二级:Aarch64、Alpha、ARM、S390x)性能会更好。 当然,Jitter 是 GNU 项目的一部分,主要是为在 GNU 系统上使用而设计的。
吉特r 将支持指令的高级规范作为输入 通过虚拟机, 并且在输出中形成了虚拟机的即用型实现 执行给定的指令。
规范中每条指令的逻辑 使用 C 代码指定。 其他功能包括支持难以在 C 中实现且在动态编程语言中固有的条件分支操作,例如标记值检查和溢出检查。
Jitter 运行时还具有对仅使用 C 的难以实现的条件分支操作的有效支持,例如动态类型语言所需的值标记检查和带有溢出检查的算术。 VM 代码访问过程调用和返回操作,在大多数情况下依赖于有效的硬件机制。
生成的虚拟机在 C 中格式化,插入次数很少 汇编程序。 提供配置以启用各种优化和选择交付机制,从而轻松将虚拟机迁移到不同平台。
它支持使用寄存器、堆栈和连接执行架构,以及在 CPU 硬件寄存器中镜像虚拟机数据结构和连接垃圾收集器的能力。
生成的代码包括一个简单的 C API,用于在虚拟机中动态替换和执行代码,以及一个控制器程序,用于从虚拟机中的文本文件中单独执行代码。
生成的 C 代码经过严格的条件限制,可以配置为使用不同复杂程度的不同分发技术运行; 最有效的调度技术依赖于 Jitter 提供的一些特定于体系结构但不是特定于 VM 的组装支持; 所有调度模型,但一个也基于 GNU C 扩展。
最后,对于那些有兴趣了解更多信息的人,他们应该知道原始的 Jitter 代码是用 C 编写的,并且在 GPLv3 许可下可用。 您可以在 以下链接。
如何获得抖动?
有兴趣测试Jitter的朋友可以打开终端输入以下命令获取源代码:
git clone http://git.ageinghacker.net/jitter
完成后,现在我们继续进入包含代码的文件夹,我们将执行启动脚本,该脚本用于生成配置和构建 Jitter 所需的文件,包括配置脚本。 我们这样做:
cd jitter && ./bootstrap
值得一提的是,Jitter 遵循 GNU 的配置和构建约定,支持从源目录构建; 事实上,它支持交叉编译,甚至可以通过模拟器在交叉编译中运行测试套件。
./configure && make
最后,要执行,只需键入:
make check