Compatibility layer
호환성 계층(互換性階層, compatibility layer)은 네이티브가 아닌 구성 요소의 지원을 허용하는 구성 요소를 일컫는 용어이다.
Categories
Virtualization
- 가상화 (Virtualization)
- 호환성 계층 (Compatibility layer)
- 하이퍼 바이저 (Hypervisor)
- 가상 머신 (Virtual Machine)
- 반 가상화 (Paravirtualization)
- 전 가상화 (Full virtualization)
- 에뮬레이터 (Emulator)
- Cross-platform virtualization
- Computing platform
- 툴체인 (Toolchain)
Software
- Wine - 프로그램 로더와 DLL로 구현 된 Windows API를 사용하여 Unix 계열 시스템에서 일부 Microsoft Windows 바이너리를 실행합니다.
- Windows의 응용 프로그램 호환성 계층은 잘못 작성된 응용 프로그램 또는 이전 버전의 플랫폼 용으로 작성된 응용 프로그램을 실행하려고합니다.
- Lina - Windows, Mac OS X 및 기본 모양과 느낌의 Unix 계열 시스템에서 일부 Linux 바이너리를 실행합니다.
- KernelEX - Windows 98/Me에서 일부 Windows 2000/XP 프로그램을 실행합니다.
- Executor - Windows, Mac OS X 및 Linux에서 68k 기반 "클래식"Mac OS 프로그램을 실행합니다.
- Anbox - Linux 용 Android 호환성 계층.
- Columbia Cycada - Android 시스템에서 Apple iOS 애플리케이션을 실행합니다.
- Hybris - Bionic을 glibc 호출로 변환하는 라이브러리.
- Darling - Linux에서 Mac OS X 및 Darwin 바이너리 실행을 시도하는 번역 계층.
- Windows Subsystem for Linux (WSL) - Windows에서 Linux 바이너리를 실행합니다.
- Cygwin - Windows에서 기본적으로 실행되는 POSIX 호환 환경.
- 2ine - Linux에서 OS/2 애플리케이션을 실행하기위한 프로젝트
Compatibility layer in kernel:
- FreeBSD's Linux compatibility layer - Linux 용으로 특별히 빌드 된 바이너리가 기본 FreeBSD API 계층과 동일한 방식으로 FreeBSD에서 실행되도록합니다. FreeBSD는 또한 NDIS, NetBSD, PECoff, SVR4 및 FreeBSD의 다른 CPU 버전을 포함하여 일부 유닉스 계열 시스템 에뮬레이션을 가지고 있습니다.
- NetBSD - 여러 유닉스 계열 시스템 에뮬레이션이 있습니다.
- Windows Subsystem for Linux - Microsoft에서 개발 한 Linux 호환 커널 인터페이스를 제공하며 Linux 코드를 포함하지 않으며 Ubuntu 사용자 모드 바이너리가 그 위에 실행됩니다.
- The PEACE Project (aka COMPAT_PECOFF) - NetBSD 용 Win32 호환 레이어가 있습니다. 이제 프로젝트가 비활성 상태입니다.
호환성 계층은 전체 하드웨어 에뮬레이션의 복잡성과 속도 저하를 모두 방지합니다. 일부 프로그램은 원본보다 더 빠르게 실행될 수도 있습니다. FreeBSD의 Linux 호환성 계층에서 실행되는 일부 Linux 응용 프로그램은 Red Hat Linux의 동일한 응용 프로그램보다 더 잘 수행 될 수 있습니다. Wine에서 Windows NT 기반 운영 체제와 비교하기 위해 벤치 마크가 실행되는 경우가 있습니다.
유사한 시스템에서도 호환성 계층을 구현하는 세부 사항은 매우 복잡하고 까다로울 수 있습니다. 좋은 예는 NetBSD의 MIPS 아키텍처 버전에있는 IRIX 바이너리 호환성 계층입니다.
호환성 계층은 호스트 시스템의 CPU가 외부 시스템의 CPU와 (상향) 호환되어야합니다. 예를 들어 Windows에는 x86 CPU가 필요하기 때문에 PowerPC 하드웨어에서는 Microsoft Windows 호환성 계층을 사용할 수 없습니다. 이 경우 전체 에뮬레이션이 필요합니다.
Hardware
하드웨어 호환 계층은 하드웨어 에뮬레이션을 허용하는 도구를 포함하고 있다. 또한, 이 용어는 테이프 재생기의 경우 테이프 어댑터로 일컫기도 한다. 다른 하드웨어 호환 계층들은 외부 상자(breakout box)를 포함하는데, 외부 상자는 다른 비호환 컴퓨터의 특정한 컴퓨터 버스의 호환성을 제공한다.