XEN은 VHE 없이 ARM에서 어떻게 작동합니까?

XEN은 VHE 없이 ARM에서 어떻게 작동합니까?

XEN은 ARM을 지원하며 ARMV8.1-A 확장에 도입된 VHE(Virtual Hardware Extensions) 제한 없이 CPU에서도 실행될 수 있습니다. 내가 이해한 바로는 게스트 가상 머신의 Linux 커널은 HVC 호출을 통해 xen 하이퍼바이저와 통신합니다. HVC 통화는 VHE를 지원하는 시스템에서만 사용할 수 있는 하드웨어 기능입니다. 하지만 VHE 없이는 어떻게 작동합니까? HVC를 사용하는 것도 가능하지만 일종의 소프트웨어 호출로 사용됩니까? 제가 이해한 내용이 틀렸다면 정정해 주시기 바랍니다.

답변1

팔에 젠일반적으로 사용되는가상화 확장고급 ARMv7 칩에 이미 존재함2010년쯤부터이며 ARMv8의 비선택적 부분입니다. Arm 가상화는 자체 메모리 가상화 기능을 갖춘 하이퍼바이저라는 추가 권한 수준을 추가합니다. 시스템과 하이퍼바이저 간의 관계는 사용자와 시스템 간의 관계와 매우 유사합니다. MMU는 사용자 가상 주소(VA)(각 사용자 파티션의 메모리 맵 사용)에서 시스템 주소(IPA)로의 전환을 수행합니다. - "중간 물리적 주소") 변환 및 시스템 주소에서 물리적 주소(PA)로의 또 다른 변환(각 시스템 파티션의 메모리 맵 사용) 사용자 모드 코드는 SVC 명령어를 호출하여 시스템 모드로 들어가고, 시스템 모드 코드는 HVC 명령어를 호출하여 감독자 모드로 들어갑니다.

커널에 하이퍼바이저가 포함되어 있으면 하이퍼바이저 자체가 하이퍼바이저 모드에서 실행됩니다. 커널의 나머지 부분은 커널 설계 방식에 따라 하이퍼바이저 모드 또는 시스템 모드에서 실행될 수 있습니다. 내가 아는 한, Xen은 Linux를 시스템 모드로 실행하고 Xen 관련 부분을 하이퍼바이저 모드로 실행합니다.

v8.1-A가상화 호스트 확장거의 수정되지 않은 커널이 하이퍼바이저 권한으로 실행되도록 허용하여 Xen과 같은 커널과 하이퍼바이저의 설계를 단순화합니다. 커널 부분(SVC 명령어 또는 시스템 수준 인터럽트에 의해 호출됨)은 하이퍼바이저 작업을 수행하기 위해 HVC를 호출할 필요가 없습니다. 이는 HVC 호출에 추가 컨텍스트 전환이 필요하기 때문에 성능 향상에 도움이 됩니다. 여기에는 각 수준에 자체 메모리 맵이 있으므로 일부 캐시 무효화, 레지스터 저장 및 추가 TLB 항목이 필요합니다.

(아직 하나 남았는데Xen ARM의 이전 버전가상화 확장을 사용하지 않습니다. 그 프로젝트가 호출되지만"ARM의 보안 Xen", 제가 ​​아는 한, 반가상화된 게스트 커널만 실행할 수 있으며 게스트 커널과 호스트 사이에는 보안 경계가 없습니다. )

관련 정보