원문 캡처 · github.com
원문 캡처 · github.com

준비된 FreeBSD 16.0-CURRENT/aarch64 게스트가 Apple Virtualization.framework에서 다중 사용자 모드까지 부팅하고, UFS 저장과 VZ NAT 네트워크, 파일 기반 가상 콘솔 출력을 거쳐 정상 종료했다. 다만 진단용 커널 계측과 로컬 GPU 수정 등을 적용한 게스트로 확인한 결과여서, 수정하지 않은 FreeBSD 이미지가 바로 실행된다는 뜻은 아니다.

검증은 vCPU 1개, 메모리 4GiB, EFI, 쓰기 가능한 virtio 블록 부팅 디스크, VZ NAT, 그래픽·오디오, 파일 기반 virtio 콘솔 1개로 진행했다. UFS에 쓴 파일은 종료 후 두 번째 부팅에서도 유지됐고, vtnet0은 DHCP와 기본 경로를 설정해 VZ NAT 게이트웨이에 도달했다. 반복 실행에서도 같은 1,583바이트 증거 기록이 나왔으며 저장소 검사기를 통과했다.

테스트 호스트는 macOS 27.0 빌드 26A5388g와 Xcode 27.0 빌드 27A5194q를 실행한 Apple M4 MacBook Air Mac16,12다. 성공 구성은 USB 키보드·포인팅 장치와 샘플의 SPICE 에이전트 콘솔을 제외했다. SPICE 콘솔과 파일 기반 콘솔을 함께 두면 FreeBSD가 두 번째 콘솔의 메시지 응답을 기다리는 문제가 발생해, 사용하지 않는 SPICE 콘솔을 제거했다.

게스트에는 진단용 커널 계측, 로컬 virtio-GPU 순서 수정, devmatch rc 서비스 비활성화와 검증용 rc.local이 포함됐다. GPU 수정은 저장소 패치로 보존되지 않았고, 쓰기 가능한 게스트 이미지도 배포되지 않았다. 반면 loader.efi 수정이나 FreeBSD virtio-console 패치는 필요하지 않았다. 다음 검증 과제로는 GPU 수정을 제외하고 USB 입력 장치 없이 단일 파일 기반 콘솔을 쓰는 기본 CURRENT 게스트 테스트를 제시한다.

단일 파일 기반 콘솔을 설정하는 호스트 코드와 부팅·종료 영상은 GitHub 저장소에서 볼 수 있다. 검증 영상은 부팅과 종료를 보여주며, 별도의 검사기가 콘솔·저장장치·네트워크 증거를 확인한다. 영상 인코딩과 개인정보 처리 정보는 미디어 출처 기록에 있다.

swift
let serialPort = VZVirtioConsoleDeviceSerialPortConfiguration()
serialPort.attachment = try VZFileSerialPortAttachment(
 url: serialLogURL,
 append: false
)

configuration.serialPorts = [serialPort]
configuration.consoleDevices = []

이미 준비된 쓰기 가능한 게스트를 위한 호스트 설정과 실행 방법은 검증된 VZ 구성 문서에, 세부 조사와 장치 구성 비교는 기술 조사와 플랫폼 비교에 정리돼 있다.