- UTM은 iOS와 macOS에서 동작하는 시스템 에뮬레이터이자 가상 머신 호스트로, QEMU 기반으로 Windows, Linux 등을 Mac, iPhone, iPad에서 실행 가능함
- QEMU를 사용한 전체 시스템 에뮬레이션으로 MMU와 장치 등을 다루며, x86_64, ARM64, RISC-V를 포함한 30개 이상 프로세서 지원
- VGA 그래픽 모드는 SPICE와 QXL을 사용하고, 텍스트 터미널 모드, USB 장치, QEMU TCG 기반 JIT 가속 지원
- macOS 11과 iOS 11+용 프런트엔드로 기기에서 VM 생성, 관리, 실행 가능함
- macOS에서는 Hypervisor.framework와 QEMU를 사용한 하드웨어 가속 가상화를 지원하고, macOS 12+에서 Virtualization.framework로 macOS 게스트 부팅 가능함
- UTM SE는 iOS에서 탈옥이나 JIT 우회 없이 일반 앱처럼 사이드로드할 수 있는 “slow edition”이며, threaded interpreter를 사용해 전통적 인터프리터보다 빠르지만 JIT보다 느린 방식
- UTM/QEMU는 최대 성능을 위해 동적 코드 생성(JIT)이 필요하고, iOS 기기에서 JIT는 탈옥 또는 특정 iOS 버전용 우회 방법 필요
- UTM SE는 크기와 빌드 시간 최적화를 위해 ARM, PPC, RISC-V, x86 아키텍처만 포함하며 각각 32비트와 64비트 변형 제공
- iOS용 UTM 및 UTM SE 설치 안내는 https://getutm.app/install/ 에서 제공되며, macOS용 UTM은 https://mac.getutm.app/ 에서 제공
- Apache 2.0 라이선스로 배포되지만 여러 (L)GPL 구성요소를 사용하며, gstreamer 플러그인은 정적 링크되고 코드 일부는 qemu에서 가져온 점을 재배포 시 고려 필요
UTM - iOS 및 macOS용 가상 머신
(github.com/utmapp)댓글과 토론
Hacker News 의견들
-
몇 주 전에 macOS Ventura가 설치된 새 M2에서 Fusion을 대체하려고 Windows 11 ARM을 UTM으로 설치해 봤는데 실망스러웠음
가상 머신과 호스트 사이의 복사/붙여넣기나 파일 공유 같은 통합 도구가 동작하지 않았고, 그래픽은 계속 깨지다가 회색 화면으로 넘어가는 일이 잦았음
복구 방법이 없어 보여서 가상 머신을 강제 재시작해야 했고, 드라이버/보조 도구 날짜도 2012년으로 되어 있었음
무료 제품이라 기대할 권리는 없고 실제로 Fusion으로 돌아갔지만, 오픈소스로 상용 가상 머신 솔루션을 대체하길 바랐던 입장에서는 아직 어렵다고 봄- 복사/붙여넣기는 확실히 동작함. 하루 종일 왔다 갔다 하며 쓰고 있음. SPICE 도구를 설치했는지 확인해 볼 필요가 있음
https://docs.getutm.app/guest-support/windows/#windows-xp-an...
그래픽 오류도 본 적은 없지만, 게임을 하려는 건 아니고 기본 데스크톱 앱만 쓰는 중임 - UTM을 아주 괜찮은 QEMU 래퍼로 쓰고 있고, 그렇게 다루면 훌륭함
- Fusion에서 Windows ARM 가상 머신으로 복사/붙여넣기와 공유 폴더가 동작하는지 궁금함. 마지막으로 확인했을 때 VMware Tools는 아직 그 기능들을 지원하지 않았음
수정: Fusion 2023 Tech Preview [1]는 전체 VMware Tools를 설치하고 복사/붙여넣기를 지원함 - 놀랍지 않음. OpenGL이 동작하지 않기 때문임. 요즘 많은 앱이 OpenGL을 쓰는 걸 생각하면 꽤 쓸모가 떨어짐
- MS RDP 도구로 접속하면 더 나은 사용감을 줄 수도 있음
- 복사/붙여넣기는 확실히 동작함. 하루 종일 왔다 갔다 하며 쓰고 있음. SPICE 도구를 설치했는지 확인해 볼 필요가 있음
-
UTM은 훌륭하고, 스냅샷 기능이 추가되면 [1] 기본 추천으로 삼을 것 같음. 그때까지는 Parallels를 계속 쓸 예정임
참고로 비공식 스냅샷 관리자가 있음 [2]
1: https://github.com/utmapp/UTM/issues/5484
2: https://github.com/Metamogul/UTM-Snapshot-Manager- 실제 시스템이 아니라 가상 머신 안에서 개발하는 습관을 유지해 왔고, M1 MacBook Pro에서 ARM64 Linux 가상 머신을 돌리려고 UTM을 오래 써 봤지만 파일 공유 문제가 계속 괴롭혔음
가장 흔한 문제는 공유 폴더가 게스트 가상 머신에서 갑자기 사라지고, 이를 되살리기 위해 우회책을 자주 써야 했던 것임
그다음 VMWare Fusion도 같은 문제가 있었고, Parallels는 너무 비싸 보여서 Lima로 넘어갔음
Lima를 알게 되어 다행임. 이것도 QEMU 기반이고 Linux 가상 머신을 쉽게 띄우게 해 주며, 네트워크 공유를 기본 제공함
지금은 모든 개발을 Lima 가상 머신 안에서 하고 있고, 문제가 없었음. 필요하면 화면 전달도 할 수 있겠지만 지금은 VSCode 덕분에 헤드리스 인스턴스로 충분함 - APFS는 이미 모든 파일 형식에 대해 기록 중 복사 스냅샷을 지원함. UTM의 스냅샷 기능은 그 기능을 감싸는 형태일 것 같음
cp -c처럼 간단할 수 있음
다만 정말 그렇다면 이미 구현됐을 것 같기도 함 clonefile로 제한적인 형태의 스냅샷을 성공적으로 흉내 냈다고 말하려 했는데, 진행 중인 구현이 바로 그 방식을 쓰고 있었음- TPM 에뮬레이션과 ansible/vagrabt를 지원하는지 궁금함
- 실제 시스템이 아니라 가상 머신 안에서 개발하는 습관을 유지해 왔고, M1 MacBook Pro에서 ARM64 Linux 가상 머신을 돌리려고 UTM을 오래 써 봤지만 파일 공유 문제가 계속 괴롭혔음
-
UTM의 가장 큰 문제는 어떤 사람에게는 아주 잘 동작하고, 어떤 사람에게는 끔찍하게 동작한다는 점임
이 페이지의 스레드를 위아래로 보면 “UTM을 쓰고 싶은데 동작하지 않거나 못 쓸 정도로 느리다”는 말과 “이상하네, 나는 잘 되는데”라는 답이 동시에 많음
내 경우 UTM은 문자 그대로 한 번도 제대로 동작한 적이 없음. M1 2021 Mac에서 표준적인 Ubuntu ARM 설치를 https://docs.getutm.app/guides/ubuntu/ 가이드대로 시도했는데 실패했고, 지금 검은 화면의 깜빡이는 커서만 보고 있음
안타깝게도 잘 되는 사람들은 안 되는 사람들에게 실질적인 기술 지원을 거의 해 줄 수 없음
Mac App Store에서 UTM에 10달러까지 냈지만, 기술 지원 채널은 Discord뿐이고 거기에는 “ㅋㅋ 나는 되는데, 실력 문제” 같은 반응이 많았음
추천하자면 UTM은 한 번 써 볼 만함. 마음에 들면 돈을 크게 아낄 수 있고, 나처럼 전혀 안 되면 결국 Parallels에 연 100달러를 내야 함. Parallels는 아마 그냥 동작할 가능성이 큼
Parallels가 안 되면 라이선스를 갱신하게 만들 유인이 있는 회사와 직접 이야기할 수 있고, 성공하도록 도와줄 동기가 있음- 최신 Debian을 웹사이트에서 받아 써 봤고, 이상한 문제 하나를 빼면 문제가 없었음
부팅 가상 머신 디스크를 특정 크기 이상으로 설정하면, 그것도 아주 큰 크기가 아니라 30GB~100GB 정도였던 것 같은데, 가상 머신 부팅이 매우 느려짐
충분히 크게 잡으면 아예 부팅하지 않음. 어떤 크기든 두 번째 드라이브를 추가하는 것은 이 버그를 유발하지 않음 - VirtualBox도 있음
- 최신 Debian을 웹사이트에서 받아 써 봤고, 이상한 문제 하나를 빼면 문제가 없었음
-
회사에서 M1 MacBook Pro를 지급받았지만, 개발은 전부 Linux에서 하고 있음. 90년대 후반부터 Linux가 선호 환경이었음
MacBook Pro 하드웨어는 좋지만 macOS는 둔하고 답답해서 생산성이 크게 떨어짐
그래서 UTM에서 Fedora aarch64를 전체 화면으로 실행함. 꽤 괜찮게 동작하고, Mac 위에 있다는 걸 자주 잊게 됨
다만 macOS가 방해하지 않고, 가끔 전체 화면 모드에서 튕겨내지 않았으면 함- Fedora Asahi Linux를 꼭 지켜볼 것 같음
- Linux에서 macOS로 넘어가는 경험은 결국 macOS의 문제를 참고 적응하거나, 서드파티 솔루션으로 견딜 만하게 고치는 쪽임. 둘 다 조금씩 하게 되기도 함
안정적인 배터리 수명을 놓치기 아까워서 적응하게 됐음
어딘가에는 전체 화면 모드를 유지하게 해 주는 해결책이 있을지도 모름 - 구체적으로 무엇 때문에 생산성이 떨어지는지 궁금함. Mac에서 bash 터미널을 띄워 쓰면 Linux와 거의 비슷하다고 느낌
가끔 익숙한 명령줄 인자를 유틸리티가 지원하지 않을 때가 있지만, 그건 Mac/Linux 문제라기보다 버전 차이에 가깝고 회사 안의 다른 장비로 옮길 때도 여러 번 겪어 봤음
가장 큰 골칫거리는 크진 않지만 ARM과 x86 차이임. 가끔 ARM에서 지원되지 않는 패키지를 만나지만 점점 드물어지고 있음 - 그렇게 쓸 때 성능 손실이 어느 정도라고 보는지 궁금함. 크지 않다면 괜찮은 해법처럼 보임
- Asahi Fedora가 며칠 안에 나온다고 되어 있음. 희망이 있음
-
UTM은 지난 2년 동안 내게 안정적인 하이퍼바이저였고, 그동안 여러 훌륭한 기능 개선도 받았음
그래도 UTM에서 가장 마음에 드는 점은 Universal Turing Machine의 약자라는 것임. 가상화 제품 이름으로는 거의 최고라고 봄 -
Parallels와 VMWare에서 싫은 점은 운영체제 간 통합을 너무 밀어붙인다는 것임. 예를 들어 macOS에서 Windows 창을 열거나, macOS의 문서를 바로 Windows에서 여는 식임
나는 가상 머신이 주 macOS와 격리되어 있기를 선호함. 그래서 항상 설정을 뒤져 가며 무엇을 꺼야 하는지 찾아야 함- Parallels에는 보안 설정 탭에 “Isolate VM from macOS”라는 단일 옵션이 있음. 모든 상호 통합을 비활성화함
- Parallels를 설치했을 때가 떠오름. 파일을 더블클릭할 때마다 Windows의 Notepad로 열려고 계속 시도했음
-
GitHub 프로젝트 설명에서 “for iOS”가 나온다는 건 알지만, 꽤 오해를 부르는 표현이라고 봄
iOS 설치 옵션은 기본적으로 탈옥이거나, 최신 CPU/iOS 버전에서는 불가능한 방식이고, 아니면 반테더링 상태로 며칠마다 앱을 다시 로드/서명해야 함
https://docs.getutm.app/installation/ios/#summary- Apple 개발자 계정이 있으면 1년 동안 유지되는 앱을 사이드로드할 수 있음. 나는 그렇게 쓰고 있음
- 예전에 reprosion이라는 앱을 써 봤는데, iOS 기기에서 서명을 처리하고 자동화까지 할 수 있음. 반테더 탈옥을 올릴 때 썼고, 제한은 7일임
앱 자체를 다시 설치할 필요는 없고 서명 인증서만 갱신하면 됨
EEA에서 사이드로드가 구현되면 훨씬 쉬워질 테니 기대됨 - “탈옥은 최신 환경에서 불가능”이라는 점을 생각해 보면 대단함
Apple이 10억 명 이상에게 배포할 수 있는 하드웨어를 성공적으로 만들었고, 그중 많은 사람이 탈옥으로 얻을 게 있는데도 아무도 해내지 못했음 - 목표가 앱 사이드로드뿐이라면 반테더 방식이 탈옥보다 오히려 덜 수상쩍다고 볼 수 있음
그런 방식 없이도 동작하긴 하지만, 세 가지 실행 방법 중 가장 느림 - EU 사이드로드가 어떻게 동작할지 빨리 보고 싶음. 제대로 구현되길 바람
-
Mac에서 개발 환경용 가상 머신을 돌린다면 원하는 건 OrbStack임: https://orbstack.dev/
- 베타가 끝나면 상업적 사용에는 개발자당 월 8달러가 될 예정임
- 대부분의 사용 사례에는 Lima와 Colima면 충분하다고 봄
https://lima-vm.io/
https://github.com/abiosoft/colima - 아래 같은 문구로 자기 장점을 내세우는 도구치고는 vagrant 지원 부재가 눈에 띔
어떤 사용 사례든 OrbStack은 워크플로를 단순화하고 더 빠르게 움직이도록 돕는 기능을 제공합니다
- 이것으로 복잡한 네트워크 구성을 만들 수 있는지 궁금함. UTM에서 가장 큰 불만은 가상 머신에 네트워크 인터페이스를 하나만 둘 수 있다는 점임
-
Lima를 추천받았는데, macOS용 WSL2와 조금 비슷함: https://lima-vm.io
내부에서 무엇을 쓰는지는 잘 모르겠지만 내게는 아주 잘 동작했음- 가상 머신 생성 시 QEMU나 Virtualization.framework 중 선택할 수 있음
colima는 Lima 위에 얹힌 계층으로, docker-machine/boot2docker 스타일로 가상 머신을 쉽게 설정해 줌
- 가상 머신 생성 시 QEMU나 Virtualization.framework 중 선택할 수 있음
-
UTM은 기본적인 용도에는 훌륭하지만 성능이 너무 나빠서 일상 작업의 주력으로는 그다지 현실적이지 않았음
Mac에서는 Parallels를 이길 것이 없고, 돈값을 충분히 함- Apple Silicon에서 x86 가상 머신을 돌린다면 성능이 처참하다는 데 동의함. 이건 UTM 잘못이라기보다 QEMU 문제에 가깝다고 확신함
가상 머신이 aarch64라면 성능은 놀랄 만큼 좋고, UTM을 강하게 추천할 수 있음
- Apple Silicon에서 x86 가상 머신을 돌린다면 성능이 처참하다는 데 동의함. 이건 UTM 잘못이라기보다 QEMU 문제에 가깝다고 확신함