AI 요약
이 기사는 Apple Silicon Mac에서 Apple의 Virtualization framework를 사용하여 macOS 가상 머신(VM)을 구동할 때 발생하는 '최대 2개 실행 제한'의 원인과 분석 과정을 다룹니다. 저자는 Mac 관리 인턴 및 OpenCore Legacy Patcher 개발자로서의 경험을 바탕으로, UTM 프로젝트 등에서 발생하는 VZError.Code.virtualMachineLimitExceeded 오류의 본질을 추적했습니다. 조사 결과, 이 제한은 macOS Ventura 소프트웨어 라이선스 계약(SLA) 섹션 2.B.iii에 명시된 '최대 2개의 추가 복사본 설치 및 실행' 허용 규정을 기술적으로 강제한 것입니다. 초기에는 사용자 공간의 프레임워크 내에 제한 로직이 있을 것으로 예상했으나, 분석 결과 Apple의 커널인 XNU의 폐쇄 소스 파트에서 해당 체크가 수행됨을 확인했습니다. 이는 단순한 소프트웨어 설정을 넘어 운영체제 심층부에서 관리되는 정책적 제한임을 시사합니다.
핵심 인사이트
- 활성 VM 제한: Apple Silicon 호스트는 동시에 최대 2개의 macOS 게스트 VM만 실행할 수 있도록 제한되어 있습니다.
- 법적 근거: 이 기술적 제한은 macOS Ventura SLA 섹션 2.B.iii에 명시된 라이선스 규정(개발, 테스트, 개인적 용도 등에 한해 2개 인스턴스 허용)을 따릅니다.
- 오류 코드: 제한 수치를 초과하여 VM을 실행하려고 하면
VZError.Code.virtualMachineLimitExceeded에러가 발생합니다. - 구현 위치: 해당 제한 로직은
Virtualization.framework와 같은 사용자 공간이 아닌, XNU 커널의 폐쇄 소스 영역 내에 구현되어 있습니다.
주요 디테일
- 분석 도구: macOS Big Sur 이후 프레임워크가 dyld shared cache에 통합됨에 따라, 분석을 위해 Hopper Disassembler와 같은 전문 역공학 도구가 사용되었습니다.
- SLA 규정 상세: 라이선스상 허용되는 VM 용도는 소프트웨어 개발, 개발 중 테스트, macOS Server 사용, 개인적/비상업적 용도로 한정됩니다.
- 커뮤니티 협업: Hack Different Discord 서버의 사용자
jevinskie를 통해 제한 로직이 커널 수준에 존재한다는 결정적인 단서를 확보했습니다. - 기술적 장애물: Apple은 하드코딩된 VM 제한 값을 사용자 공간 프레임워크 어디에도 노출하지 않아 분석에 수 시간이 소요되었습니다.
- 컨텍스트: 저자는 OpenCore Legacy Patcher 프로젝트 외부 활동의 일환으로 Mac 관리 인턴직을 수행하며 이 문제를 심도 있게 연구하게 되었습니다.
향후 전망
- 우회 가능성 탐색: 제한의 위치가 커널 수준임이 밝혀짐에 따라, 향후 연구원이나 헤비 유저들에 의한 커널 패치 형태의 우회 시도가 나타날 가능성이 있습니다.
- 가상화 워크플로우 영향: 대규모 빌드 팜이나 테스트 자동화를 구축하려는 엔지니어들에게 Apple의 하드웨어당 2개 VM 제한은 지속적인 병목 현상으로 작용할 것입니다.
출처:hackernews
