兼容层
兼容层是一种软件接口,允许针对某个操作系统或硬件架构编写并编译的应用程序在不同的主机系统上运行。它接收为某个环境设计的API调用和其他系统功能,并将其转换为主机系统能够理解的调用。
兼容层可以发挥与模拟和虚拟化类似的作用,让针对某个环境编写的软件例如,在(x86处理器上运行的Windows)能够在不同操作系统的类似硬件上运行在x86处理器上运行的(Linux),或者在不同硬件架构的类似操作系统上运行(在ARM处理器上运行的Windows)。它们会拦截程序尝试向原始环境发出的每个系统API调用,并将这些调用转换为对新主机环境的等效调用。
在兼容层中运行软件通常比模拟另一个环境或运行虚拟机使用更少的系统资源。不过,某些软件在使用兼容层时可能会出现错误,或者需要额外配置才能正常运行。
与模拟和虚拟化的比较
模拟器、虚拟化和兼容层通常都用于运行其他环境的软件。每种方法完成这项任务的方式都不同。
模拟器使用软件重新创建设备的硬件和软件,从而模拟整个环境。由于在软件中模拟硬件设备需要大量系统资源,主机系统需要明显快于被模拟的硬件,才能达到相近的性能。用于在两个硬件平台之间进行转换的兼容层会包含硬件模拟器,但只在需要时使用它,而不是持续模拟整个环境。
虚拟机在主机的硬件上模拟一台完整的计算机。它运行操作系统的副本,并使用软件层将虚拟化硬件调用转换为对主机硬件的调用。兼容层只转换所需的调用,并且不会模拟不需要的硬件或软件调用。
测试你的知识