3 puan yazan GN⁺ 2023-09-02 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2023-09-02
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.

    • Kopyala/yapıştır kesinlikle çalışıyor. Gün boyu gidip gelerek kullanıyorum. SPICE araçlarını kurup kurmadığını kontrol etmek gerekebilir.
      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.
    • UTM’yi gayet iyi bir QEMU sarmalayıcısı olarak kullanıyorum; ona böyle davranınca harika.
    • Fusion’da Windows ARM sanal makineleriyle kopyala/yapıştır ve paylaşılan klasörlerin çalışıp çalışmadığını merak ediyorum. En son kontrol ettiğimde VMware Tools bu özellikleri henüz desteklemiyordu.
      Düzeltme: Fusion 2023 Tech Preview [1], tam VMware Tools kuruyor ve kopyala/yapıştırı destekliyor.
      1. https://customerconnect.vmware.com/downloads/get-download?do...
    • Şaşırtıcı değil. Çünkü OpenGL çalışmıyor. Günümüzde birçok uygulamanın OpenGL kullandığını düşününce bu, onu epey kullanışsız hale getiriyor.
    • MS RDP aracı ile bağlanmak daha iyi bir kullanım deneyimi sağlayabilir.
  • 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

    • Gerçek sistemde değil sanal makine içinde geliştirme yapma alışkanlığımı sürdürdüm ve M1 MacBook Pro’da ARM64 Linux sanal makinesi çalıştırmak için UTM’yi uzun süre kullandım; fakat dosya paylaşımı sorunları sürekli uğraştırdı.
      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.
    • APFS zaten tüm dosya türleri için yazarken kopyalama snapshot’larını destekliyor. UTM’nin snapshot özelliği muhtemelen bu işlevi sarmalayan bir şey olacak.
      cp -c kadar basit olabilir.
      Yine de gerçekten öyleyse şimdiye kadar uygulanmış olurdu diye de düşünüyorum.
    • clonefile ile 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.
    • TPM emülasyonu ve ansible/vagrabt desteği olup olmadığını merak ediyorum.
  • 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.

    • En güncel Debian’ı web sitesinden indirip denedim ve garip bir sorun dışında problem yaşamadım.
      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.
    • VirtualBox da var.
  • Ş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

    • Fedora Asahi Linux’u kesinlikle takip edeceğim gibi görünüyor
    • Linux’tan macOS’a geçiş deneyimi, eninde sonunda macOS’un sorunlarına katlanıp uyum sağlamak ya da üçüncü taraf çözümlerle katlanılabilir hale getirmek yönünde oluyor. Bazen ikisini de biraz yapıyorsunuz
      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
    • Üretkenliği tam olarak neyin düşürdüğünü merak ediyorum. Mac’te bash terminali açıp kullanınca Linux’a neredeyse aynı geliyor
      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
    • Böyle kullanırken performans kaybının ne düzeyde olduğunu düşündüğünü merak ediyorum. Büyük değilse iyi bir çözüm gibi görünüyor
    • Asahi Fedora’nın birkaç gün içinde çıkacağı söyleniyor. Umut var
  • 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

    • Parallels’te güvenlik ayarları sekmesinde “Isolate VM from macOS” adlı tek bir seçenek var. Tüm karşılıklı entegrasyonları devre dışı bırakıyor
    • Parallels’i kurduğum zamanı hatırlıyorum. Bir dosyaya her çift tıkladığımda onu Windows’un Notepad’iyle açmaya çalışıyordu
  • 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

    • Apple geliştirici hesabınız varsa 1 yıl boyunca geçerli kalan uygulamayı sideload edebilirsiniz. Ben öyle kullanıyorum
    • Eskiden reprosion adlı bir uygulamayı denemiştim; imzalamayı iOS cihaz üzerinde yapıp otomatikleştirebiliyorsunuz. Yarı tethered jailbreak kurarken kullanmıştım ve sınırı 7 gün
      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
    • “Jailbreak güncel ortamlarda imkânsız” noktasını düşününce bu etkileyici
      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ı
    • Hedef yalnızca uygulama sideload etmekse yarı tethered yöntem jailbreak’ten aslında daha az şüpheli sayılabilir
      O yöntem olmadan da çalışıyor, ama üç çalıştırma yönteminin en yavaşı
    • EU sideloading’in nasıl çalışacağını bir an önce görmek istiyorum. Düzgün uygulanmasını umuyorum
  • Mac’te geliştirme ortamı için sanal makine çalıştıracaksanız isteyeceğiniz şey OrbStack: https://orbstack.dev/

    • Beta bitince ticari kullanım için geliştirici başına aylık 8 dolar olacak
    • Çoğu kullanım senaryosu için Lima ve Colima’nın yeterli olduğunu düşünüyorum
      https://lima-vm.io/
      https://github.com/abiosoft/colima
    • Aşağıdaki gibi bir ifadeyle avantajını öne çıkaran bir araç için vagrant desteğinin olmaması dikkat çekiyor

      Kullanım senaryonuz ne olursa olsun OrbStack, iş akışınızı sadeleştiren ve daha hızlı ilerlemenize yardımcı olan özellikler sunar

    • Bununla karmaşık ağ yapılandırmaları oluşturulup oluşturulamayacağını merak ediyorum. UTM’deki en büyük şikâyetim, sanal makineye yalnızca bir ağ arayüzü eklenebilmesi
  • 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ı

    • Sanal makine oluştururken QEMU ile Virtualization.framework arasında seçim yapabiliyorsunuz
      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

    • Apple Silicon’da x86 sanal makine çalıştırıyorsanız performansın berbat olduğuna katılıyorum. Bunun UTM’nin hatasından çok QEMU sorunu olduğuna eminim
      Sanal makine aarch64 ise performans şaşırtıcı derecede iyi ve UTM’yi gönül rahatlığıyla önerebilirim