GNOME Boxes의 새로운 Flatpak 기반 베타 구현과 GTK4·Libadwaita 전환, Windows 11 지원, VSOCK 접근 기능을 소개합니다.
저는 지난 2년 동안 세 가지 주요 요인에 힘입어 GNOME Boxes를 처음부터 다시 구축해 왔습니다. 이 작업에 관해서는 최근 Linux App Summit, GUADEC 2025, 2026년 발표에서 폭넓게 이야기했지만, 오늘은 일반 테스트를 위해 그 결과를 공유하게 되어 기쁩니다.
첫째, Flatpak 우선, 그리고 유일한 모델로 전환하는 것입니다. 혼자 개발하는 입장에서 수많은 배포판을 위한 코드 경로를 유지하는 것은 지속 가능하지 않습니다. Boxes는 libvirt/qemu의 프런트엔드 역할을 하므로, 그 기능은 백엔드 구성에 크게 의존합니다. Flatpak을 사용하면 전체 가상화 스택을 번들로 묶을 수 있어, 특정 사용 사례에 맞춰 미세 조정하는 데 필요한 제어권을 확보할 수 있습니다.
둘째, Boxes를 GTK4와 Libadwaita로 이전하는 것입니다. 현대적인 사용자 인터페이스, 더 나은 반응성, 더 긴밀한 데스크톱 통합이라는 분명한 장점 외에도, 이는 코드베이스를 훨씬 더 쉽게 유지 관리할 수 있게 합니다. 이 전환을 위해서는 이전 입력 및 그리기 방식에 지나치게 밀접하게 결합되어 있던 GTK3 기반 SPICE 디스플레이 위젯에서 벗어나야 했습니다. 이를 Libmks로 교체했으며, 이는 탄탄한 대안임이 입증되었습니다.
마지막으로, 새로운 기여자가 지속적으로 참여할 수 있도록 코드베이스를 현대화하는 것입니다. 이는 현대적인 GNOME 앱 설계 패턴을 채택하고 기본 아키텍처를 재고하는 것을 의미했습니다.
이제 이 작업을 더 넓은 사용자층과 공유할 준비가 되었습니다. 다만 이것은 운영 환경용이 아니라 테스트를 위한 베타 릴리스라는 점을 유념해 주세요. 사용해 볼 계획이라면 먼저 가상 머신의 중요한 데이터를 반드시 백업하세요.
이 새로운 GNOME Boxes 구현을 테스트하고 싶다면 GNOME Nightly Flatpak 저장소를 설정한 후 다음 명령으로 설치할 수 있습니다.
flatpak install org.gnome.Boxes.Devel
이 새 버전은 이미 기존 Boxes가 할 수 있었던 대부분의 기능을 제공합니다. ISO 미디어와 디스크 이미지(qcow2)에서 가상 머신 생성, 가상 머신 리소스 구성, 클립보드 내용 공유, 게스트로 파일 전송 등이 가능합니다.
수동 우회 방법 없이 Windows 11을 설치할 수 있습니다. Boxes는 Secure Boot와 가상 TPM 장치를 자동으로 구성합니다. Windows 11 하드웨어 호환성 검사를 기본 상태에서 통과하는 데 필요한 모든 것이 갖춰져 있습니다. 이것은 기존 버전에서 가장 많이 요청된 기능이었으므로, 이번 재작성에서 완전히 작동하게 되어 특히 기쁩니다.
배포판이 이미지 기반 운영체제로 전환함에 따라, 이 Flatpak 전용 접근 방식은 더욱 가치 있어집니다. 다른 대부분의 가상 머신 관리자는 불변 시스템에서 구성하기 어려운 호스트 서비스나 권한 있는 데몬에 의존합니다. 하드웨어와 호스트 조합은 다양하지만, 백엔드 스택을 Flatpak 내부에 직접 번들로 묶으면 적극적으로 지원하고 구성하며 시간에 따라 개선할 수 있는 통제된 기준선을 제공할 수 있습니다.
Flatpak 샌드박싱 때문에 가상 머신 내용에 접근하는 일은 예전에는 까다로웠습니다. 이 버전에서는 박스에 VSOCK 장치를 도입하여 이 문제를 해결합니다. 이를 통해 systemd v256 이상을 사용하는 게스트에는 SSH로 직접 접근할 수 있습니다. 또한 포트 포워딩의 초기 지원을 추가하여, 호스트에서 가상 머신 내부에서 실행 중인 서비스에 접근할 수 있게 합니다.
VSOCK를 통해 게스트 가상 머신에 SSH로 접속하는 호스트 터미널의 스크린샷
이 모든 기능과 그 밖의 내용은 새 웹사이트 nightly.gnomeboxes.org에 자세히 설명되어 있으며, সেখানে 테스트와 문제 보고로 도움을 주는 방법도 알아볼 수 있습니다.
저는 GNOME Settings 유지 관리와 Red Hat에서의 본업을 병행하면서 여가 시간에 이 작업을 하고 있다는 점을 유념해 주세요. 문제 응답이 늦어질 수 있는 점에 너그러운 양해를 부탁드리지만, 시간이 허락하는 한 버그를 해결하고 기능 개발을 계속 추진하기 위해 최선을 다하겠습니다.
저는 GNOME Boxes를 만드는 일을 사랑하며, 커뮤니티의 긍정적인 피드백에서 끊임없이 동기를 얻습니다. 사람들은 가상화나 운영체제 내부 구조에 대한 깊은 지식 없이도 가상 머신을 빠르게 설정하고 곧바로 작업을 시작할 수 있게 해 주기 때문에 Boxes를 좋아합니다. 이것은 여전히 핵심 목표이며, 제가 계속 만들어 가고 싶은 사용자 경험입니다.
피드백을 수집하고 구현이 성숙해 감에 따라 이 구현의 많은 부분은 여전히 바뀔 것입니다. 또한 이번 글의 후속 블로그 글 연재도 초안으로 작성해 두었습니다. 새 기능을 설명하고 조금 더 자세히 다루며, 사용 방법과 구현 방식을 알려 드릴 예정입니다. 계속 지켜봐 주세요!