相容層
讓舊版或外部系統可以在宿主系統上執行程式的介面。這會將外部系統的系統呼叫翻譯為宿主系統的原生系統呼叫
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
在軟件工程領域,相容層是一個允許面向舊或異質系統的二進制檔案執行在特定主機系統上的介面。這意味着將面向異質系統的系統呼叫轉換為面向主機系統。有些函式庫會面向異質系統,這通常是為主機系統提供執行異質二進制檔案的能力。而硬件相容層工具允許硬件仿真。
軟件
一些例子:
- 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的相容層不可能在PowerPC硬件上執行,因為Windows需要x86的CPU;對於這種情況,只能進行完全仿真。
硬件
參見
參考資料
- ^ Charlie Russel, Microsoft MVP for Windows Server and Tablet PC. Application Compatibility in Windows XP. 2002-02-18 [2016-06-14]. (原始內容存檔於2006-12-06).
- ^ Linux emulation in FreeBSD. [2016-06-14]. (原始內容存檔於2020-08-01).
- ^ Emulation. freebsd.org. [2014-03-16]. (原始內容存檔於2020-08-01).
- ^ A look inside.... freebsd.org. [2014-03-16]. (原始內容存檔於2020-08-01).
- ^ NetBSD Binary Emulation. netbsd.org. [2014-03-16]. (原始內容存檔於2020-10-29).
- ^ BASH Running in Ubuntu on Windows - MSDN. [2016-06-14]. (原始內容存檔於2017-11-30).
- ^ BenchMark-0.9.5 (頁面存檔備份,存於互聯網檔案館) - The Official Wine Wiki
- ^ Emmanuel Dreyfus. IRIX Binary Compatibility, Part 1. onlamp.com. August 8, 2002 [2014-03-16]. (原始內容存檔於2017-10-21).
外部連結
- Windows XP應用程式相容技術(英文)(微軟公司Dave Morehouse和Todd Phillips,2001年6月1日)