热门问题
时间线
聊天
视角
相容層
讓舊版或外部系統可以在宿主系統上執行程式的介面。這會將外部系統的系統呼叫翻譯為宿主系統的原生系統呼叫 来自维基百科,自由的百科全书
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