虚拟机(Virtual Machine)是一种软件对硬件的模拟实现。这个专用名词被使用在两个场景,一个是指整机虚拟机(例如VM Ware),另一个是编程语言虚拟机(例如JVM, Python VM)。
编程语言虚拟机提供了一种程序的中间表示,例如Python字节码,它非常类似于CPU的指令集(Instruction Set)。
语言虚拟机同时提供了自动管理内存,线程(协程)管理等方法,使它兼具了部分操作系统的功能。
总之,语言虚拟机是专用于某一类编程语言的,对硬件的软件模拟,它让程序员从跨平台,手动管理内存等繁重的工作中解放出来。