兼容层
讓舊版或外部系統可以在宿主系統上執行程式的介面。這會將外部系統的系統呼叫翻譯為宿主系統的原生系統呼叫 来自维基百科,自由的百科全书
在软件工程领域,兼容层兼容层是一种接口,可以让许为旧系统或异质系统编译的二进制程序档在主机系统上运行。兼容层将异质系统的系统调用转换为主机系统的原生系统调用。如配合异质系统的一些函数库,通常就可以让为异质系统编译的二进制程序档在主机系统上执行。硬件兼容层则包含允许硬件模拟的工具。
![]() | 此条目翻译自其他语言维基百科,需要相关领域的编者协助校对翻译。 |
软件
一些例子:
- Wine,允许在类Unix系统上使用一个程序加载器和是现在DLL中的Windows API运行部分微软Windows二进制文件。
- Windows的应用程序兼容层(Application Compatibility Toolkit)能尝试运行编写拙劣或者为早期平台编写的应用程序。[1]
- Lina,在Windows、Mac OS X和类Unix系统上以原生外观和体验运行某些Linux二进制文件。
- KernelEx,在Windows 98/Me运行Windows 2000/XP程序。
- Executor,在Windows、Mac OS X和Linux中运行基于68k的“经典”Mac OS程序。
- Columbia Cycada,在Android系统上运行Apple iOS程序。
- Hybris,转换Bionic到glibc调用的函数库。
- Darling,在Linux上尝试运行Mac OS X和Darwin二进制文件的转换层。
- 内核中的兼容层
- FreeBSD的Linux兼容层,允许专为Linux构建的二进制文件在FreeBSD以与原生FreeBSD API层相同的方法运行[2][3]FreeBSD还有一些类Unix系统的仿真,包括NDIS、NetBSD、PECoff、SVR4和FreeBSD对不同CPU的版本。[4]
- NetBSD有一些类Unix系统仿真。[5]
- Mach和Darwin二进制文件兼容,为NetBSD/powerpc和NetBSD/i386 (页面存档备份,存于互联网档案馆)。
- Windows Subsystem for Linux提供一个Linux兼容的内核接口,微软开发它并且不包含Linux代码,Ubuntu用户模式二进制文件运行在它上面。[6]
- PEACE项目(也称COMPAT_PECOFF)为NetBSD提供Win32兼容层。此项目目前不活跃。
兼容层并非完整模拟其他操作系统的硬件,所以没有那么复杂,也降低性能损耗,某些程序甚至运行得比原生环境更快。例如,部分 Linux 应用程序在 FreeBSD 的 Linux 兼容层上,性能可能超越其在红帽 Linux 上的表现;有时也会在Wine上面进行性能测试以与 Windows系统进行比较。[7]
然而,即使在相似的系统上,实现兼容层可能相当繁琐复杂,NetBSD MIPS架构版本中的IRIX二进制兼容层就是一个例子。[8]
兼容层的基本要求是主机系统的 CPU 必须能向上兼容目标系统。例如,由于 Windows 操作系统依赖 x86 架构的 CPU,其兼容层无法在PowerPC硬件上运作;在这种异质架构下,必须进行完全模拟。
硬件
参见
- Hypervisor
- 半虚拟化
- 仿真器
- 跨平台虚拟化
- 系统平台
- Shim
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.