QEMU 10.1은 향상된 보안, 마이그레이션, 확장된 지원 기능을 갖추고 출시되었습니다.

  • 기밀 게스트 지원: VFIO의 TDX/SEV-SNP, IGVM 및 guest_memfd
  • 더 빠른 마이그레이션: IPv6를 통한 multifd + postcopy 및 RDMA
  • 최신 아키텍처: 새로운 ARM 기능 및 RISC-V 확장
  • 실용적인 개선 사항: ARM 'virt'에서 ACPI를 통한 GUI/오디오, NBD, QMP 및 PCI 핫플러그

QEMU 10.1

QEMU 10.1이 출시되었습니다. 이 버전에는 개발자와 대규모 가상 머신 배포자 모두에게 중요한 몇 가지 변경 사항이 포함되어 있습니다. 가장 주목할 만한 특징으로는 보안, 라이브 마이그레이션, 아키텍처 지원, 장치 개선 등의 새로운 기능이 있습니다., 그러므로 차분히 검토해 보는 것이 좋습니다.

자세한 내용을 살펴보기 전에, 혼란을 피하기 위해 한 가지 알려드릴 사항이 있습니다. QEMU는 시간 기반 번호 체계를 사용합니다. 즉, 가장 높은 릴리스 번호 자체가 변경 사항의 범위를 나타내는 것은 아닙니다. 프로젝트 정책은 최소 두 개의 이전 버전에서 경고와 함께 사용 중단 기간 이후에는 호환되지 않는 변경 사항을 허용합니다.따라서 주요 버전의 전환이 혁명과 동일시된다고 생각하지 마십시오.

QEMU 10.1 가용성, 컨텍스트 및 철학

프로젝트 발표하다 10.1.0년 26월 2025일에 2700 버전이 공개되었으며, 226명의 작성자가 XNUMX개 이상의 커밋에 서명했습니다. 공식 웹사이트에서 tarball을 다운로드하고 전체 변경 로그에서 자세한 내용을 확인할 수 있습니다.언제나 그렇듯이, 코드, 테스트, CI, 문서화, 버그 리포트에 기여해 주신 분들께 큰 감사를 전합니다.

QEMU의 철학에 따라 제거된 기능과 더 이상 사용되지 않는 옵션에 대한 언급이 여러 번 있습니다. 이전 버전을 사용하는 경우 시스템 에뮬레이션 사용자 가이드의 '제거된 기능' 섹션과 '사용되지 않는 기능' 장을 확인하세요., 대체도 권장됩니다.

한눈에 보는 하이라이트

시작하기 위해 10.1에 대한 간략한 설명에서는 보안, 성능 및 고급 관리에 대해 다룹니다. 기밀 게스트에 대한 초기 VFIO 지원, 강력한 마이그레이션 개선 사항, 새로운 게스트 에이전트 기능이 제공됩니다..

  • VFIO 및 기밀 유지: guest_memfd를 사용할 때 민감한 게스트 메모리에 접근/매핑하기 위한 초기 지원, SEV-SNP/TDX에서 패스스루 활성화.
  • 라이브 마이그레이션: multifd는 IPv6에서 복사 후, 복사 전 최적화와 RDMA 지원을 가속화합니다.
  • 게스트 에이전트: : Windows에서 로드를 쿼리하기 위한 새로운 'guest-get-load' 명령입니다.
  • 아키텍처: 새로운 ARM 기능(FEAT_SME2, ​​​​SME2p1, SVE2p1 등), 확장된 RISC-V 지원 및 x86의 TDX를 위한 KVM 통합.

아키텍처와 머신: 정확히 무엇이 바뀌는가

QEMU 10.1은 여러 CPU 제품군에 걸쳐 에뮬레이션과 가상화를 개선하고 확장합니다. ARM에서 RISC-V 및 x86, LoongArch, HPPA 또는 Microblaze를 거쳐 구체적인 발전이 이루어졌습니다. 분해되어야 합니다.

ARM

ARM에서 QEMU 10.1은 여러 가지 CPU 아키텍처 기능을 추가합니다. FEAT_SME2, ​​​​FEAT_SME2p1, FEAT_SME_B16B16, FEAT_SME_F16F16, FEAT_SVE_B16B16 및 FEAT_SVE2p1벡터 및 행렬 처리에 대한 지원을 강화합니다.

기계의 경우, 몇 가지 관련된 새로운 기능이 추가되었습니다. 'max78000fthr' 보드(Analog Devices max78000 Cortex-M4)가 통합되었습니다.새로운 멀티 SoC인 'AST2700FC'가 'Catalina-BMC'(Meta) 및 'GB200-BMC'(NVIDIA) 머신과 함께 출시될 예정이며, AST2700 EVB에 펌웨어 지원이 추가될 예정입니다.

인기 있는 'virt' 보드도 성장하고 있습니다. 이제 ACPI를 통한 CXL, PCI 핫플러그를 지원하고, 최근 호스트 커널에서는 'virtualization=on'을 활성화하여 KVM을 사용한 중첩 가상화를 지원합니다.참고사항: 'highbank' 및 'midway' 모델은 더 이상 사용되지 않으며, 'ast2700a0-evb'의 사용 중단이 발표되었습니다.

RISC-V

RISC-V 생태계는 ISA, 기계 및 수정 사항에 대한 세부 정보를 대량으로 받습니다. 원자 페치 확장(Ziccif)이 지원되고 'Svrsw60t59b'가 추가되었으며 벡터 명령어에 대한 예외 사례가 미세 조정되었습니다..

  • ISA 및 확장: 대기 호출에 대한 'tail' 의사 명령어, 대문자 'Z'로 시작하는 CPU 속성 제거, 호스트에서 max_satp_mode, PMP 지역 수 설정 및 확장(최대 64), 'vill'을 vsetvli의 예약된 사용으로 설정하는 옵션.
  • 기계: ACPI 'virt'의 RIMT 지원, Microchip PolarFire SoC의 사용자 정의 개선 및 새로운 쿤밍후 CPU 및 플랫폼; ACPI 테이블의 FADT 및 MADT 버전을 업데이트합니다.
  • 수정 및 기타: PMP RLB가 권한을 점프하는 것을 허용하지 않음, KVM, sstc, zama16b 순서, 프로필 처리, 예외/마스킹 수정(IALIGN의 경우 MEPC/SEPC), PMP 0 범위에서 래퍼라운드 수정, 빅 엔디언 무한 변환 루프 수정, AIA가 aplic-imsic으로 설정된 경우 마이그레이션 실패 수정.

또한, 누락된 명명된 기능을 추가하고, PPN 변환 응답 로그를 수정하고, 비동기 전송에서 무한 지연을 방지했습니다.극한 상황에서도 안정성을 향상시킵니다.

x86(KVM 및 TCG)

x86에는 관리자가 좋아할 만한 두 가지 중요한 점이 있습니다. 게스트 CPU 공급업체가 정의하지 않은 경우 공급업체별 CPUID 비트는 무시됩니다.혼란과 인위적인 프로필을 피합니다.

KVM 측에서는 TDX에 대한 지원이 추가되었습니다(Linux 6.16 이상 필요), IGVM 파일에서 TDX 또는 SEV-SNP 머신을 시작할 수 있게 해줍니다. 이는 보안 프로비저닝 흐름을 위한 중요한 단계입니다.

TCG 번역기에서는 TSS 트랩 비트가 지원됩니다하드웨어 가속 없이 특정 실행 경로의 충실도를 향상시킵니다.

룽아치

LoongArch는 다음의 지원을 받아 전진합니다. 커널의 irqchip, MCFG 테이블로 빅 엔디안을 수정하고, KVM에서 'smp cpu' < 'smp maxcpus'일 때 실패하는 시작 문제를 수정하고, VLDI와 같은 명령어 세부 정보를 다듬습니다. KVM 게스트에게도 알리고 'fcond'에 대한 검사가 추가됩니다..

마이크로블레이즈

Microblaze를 사용하는 사람들은 더 많은 통제력을 갖습니다. 'petalogix_s3adsp1800' 머신을 사용하면 'endianness' 속성을 통해 엔디언을 전환할 수 있습니다.ml605 및 xlnx-zynqmp-pmu의 빅 엔디안 변형은 더 이상 지원되지 않으며, 해당 모델은 qemu-system-microblaze에서 리틀 엔디안으로 변환됩니다. 또한, 'qemu-system-microblazeel' 바이너리도 더 이상 지원되지 않으며 향후 제거될 예정입니다.

MIPS

매우 구체적이지만 매우 감사하게 받아들여지는 수정 사항이 있습니다. Magnum 머신에서 Windows NT MIPS를 부팅할 때 발생하는 BSOD가 수정되었습니다(문제 #2464)., 역사적 소프트웨어를 연구하거나 유지 관리하는 사람들에게 유용합니다.

HPPA

그것은되었습니다 향상된 부동 소수점 예외(FPE) 에뮬레이션 사용자 모드와 시스템 모드 모두에서 이 베테랑 아키텍처의 정밀성을 강화합니다.

다른 아키텍처

위의 섹션 외에도 68k, Alpha, AVR, Hexagon, OpenRISC, PowerPC, Renesas RX/SH, s390x, SPARC, Tricore 및 Xtensa에 대한 장이 있습니다. 10.1 for all에는 주요 헤드라인은 나열되지 않았지만 유지 관리와 조정은 계속됩니다.최근 버전의 s390x에 대한 특별한 언급이 있으며, 새로운 CPU 정의와 virtio-mem 개선 사항이 있습니다.

장치, I/O 및 하위 시스템

QEMU 10.1은 VFIO, 네트워킹, 그래픽, 오디오 및 I/O에 대한 중요한 자료를 제공합니다. 이러한 변경 사항은 성능, 호환성 및 일상 업무에 직접적인 영향을 미칩니다..

VFIO

도입 기밀(CoCo) 게스트의 게스트-memfd 메모리 백엔드에 대한 초기 지원, IGD 패스스루 설명서를 업데이트하고, pseries 머신에서 발생하는 L2 충돌을 해결했습니다.

또한 활성화됩니다 IGD 패스스루를 위한 OpRegion 자동 생성감지 기능이 개선되어 이제 QEMU에서 vfio-ap 구성 변경 사항을 보고할 수 있습니다.

그 이상으로 그들은 도달합니다 vfio-user 클라이언트, 지원 라이브 업데이트(CPR), aarch64에서 multifd를 사용한 VFIO 마이그레이션, 그리고 속성 장치의 PCI 클래스 코드 강제 적용. 마지막으로, 공식화 TDX 및 SNP VM에서 VFIO 지원.

네트워크 및 스토리지

네트워크 장치를 위한 새로운 백엔드가 있습니다. '파스트'통합 및 샌드박싱 시나리오를 위해 설계되었습니다. 또한, Unix 소켓을 통해 NBD를 사용할 경우, QEMU는 더 큰 버퍼를 협상하려고 시도합니다. 성능을 극적으로 개선합니다.

PCI/PCIe 및 virtio

ARM 'virt' 보드 추가 PCI 장치를 위한 ACPI 및 acpi-index를 통한 PCI 핫플러그 글로벌 옵션 '-global acpi-ged.acpi-pci-hotplug-with-bridge-support=on'을 활성화하여.

가상화된 그래픽에서 virtio-gpu를 사용하면 EDID 이름을 삽입할 수 있습니다.호환성 및 자동화 테스트에 유용합니다.

9pfs 및 기타 백엔드

9pfs의 경우 파일 설명자 복구 알고리즘 시스템 한도에 가까워지고 여러 가지 경우가 있는 경우 연결 해제 후 사용 (파일을 삭제한 후의 작업) 미묘한 오류가 발생할 수 있습니다.

오디오

오디오 하위 시스템은 기본값과 호환성을 조정합니다. ALSA에서 'try-poll'은 이제 기본적으로 false입니다. 부동 소수점 샘플에 엔디안 변환기가 추가되었습니다.

그래픽 인터페이스 및 에이전트

GUI에 대해 논의할 것이 많습니다. spice/dbus는 다중 평면 dmabuf를 지원합니다., gl=on은 원격/비로컬 클라이언트에서도 활성화할 수 있습니다.

vdagent 에이전트가 추가됩니다 이주 지원GTK는 크기 조절 처리를 개선하고 '종횡비 유지' 및 '크기 조절' 옵션을 추가합니다.

VNC에서는 수정됩니다 업데이트 코딩 문제 클라이언트와 서버가 비긴밀 인코딩과 8/16bpp 모두에서 엔디안 방식이 다른 경우에도 문제가 해결됩니다. 마이그레이션 후 화면이 일시 중지됨.

I/O 및 디버깅

I/O 계층에서, 이제 많은 TCP 백엔드에서 TCP keepalive 매개변수를 구성할 수 있습니다.공격적인 방화벽이나 NAT가 있는 환경에서 매우 유용합니다.

GDBStub이 추가됩니다 qGDBServerVersion 지원 GDB가 아닌 클라이언트에서도 사용되어 상호 운용성이 향상됩니다.

TCG 플러그인이 더욱 매력적이 되었습니다: 'ips' 플러그인이 지원합니다 양자당 구성 가능한 스케일링 및 지침; 그리고 새로운 기능도 추가되었습니다. 로그 쓰기, 쓰세요 가상 주소 (신중하게) 그리고 읽기/쓰기 하드웨어 주소테스트 플러그인 '패처'가 통합되어 있으며 sparc64 및 alpha는 플러그인에 로깅 세부 정보를 노출합니다..

라이브 마이그레이션 및 블록 작업

10.1에서는 VM 이동성이 더욱 강화되었습니다. RDMA 마이그레이션은 이제 IPv6를 지원합니다. 그리고 postcopy는 순차적 접근(스트리밍 비디오와 같은 일반적인 경우)에 최적화되어 있습니다.

좋은 소식이에요: 이제 Multifd와 postcopy를 동시에 활성화할 수 있습니다. (이제 multifd가 사전 복사 중에 활성화됩니다.) 또한 tcp zerocopy가 활성화되고 축소될 때 multifd를 사용한 VFIO 마이그레이션이 수정되었습니다. 사전 복사의 다운타임 창 불필요한 LOG_CLEAR를 피합니다.

QMP에서는 블록데브-미러 최적화를 위해 부울 플래그 'target-is-zero'를 데뷔시킵니다. 거울 이미 0으로 읽힌 목적지에 대해서는; 나아가 해당 플래그가 없더라도 0으로 읽힌 소스 블록에 대한 작업은 줄어듭니다. 블록데브-백업 복사 전 쓰기 중에 I/O 오류를 처리하는 방법을 결정하기 위해 'on-cbw-error' 옵션을 추가합니다.

블록 작업에서는 블록 커밋이 활성화되지 않았습니다 이는 희소성을 유지하도록 최적화되었으며, 미러/백업은 이전의 개선 사항을 계승하여 제로 블록과 새로운 옵션을 제공합니다.

게스트 에이전트

QEMU 게스트 에이전트는 Windows에서 성장합니다. 'guest-get-load'가 구현되었습니다. 게스트 시스템 부하를 쿼리합니다.

또한 Windows에는 a가 추가되었습니다. VSS 공급자 등록 해제 시 재시도 VSS 공급자에서 MSI 설치 프로그램으로 설치 오류를 전파하여 진단을 더 쉽게 해줍니다.

사용자 모드와 TCG

사용자 모드 에뮬레이션에는 다음이 있습니다. 사소한 문서 업데이트 제한 사항을 명확히 합니다. 신호, 런타임, binfmt_misc 영역이 다루어지며, alpha, arm/aarch64, HPPA, LongArch, PowerPC, s390, x86 대상도 다루어집니다.

TCG에서 작업이 계속됩니다. LoongArch와 RISC-V y el soporte de 녹화/재생단, 앞서 언급한 TSS 치트 비트 외에는 헤드라인에 아무런 변화가 없습니다.

컴파일, 종속성 및 플랫폼

빌드 프로세스에서 문서가 업데이트됩니다. b4 예시 그리고 모든 edk2 하위 모듈은 이제 이동합니다. 펌웨어 tarball에 포함됨.

Rust에 관하여 최소 지원 버전이 1.77로 증가합니다.데비안에서는 mips64el을 제외한 rustc-web 패키지에서 bookworm을 사용할 수 있습니다(이 경우 데비안 trixie 이상이 필요합니다). 우분투 22.04와 24.04에서는 RUSTC/RUSTDOC 변수를 /usr/bin/rustc-1.77과 /usr/bin/rustdoc-1.77로 설정하여 rust-1.77 패키지를 사용합니다.

Rust 지원은 계속됩니다 실험적이고 불안정하다개발 이외의 용도로는 권장되지 않습니다. Rust가 활성화된 경우 QEMU에는 Meson 1.8.1이 필요합니다.로컬 레지스트리(예: /usr/share/cargo/registry)에서 'subprojects/'를 채우기 위해 스크립트('scripts/get-wraps-from-cargo-registry.py')가 포함되었습니다.

호스트 플랫폼에서 Debian Bullseye는 더 이상 지원되지 않습니다.그리고 Ninja 1.9가 필수가 되었습니다(QEMU 10.0을 지원하는 모든 시스템에 이미 존재했습니다). 또한 Emscripten을 사용하여 WASM으로 컴파일하기 위한 실험적 지원.

이번 호에서는 게스트 에이전트가 이미 언급한 것 외에는 Windows에 대한 구체적인 헤드라인은 나오지 않습니다. 10.1 로드맵은 계획/10.1 페이지에 있습니다. 자세한 내용을 알고 싶다면.

업그레이드를 기다리고 계셨다면, 기밀 게스트(IGVM 및 guest_memfd를 갖춘 TDX/SEV-SNP)에 대한 지원, 더 빠른 마이그레이션(multifd + postcopy, RDMA IPv6) 및 아키텍처와 하위 시스템 전반에 걸친 개선 사항이 결합된 QEMU 10.1은 매우 포괄적인 릴리스입니다. 더욱 실용적인 성능, 더 나은 관리 도구, 그리고 지속적으로 현대화되는 기술 기반을 갖춘 만큼 도약할 가치가 있습니다..

QEMU 10.0
관련 기사 :
QEMU 10.0은 다양한 아키텍처에 대한 개선 사항과 Apple 지원 기능을 갖추고 출시되었습니다.

선호하는 소스로 추가