UTM - iOS ve macOS için sanal makine
(github.com/utmapp)- UTM, iOS ve macOS üzerinde çalışan bir sistem emülatörü ve sanal makine barındırıcısıdır; QEMU tabanlı yapısıyla Windows, Linux ve diğer sistemleri Mac, iPhone ve iPad üzerinde çalıştırabilir
- QEMU kullanan tam sistem emülasyonu sayesinde MMU ve aygıtlar gibi bileşenleri ele alır; x86_64, ARM64 ve RISC-V dahil 30'dan fazla işlemciyi destekler
- VGA grafik modu için SPICE ve QXL kullanır; metin terminali modu, USB aygıtları ve QEMU TCG tabanlı JIT hızlandırma desteği sunar
- macOS 11 ve iOS 11+ için sunulan ön uç sayesinde cihaz üzerinde VM oluşturma, yönetme ve çalıştırma mümkündür
- macOS'ta Hypervisor.framework ve QEMU ile donanım hızlandırmalı sanallaştırmayı destekler; macOS 12+ üzerinde Virtualization.framework ile macOS guest başlatılabilir
- UTM SE, iOS'ta jailbreak veya JIT bypass gerektirmeden normal bir uygulama gibi sideload edilebilen bir “slow edition” sürümüdür ve threaded interpreter kullanır; bu yöntem geleneksel yorumlayıcıdan hızlı, ancak JIT'ten yavaştır
- UTM/QEMU, en yüksek performans için dinamik kod üretimine (JIT) ihtiyaç duyar ve iOS cihazlarda JIT için jailbreak veya belirli iOS sürümlerine yönelik bypass yöntemleri gerekir
- UTM SE, boyut ve derleme süresi optimizasyonu için yalnızca ARM, PPC, RISC-V ve x86 mimarilerini içerir; her biri için 32 bit ve 64 bit varyantlar sunulur
- iOS için UTM ve UTM SE kurulum talimatları https://getutm.app/install/ adresinde, macOS için UTM ise https://mac.getutm.app/ adresinde sunulmaktadır
- Apache 2.0 lisansıyla dağıtılır, ancak çeşitli (L)GPL bileşenleri kullanır; gstreamer eklentileri statik olarak bağlanır ve kodun bir kısmı qemu'dan alındığı için yeniden dağıtımda bunun dikkate alınması gerekir
1 yorum
Hacker News yorumları
Birkaç hafta önce macOS Ventura yüklü yeni bir M2’de Fusion’ın yerine geçsin diye Windows 11 ARM’ı UTM ile kurmayı denedim ve hayal kırıklığına uğradım.
Sanal makine ile host arasında kopyala/yapıştır veya dosya paylaşımı gibi entegrasyon araçları çalışmadı; grafikler sürekli bozuluyor ve sık sık gri ekrana düşüyordu.
Kurtarma yolu yok gibi göründüğü için sanal makineyi zorla yeniden başlatmak zorunda kaldım; sürücü/yardımcı araçların tarihleri de 2012 olarak görünüyordu.
Ücretsiz bir ürün olduğu için beklentiye girme hakkım yok ve gerçekten Fusion’a geri döndüm; ama açık kaynakla ticari sanal makine çözümlerinin yerini almasını uman biri olarak bunun henüz zor olduğunu düşünüyorum.
https://docs.getutm.app/guest-support/windows/#windows-xp-an...
Grafik hatası da hiç görmedim ama oyun oynamaya çalışmıyorum; yalnızca temel masaüstü uygulamalarını kullanıyorum.
Düzeltme: Fusion 2023 Tech Preview [1], tam VMware Tools kuruyor ve kopyala/yapıştırı destekliyor.
UTM harika; snapshot özelliği eklenirse [1] varsayılan tavsiyem yapacağım gibi görünüyor. O zamana kadar Parallels kullanmaya devam edeceğim.
Bu arada resmi olmayan bir snapshot yöneticisi var [2].
1: https://github.com/utmapp/UTM/issues/5484
2: https://github.com/Metamogul/UTM-Snapshot-Manager
En yaygın sorun, paylaşılan klasörün guest sanal makinede birden kaybolması ve onu geri getirmek için sık sık geçici çözümlere başvurmak zorunda kalmamdı.
Sonra VMWare Fusion’da da aynı sorun vardı; Parallels ise fazla pahalı göründüğü için Lima’ya geçtim.
Lima’yı öğrendiğime sevindim. O da QEMU tabanlı, Linux sanal makinelerini kolayca ayağa kaldırmayı sağlıyor ve ağ paylaşımını varsayılan olarak sunuyor.
Şimdi tüm geliştirmelerimi Lima sanal makinesi içinde yapıyorum ve sorun yaşamadım. Gerekirse ekran aktarımı da yapılabilir ama şu anda VSCode sayesinde headless instance bana yetiyor.
cp -ckadar basit olabilir.Yine de gerçekten öyleyse şimdiye kadar uygulanmış olurdu diye de düşünüyorum.
clonefileile sınırlı biçimde snapshot’ı başarıyla taklit ettiğimi söyleyecektim ki, devam eden implementasyonun tam olarak bu yöntemi kullandığını gördüm.UTM’nin en büyük sorunu, bazı kişilerde çok iyi çalışırken bazı kişilerde berbat çalışması.
Bu sayfadaki thread’i yukarı aşağı okursanız “UTM kullanmak istiyorum ama çalışmıyor ya da kullanılamayacak kadar yavaş” diyenlerle “Tuhaf, bende gayet iyi çalışıyor” yanıtlarının aynı anda çok olduğunu görürsünüz.
Benim durumumda UTM kelimenin tam anlamıyla bir kez bile düzgün çalışmadı. M1 2021 Mac’te standart bir Ubuntu ARM kurulumunu https://docs.getutm.app/guides/ubuntu/ rehberine göre denedim ama başarısız oldu; şu anda yalnızca siyah ekranda yanıp sönen imlece bakıyorum.
Ne yazık ki sorunsuz çalışanlar, çalışmayanlara pek gerçek teknik destek sağlayamıyor.
Mac App Store’da UTM’ye 10 dolar bile ödedim; fakat teknik destek kanalı yalnızca Discord ve orada “lol bende çalışıyor, skill issue” tarzı tepkiler çoktu.
Tavsiyem şu: UTM denemeye değer. Hoşunuza giderse ciddi para tasarrufu sağlayabilirsiniz; benim gibi hiç çalışmazsa sonunda Parallels’a yılda 100 dolar ödemeniz gerekir. Parallels’ın muhtemelen sadece çalışması daha olası.
Parallels çalışmazsa, lisansınızı yeniletme motivasyonu olan ve başarılı olmanıza yardım etmek için sebebi bulunan bir şirketle doğrudan konuşabilirsiniz.
Boot sanal makine diskini belirli bir boyutun üstüne ayarlarsanız — çok büyük bir boyut da değil, sanırım 30GB~100GB civarıydı — sanal makinenin açılışı çok yavaşlıyor.
Yeterince büyük seçerseniz hiç boot etmiyor. Herhangi bir boyutta ikinci bir sürücü eklemek bu bug’ı tetiklemiyor.
Şirket bana M1 MacBook Pro verdi ama geliştirmeyi tamamen Linux üzerinde yapıyorum. 90’ların sonundan beri tercih ettiğim ortam Linux’tu
MacBook Pro donanımı iyi, ama macOS hantal ve bunaltıcı geldiği için üretkenliğim ciddi biçimde düşüyor
Bu yüzden UTM’de Fedora aarch64’ü tam ekran çalıştırıyorum. Gayet iyi çalışıyor ve çoğu zaman Mac’in üzerinde olduğunu unutuyorum
Yalnız macOS’un araya girmemesini ve ara sıra beni tam ekran modundan atmamasını isterdim
Kararlı pil ömründen vazgeçmek istemediğim için uyum sağladım
Bir yerlerde tam ekran modunu korumayı sağlayan bir çözüm de olabilir
Bazen alışık olduğum komut satırı argümanlarını bir yardımcı araç desteklemiyor, ama bu Mac/Linux meselesinden çok sürüm farkına yakın; şirket içindeki başka makinelere geçtiğimde de bunu birçok kez yaşadım
En büyük baş ağrısı, çok büyük olmasa da ARM ile x86 farkı. Bazen ARM’de desteklenmeyen paketlere denk geliyorum ama bu giderek daha nadir oluyor
UTM son 2 yıldır benim için kararlı bir hipervizör oldu ve bu süre içinde birçok güzel işlevsel iyileştirme de aldı
Yine de UTM’de en sevdiğim şey, adının Universal Turing Machine’in kısaltması olması. Bir sanallaştırma ürünü adı olarak neredeyse en iyisi bence
Parallels ve VMWare’de sevmediğim şey, işletim sistemleri arası entegrasyonu fazla zorlamaları. Örneğin macOS’ta Windows penceresi açmak ya da macOS’taki belgeleri doğrudan Windows’ta açmak gibi
Ben sanal makinenin ana macOS’tan izole olmasını tercih ediyorum. Bu yüzden hep ayarları kurcalayıp neyi kapatmam gerektiğini bulmam gerekiyor
GitHub proje açıklamasında “for iOS” geçtiğini biliyorum, ama bunun epey yanlış anlaşılmaya açık bir ifade olduğunu düşünüyorum
iOS kurulum seçenekleri temelde ya jailbreak, ya güncel CPU/iOS sürümlerinde mümkün olmayan bir yöntem, ya da yarı tethered durumda birkaç günde bir uygulamayı yeniden yükleyip/imzalamanız gereken bir yol
https://docs.getutm.app/installation/ios/#summary
Uygulamanın kendisini yeniden kurmak gerekmiyor, yalnızca imzalama sertifikasını yenilemek yeterli
EEA’da sideloading uygulanınca çok daha kolaylaşacağı için bunu bekliyorum
Apple, 1 milyardan fazla kişiye dağıtabileceği donanımı başarıyla yaptı ve bunların birçoğunun jailbreak’ten kazanacağı şeyler olmasına rağmen kimse bunu başaramadı
O yöntem olmadan da çalışıyor, ama üç çalıştırma yönteminin en yavaşı
Mac’te geliştirme ortamı için sanal makine çalıştıracaksanız isteyeceğiniz şey OrbStack: https://orbstack.dev/
https://lima-vm.io/
https://github.com/abiosoft/colima
Lima önerildi; macOS için WSL2’ye biraz benziyor: https://lima-vm.io
İçeride ne kullandığını pek bilmiyorum ama bende çok iyi çalıştı
colima, Lima’nın üzerine konmuş bir katman; docker-machine/boot2docker tarzında sanal makineyi kolayca ayarlıyor
UTM temel kullanım için harika, ama performansı çok kötü olduğu için günlük işlerde ana araç olarak pek gerçekçi değildi
Mac’te Parallels’in yerini tutacak bir şey yok ve parasının hakkını fazlasıyla veriyor
Sanal makine aarch64 ise performans şaşırtıcı derecede iyi ve UTM’yi gönül rahatlığıyla önerebilirim