美文网首页
EVM虚拟机技术及应用前景

EVM虚拟机技术及应用前景

作者: wzedmund | 来源:发表于2020-03-10 22:53 被阅读0次

1. 什么是EVM?

      首先,这不是区块链那个虚拟机!

      EVM是一款通用、精简的嵌入式虚拟机。他包含了语法解析前端框架和字节码运行后端,可以运行在资源受限制的单片机上。

    1.1    EVM的特性

    EVM是一款通用化设计的虚拟机引擎,拥有语法解析前端接口、编译器、虚拟机和虚拟机扩展接口框架。EVM专注与虚拟机运行性能、虚拟机稳定性和支持多种语言运行的能力。EVM虚拟机的特性描述如下:

    1.    体积小,最小编译大小为40KB。

    2.    占用资源少,最小内存要求为2KB。

    3.    运行速度快,运行速度已经超过QuickJS。

    4.    先进的内存管理,采用最复杂的压缩算法,无内存碎片(大部分解释器都存在内存碎片)。

    5.    通用化的语法解析前端设计,可以支持多种语言。

    6.    核心算法改进(哈希算法、编译原理等),满足嵌入式设备性能要求。

   

    1.2    EVM对语言的支持

    目前EVM虚拟机可以运行的语言有:Python3、Lua、JavaScript、QML、XML、JSON语法。其中QML语法属于多语言混合型语法,可以在QML中调用JavaScript语言。

    1.3    EVM支持的芯片

    EVM是一种纯C语言开发的虚拟机,没有任何外部依赖,可以在各种芯片上编译运行。目前EVM已经可以运行在stm32单片机系列上。

2.    EVM引擎能带来什么

    作为一款通用型的虚拟机,EVM可以为各行业的开发者带来更多的选择和玩法。   

    2.1    QML引擎

    QML作为QT主打的面向UI开发的语言,其强大的描述能力和调用JavaScript的功能,为UI开发带来了全新的设计理念。尤其是QML属性绑定式编程,可以快速的描述UI的行为和动效。然而QML只能运行在QT图形引擎中,其体积庞大、性能不足的问题一直为人诟病,更不用说能让QML在单片机上运行了。但EVM引擎打破了这种限制,EVM引擎可以完整运行QML语法,同时通过虚拟机扩展接口,可以让QML语言服务于各种底层图形引擎,例如GuiLite、Littlevgl、AWTK等等。同时EVM引擎能够让多种语言混合运行,所以完美解决了QML中调用JavaScript的功能,并且还打破了QT中的QML无法调用JavaScript库的问题。

    2.2    操作系统

    目前针对物联网市场,出现了许多RTOS实时操作系统,例如:RT-Thread、LiteOS、TinyOS、AliOS、FreeRTOS、UCOS等等。那么高级语言开发底层设备变的相对容易很多。目前市面上支持高级语言编程的引擎有Jerryscript、Micropython、Espruino等等各种引擎,操作系统在适配这些引擎的时候变得非常复杂和繁琐,相当于每种引擎都要单独适配一遍。而EVM引擎只需要适配一次,就能满足多种语言开发,大大节省了资源和时间,同时EVM的运行性能远高于这些引擎,可以大幅度提升脚本运行的速度。

    2.3    开发者

    物联网的技术领域是互联网技术与嵌入式技术相结合的技术领域。开发者可能会来自各行各业,有做前端的、有做后端的、有做网路的、有做硬件的,没有任何一种编程语言有绝对优势。移植了Micropython的芯片可能无法满足JavaScript开发者要求,而移植了Jerryscript的芯片又无法满足Python爱好者的要求,两者都移植上去恐怕芯片资源都不够用。而EVM引擎能够很好解决这个问题,开发者可以根据需求来选择所熟悉的开发语言,并且EVM引擎允许多种编程语言之间相互调用,从而满足不同开发技术人员之前相互配合的问题。

    2.4    生态

    由于EVM虚拟机专注于虚拟机技术和虚拟机扩展技术,所以可以很容易对接其他解释引擎的生态资源。例如EVM虚拟机可以通过字节码翻译技术,将webassembly的字节码翻译并运行,这样可以完美兼容webassembly技术,同时又能为webassembly提供底层资源和内存管理等丰富的功能。

相关文章

网友评论

      本文标题:EVM虚拟机技术及应用前景

      本文链接:https://www.haomeiwen.com/subject/tbendhtx.html