Sun公司提供了三种运行在小型设备操作系统上的JVM,它们是CVM、KVM和Card VM。
CVM应用于那些瘦客户端,如数字机顶盒、车载电子系统等;
KVM应用于那些电池供电的手持移动设备,如移动电话、PDA等;
Card VM应用于智能卡(Smart Card)系统。
CVM、KVM和Card VM三者适用的硬件资源是由高到低的,根据不同的硬件选择不同的虚拟机。KVM在功能上是CVM的子集。
CVM允许设备将Java线程映射到本地线程,完成垃圾收集、Java同步等。在存储系统方面,表现为精确、高校的垃圾收集,虚拟机与存储系统分离;在可移植性方面,CVM使用C语言,实现快速、安全移植;在本地线程方面,CVM支持线程抢占。
KVM的最大特点是小而高效,只需要几万字节的存储空间就可以运行。虚拟机和类库只有50~80KB,具有较高的可移植性和可扩展性,垃圾收集独立于系统,支持多线程。