QEMU 에뮬레이터는 Rust 프로그래밍 언어 통합에 있어 상당한 진전을 이루고 있으며, 현재 실험적 지원이 제공되고 있습니다. 최신 업데이트에 따르면, 이전에 확인된 대부분의 누락된 기능들이 해결되었거나 향후 몇 달 내에 해결될 예정입니다.
`--enable-rust` 옵션으로 빌드된 QEMU는 모든 지원 플랫폼에서 성공적으로 컴파일됩니다. 지속적 통합(Continuous Integration, CI) 프로세스와 rust/qemu-api에 대한 단위 테스트가 통과하여 안정성과 기능성을 입증했습니다. 테스트 스위트에는 pl011 및 HPET 장치 모델의 Rust 구현에 대한 검사가 포함되어 있으며, pl011은 안전한 Rust 코드로 완전히 구현되었고, 마이그레이션 및 qdev 속성을 제외한 모든 부분이 포함됩니다. HPET 모델은 제한적이고 통제된 상황에서만 안전하지 않은 Rust를 사용합니다.
마지막 업데이트 이후, 바인딩 코드에 대한 개선이 이루어져 qemu_api 크레이트 외부의 클래스 구현을 복잡하게 만들었던 문제들이 해결되었습니다. 이는 관심사의 명확한 분리를 촉진하여 qemu_api 크레이트를 도구와 시스템 에뮬레이터와 같은 다양한 요구에 맞게 나눌 수 있게 했습니다. 또한, bindgen이 생성한 타입과 Rust 코드에서 사용되는 실제 구조체 간의 구분이 이루어져, C와 Rust 구조체 모두에 대해 Send, Sync 또는 Zeroable과 같은 특성을 독립적으로 지정할 수 있게 되었습니다.
* 이 글은
phoronix.com의 기사를 요약한 것입니다. 전체 기사의 내용은
이곳에서 확인하실 수 있습니다.