兼容層
讓舊版或外部系統可以在宿主系統上執行程式的介面。這會將外部系統的系統呼叫翻譯為宿主系統的原生系統呼叫
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
在軟件工程領域,兼容層是一個允許面向舊或異質系統的二進制文件運行在特定主機系統上的接口。這意味着將面向異質系統的系統調用轉換為面向主機系統。有些函式庫會面向異質系統,這通常是為主機系統提供運行異質二進制文件的能力。而硬件兼容層工具允許硬件仿真。
軟件
一些例子:
- 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日)