Apple Silicon VM’leri Neden Bu Kadar Farklı?
(eclecticlight.co)Apple Silicon VM’leri neden farklı?
- Apple Silicon Mac’lerde macOS sanal makineleri (VM) çalıştırmak çok popüler görünmeyebilir, ancak bu Apple için uzun zamandır önemli hedeflerden biri.
- M serisi Mac’lerde sanallaştırma yazılımı kullandığınızda, bunun Intel Mac’lerde macOS ve diğer işletim sistemlerini sanallaştırmaktan ne kadar farklı olduğunu görebilirsiniz.
- Bu yazı, sanallaştırmanın neden önemli olduğunu ve nasıl bu kadar farklı hale geldiğini açıklıyor.
Apple Silicon’ın üç ayağı
- Craig Federighi, Haziran 2020’deki WWDC’de Apple Silicon’ın üç ayağını açıkladı: her iki mimaride de çalışan Universal uygulamalar, Intel kodunu Arm komutlarına çeviren Rosetta 2 ve sanallaştırma.
- Apple geliştirici geçiş kitini piyasaya sürmeden önce bile Andreas Wendker, Linux’u konuk olarak çalıştıran Parallels Desktop’ın ön sürümünü göstermişti, ancak Windows’tan söz edilmedi.
Sanallaştırmanın ilk dönemi
- Sanallaştırmanın ilk döneminde, doğrudan donanım üzerinde çalışan Type 1 hypervisor’lar ile, ana işletim sisteminin donanım üzerinde çalıştığı ve hypervisor’un onun üstünde çalıştığı Type 2 (hosted) sistemler olarak ayrım yapılıyordu.
- Masaüstü bilgisayarlarda VMware Fusion, Parallels Desktop ve Oracle VirtualBox gibi Type 2 sanallaştırma ürünleri daha yaygındır.
Donanım desteği ve sanallaştırma
- Hypervisor için donanım desteği olduğunda, değiştirilmemiş konuk işletim sistemlerini çalıştırmak daha kolay olur.
- Intel’in VT-x özellik seti veya Arm CPU’ların AArch64 sanallaştırması kullanılabilir.
- Aygıt desteği sorunları sanallaştırma framework’ü içinde çözülebilir ya da sanallaştırma yazılımı tarafından ele alınabilir.
Apple Silicon çiplerinin benzersizliği
- Apple Silicon çiplerindeki tüm donanım aygıtları, Intel Mac’lerdeki karşılıklarından farklıdır.
- Apple bunları dış kullanım için tamamen belgelemek istese bile, Intel Mac’lerdeki aygıt desteği için gereken mühendislik çabası üçüncü taraflar için fazla pahalı olurdu.
- Bu nedenle, bir hypervisor’dan başlayıp tam bir sanallaştırma yazılımı oluşturmayı beklemek pratik değildi; ayrıca Apple ve kullanıcıların beklediği yüksek performansa ulaşmak da zor olurdu.
Virtio sürücüleri ve sanallaştırma
- Apple bunun yerine, aygıt desteğini doğrudan macOS’e yerleştiren Virtio sürücülerini geliştirdi.
- Virtio, I/O aygıtları için bir soyutlama katmanı sunan bir standarttır; konuk işletim sistemi bir dosya açmak istediğinde bunu Virtio frontend depolama aygıtı para sürücüsüne iletir, oradan da Virtio backend sürücüsü üzerinden depolama aygıtıyla etkileşim kurulur.
- Bir sanallaştırma uygulaması geliştirmek, gerekli Virtio aygıtlarını yapılandırıp açmak ve işi konuk, Virtio ve host’un işlemesini sağlamak anlamına gelir.
Apple’ın Virtio tercihi
- Apple’ın Virtio tercihi, Linux’un zaten iyi bir Virtio desteğine sahip olmasından etkilendi; ancak o dönemde macOS’te Virtio desteği yoktu.
- Apple mühendisleri, Monterey’in çıkışından önceki birkaç yıl boyunca macOS’e Virtio desteği ekledi.
- macOS’in Virtio uygulaması; klavye ve işaretleme aygıtları, paylaşımlı pano ('Spice') ve Metal ile GPU desteği üzerinden yüksek performanslı grafik sağlayan uzantılar içerir.
Virtio modelinin avantajları
- Virtio modelinde desteği işletim sistemi sağlar; bu da VMware ve Parallels gibi üreticiler için geliştirme maliyetlerini düşürürken ürünlerinin ticari değerini de azaltır.
- Apple, Apple Silicon’da sanallaştırmanın hangi donanımı ve özellikleri destekleyeceğine karar verir.
Sanallaştırmanın geleceği ve esneklik
- VM içinde eski macOS sürümlerini çalıştırmak, kullanıcıların mevcut macOS’te Rosetta 2 desteği sona erdikten sonra bile yalnızca Intel’e özel uygulamaları çalıştırabilmesini sağlayabilir.
- Apple Silicon Mac’lerde, minimum macOS sürümüyle uyumlu olmayan yazılımlar çalıştırılabilir.
- Linux veya macOS kullanarak geliştiriciler Docker gibi hafif VM paketleri dağıtabilir.
GN⁺ görüşü
- Apple Silicon Mac’lerdeki sanallaştırma, geleneksel Intel tabanlı sanallaştırmadan farklı bir yaklaşım benimsiyor; bu da Apple’ın donanım ve yazılım entegrasyonunu güçlendirme stratejisinin bir parçası gibi görünüyor.
- Virtio üzerinden sanallaştırma, geliştiricilere maliyet etkin bir çözüm sunarken Apple’ın kontrolü altında performans optimizasyonuna da olanak tanıyor.
- Sanallaştırma teknolojisindeki ilerleme, uzun vadede Apple Silicon Mac kullanıcılarına çeşitli yazılım ortamları sunma olasılığını açıyor; özellikle eski uygulamaları ve sistemleri desteklemede faydalı olması bekleniyor.
2 yorum
Sanallaştırmanın geleceği kısmı biraz garip görünüyor.
Sanallaştırma mümkün diye mevcut sistemlerin mutlaka uyumlu olacağı anlamına gelmez. Sonuçta bir yerde x86 komutlarının arm komutlarına çevrilmesi gerekir.
Eğer bunu donanım ya da OS (Rosetta?) desteklemiyorsa, sonunda VM tarafında emülasyon yapmaktan başka çare kalmaz; bu durumda performans kaybı çok ciddi olur.
Şu anda da Apple Silicon Mac'te x86 için Linux kurmak mümkün, ama performans delicesine yavaş. (Geçen yıl mıydı, x86 binary'si gerektiği için build amaçlı kurmayı denemiştim ama hemen vazgeçtim.)
Hacker News görüşleri