호환성 계층
호환성 계층은 한 소프트웨어 또는 하드웨어 아키텍처용으로 작성되고 컴파일된 애플리케이션을 다른 호스트 시스템에서 실행할 수 있게 해 주는 소프트웨어 인터페이스입니다. 한 환경을 위해 설계된 API 호출과 기타 시스템 기능을 받아 호스트 시스템이 이해할 수 있는 호출로 변환합니다.
호환성 계층은 한 환경용으로 작성된 소프트웨어예: (x86 프로세서에서 실행되는 Windows)를 유사한 하드웨어의 다른 운영 체제(x86 프로세서에서 실행되는 Linux) 또는 다른 하드웨어 아키텍처의 유사한 운영 체제(ARM 프로세서에서 실행되는 Windows)에서 실행할 수 있게 한다는 점에서 에뮬레이션 및 가상화와 비슷한 기능을 할 수 있습니다. 호환성 계층은 프로그램이 원래 환경에 요청하려는 모든 시스템 API 호출을 가로채 새로운 호스트 환경에 해당하는 호출로 변환합니다.
호환성 계층에서 소프트웨어를 실행하면 다른 환경을 에뮬레이션하거나 가상 머신을 실행하는 것보다 시스템 리소스를 적게 사용하는 경우가 많습니다. 그러나 호환성 계층을 사용하면 일부 소프트웨어에서 오류가 발생하거나 제대로 작동하도록 추가 구성이 필요할 수 있습니다.
에뮬레이션 및 가상화와의 비교
에뮬레이터, 가상화, 호환성 계층은 모두 다른 환경의 소프트웨어를 실행하는 데 자주 사용됩니다. 각 방법은 이 작업을 서로 다른 방식으로 수행합니다.
에뮬레이터는 소프트웨어를 사용해 장치의 하드웨어와 소프트웨어를 모두 재현하고 전체 환경을 에뮬레이션합니다. 하드웨어 장치를 소프트웨어로 에뮬레이션하려면 상당한 시스템 리소스가 필요하므로, 비슷한 성능을 내려면 호스트 시스템이 에뮬레이션하는 하드웨어보다 훨씬 빨라야 합니다. 두 하드웨어 플랫폼 사이를 변환하기 위한 호환성 계층에는 하드웨어 에뮬레이터가 포함되지만, 전체 환경을 계속 에뮬레이션하는 대신 필요한 경우에만 사용합니다.
가상 머신은 호스트 컴퓨터의 하드웨어에서 전체 컴퓨터를 시뮬레이션합니다. 운영 체제의 복사본을 실행하고 소프트웨어 계층을 사용해 가상화된 하드웨어 호출을 호스트 컴퓨터의 하드웨어 호출로 변환합니다. 호환성 계층은 필요한 호출만 변환하며, 필요하지 않은 하드웨어 또는 소프트웨어 호출은 시뮬레이션하지 않습니다.
지식 테스트하기