Virtual Machine Types without KVM

Technically, KVM-based VM is a special type of virtual machine which relies on physical machine features. Following lists some popular VM types that do not use KVM. Hope you also find it interesting.

VM Name Translation Technologies Executable Format Runtime
Dalvik VM (Register based VM) Interpretation Android (<2.2, 2008)
Dalvik VM JIT + Interpretation (Just in time) .dex / .odex (Dalvik Executable) Android (>=2.2 <5.0, 2014)libdvm.so
ART (Android Runtime) AOT (Ahead of time) .dex Android (>=4.4, 2017) ART libart.so
ART JIT + AOT + Interpretation (All-Of-the-Time) .dex Android (>=7.0, 2019) ART libart.so
JVM (Stack based VM) JIT .class libjvm.so
QEMU-tcg Binary Translation + JIT machine code QEMU
eBPF JIT BPF bytecode Linux Kernel
WASM JIT WASM bytecode v8

References

Jvm,Dalvik和Art区别 – 简书 (jianshu.com)
Android中编译工具链的改动—-LLVM份量的增加-阿里云开发者社区 (aliyun.com)
JIT、AOT、Dalvik、ART概念整理 | superxlcr’s notebook
ArkCompiler-HarmonyOS Next编程平台-华为开发者联盟 (huawei.com)
Android version history – Wikipedia
Platform architecture  |  Android Developers
Garbage collection (computer science) – Wikipedia
Android runtime and Dalvik  |  Android Open Source Project

Leave a Reply

Your email address will not be published. Required fields are marked *