著名开源开发者 Fabrice Bellard(因 QEMU、TinyCC、FFmpeg 和 QuickJS 等项目而知名)开源了一个全新 JavaScript 引擎:MicroQuickJS,特点是极低的资源占用,专为嵌入式系统和受限内存环境设计。

打开网易新闻 查看精彩图片

开源地址:https://github.com/bellard/mquickjs

根据介绍,MicroQuickJS(又名 MQuickJS)是一款面向嵌入式系统的 JavaScript 引擎。它仅需 10kB 的 RAM 即可编译和运行 JavaScript 程序。

整个引擎(包括 C 库)大约需要 100kB 的 ROM(ARM Thumb-2 代码),其运行速度与 QuickJS 相当。

MQuickJS 支持简化版 JavaScript 语言子集,类似 ES5 范围,但比标准 ES5 更严格,也不包括 JavaScript 中所有现代大型特性,目的是减少运行时内存压力和复杂性。

打开网易新闻 查看精彩图片

尽管 MQuickJS 与 QuickJS 共享许多代码,但为了减少内存消耗,其内部机制有所不同。具体而言,它依赖于追踪式垃圾回收器,虚拟机不使用 CPU 堆栈,并且字符串以 UTF-8 编码存储。

Fabrice Bellard 是法国计算机程序员,以编写FFmpeg,QEMU和Tiny C编译器而闻名。他开发了Bellard公式来计算pi的位数。2012年,贝拉德(Bellard)与弗兰克·斯皮内利(Franck Spinelli)共同创立了一家电信公司Amarisoft。

1972年出生,17岁创建了可执行的压缩器LZEXE。

1996年他编写了一个简洁但是完整的C编译器和一个Java虚拟机Harissa。

1997年,他发现了一个新的,更快的公式计算pi的位数。

1998年编写了一个简洁的OpenGL实现TinyGL。

2000年开发FFMPEG。

2002年,他开发了TinyGL,这是适用于嵌入式环境的OpenGL的子集。

2003年开发了Emacs克隆QEmacs。

2003年发明QEMU 通用机器仿真器和虚拟器。

2004年,他编写了TinyCC引导加载程序,该加载程序可以在15秒内从源代码编译并引导Linux内核。

2005年,他设计了一种系统,该系统可以通过直接从标准PC和VGA卡生成VHF信号来充当模拟或DVB-T数字电视发射机。

2011年,他创建了一个用纯JavaScript编写的最小PC模拟器。该仿真硬件包括一个32位x86兼容CPU,一个8259可编程中断控制器,一个8254可编程中断定时器和一个16450 UART。

2009年,他在计算pi的过程中创下了世界纪录,在90天内将其计算为将近2.7万亿个位。Slashdot写道:“虽然改进似乎很小,但它是一项了不起的成就,因为只使用了价格低于3,000美元的一台台式机,而不是以前记录中的数百万美元的超级计算机。

2011年,他获得了O'Reilly开源奖。

2014年,他提出了更好的便携式图形(BPG)图像格式,以替代JPEG。

2019年7月,他发布了QuickJS,这是一个小型且可嵌入的Javascript引擎。

最后看看 Fabrice Bellard 朴实无华的个人主页:

打开网易新闻 查看精彩图片

https://bellard.org/