热门问题
时间线
聊天
视角
兼容层
讓舊版或外部系統可以在宿主系統上執行程式的介面。這會將外部系統的系統呼叫翻譯為宿主系統的原生系統呼叫 来自维基百科,自由的百科全书
Remove ads
在軟體工程领域,相容層相容層是一種介面,可以讓許為舊系統或異質系統編譯的二進位程式檔在主機系統上運行。相容層將異質系統的系統呼叫轉換為主機系統的原生系統呼叫。如配合異質系統的一些函式庫,通常就可以讓為異質系統編譯的二進位程式檔在主機系統上執行。硬體相容層則包含允許硬體模擬的工具。
![]() | 此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
软件
一些例子:
- 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硬體上運作;在這種異質架構下,必須進行完全模擬。
Remove ads
硬件
参见
- Hypervisor
- 半虚拟化
- 仿真器
- 跨平台虚拟化
- 系统平台
- Shim
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads