12 poin oleh GN⁺ 2023-12-31 | 2 komentar | Bagikan ke WhatsApp

Mengapa VM Apple Silicon berbeda?

  • Menjalankan mesin virtual (VM) macOS di Mac Apple Silicon mungkin tampak tidak populer, tetapi ini telah lama menjadi salah satu tujuan penting bagi Apple.
  • Saat menggunakan program virtualisasi di Mac seri M, terlihat betapa berbedanya hal ini dibanding memvirtualisasikan macOS dan sistem operasi lain di Mac Intel.
  • Tulisan ini menjelaskan mengapa virtualisasi penting, dan bagaimana semuanya bisa berubah sedemikian jauh.

Tiga pilar Apple Silicon

  • Pada WWDC Juni 2020, Craig Federighi mengumumkan tiga pilar Apple Silicon: aplikasi universal yang berjalan di kedua arsitektur, Rosetta 2 yang menerjemahkan kode Intel ke instruksi Arm, dan virtualisasi.
  • Bahkan sebelum Apple merilis Developer Transition Kit, Andreas Wendker sudah mendemonstrasikan versi pra-rilis Parallels Desktop yang menjalankan Linux sebagai guest, tetapi tidak ada penyebutan soal Windows.

Masa awal virtualisasi

  • Pada masa awal virtualisasi, ada perbedaan antara hypervisor tipe 1 yang berjalan langsung di atas hardware, dan tipe 2 (hosted) di mana sistem operasi utama berjalan di atas hardware lalu hypervisor berjalan di atasnya.
  • Di komputer desktop, produk virtualisasi tipe 2 seperti VMware Fusion, Parallels Desktop, dan Oracle VirtualBox lebih umum digunakan.

Dukungan hardware dan virtualisasi

  • Jika ada dukungan hardware untuk hypervisor, akan lebih mudah menjalankan sistem operasi guest tanpa modifikasi.
  • Ini bisa menggunakan kumpulan fitur VT-x dari Intel atau virtualisasi AArch64 pada CPU Arm.
  • Masalah dukungan perangkat bisa diselesaikan oleh framework virtualisasi atau ditangani oleh program virtualisasi.

Keunikan chip Apple Silicon

  • Semua perangkat hardware pada chip Apple Silicon berbeda dari perangkat padanannya di Mac Intel.
  • Bahkan jika Apple ingin mendokumentasikannya sepenuhnya untuk penggunaan eksternal, upaya engineering yang dibutuhkan untuk dukungan perangkat seperti pada Mac Intel akan terlalu mahal bagi pihak ketiga.
  • Karena itu, berharap membangun software virtualisasi lengkap hanya dengan memulai dari hypervisor bukanlah pendekatan yang realistis, dan juga akan sulit mencapai performa tinggi yang diharapkan Apple dan penggunanya.

Driver Virtio dan virtualisasi

  • Sebagai gantinya, Apple membangun driver Virtio dalam bentuk dukungan perangkat yang tertanam di macOS.
  • Virtio adalah standar yang menyediakan lapisan abstraksi untuk perangkat I/O; ketika sistem operasi guest mencoba membuka file, permintaan itu diteruskan ke para-driver perangkat penyimpanan frontend Virtio, lalu dari sana berinteraksi dengan perangkat penyimpanan melalui driver backend Virtio.
  • Membuat aplikasi virtualisasi berarti menyiapkan dan membuka perangkat Virtio yang diperlukan, lalu membiarkan guest, Virtio, dan host menangani pekerjaannya.

Pilihan Apple terhadap Virtio

  • Pilihan Apple terhadap Virtio dipengaruhi oleh fakta bahwa Linux sudah memiliki dukungan Virtio yang baik, meskipun saat itu macOS belum memilikinya.
  • Para engineer Apple membangun dukungan Virtio ke dalam macOS selama beberapa tahun sebelum Monterey dirilis.
  • Implementasi Virtio di macOS mencakup fitur tambahan yang mendukung keyboard dan perangkat penunjuk, clipboard bersama ('Spice'), serta grafis berperforma tinggi melalui dukungan Metal dan GPU.

Keunggulan model Virtio

  • Dalam model Virtio, sistem operasi yang menyediakan dukungan, dan ini mengurangi biaya pengembangan bagi vendor seperti VMware dan Parallels, sekaligus menurunkan nilai komersial produk mereka.
  • Apple menentukan hardware dan fitur apa saja yang didukung virtualisasi di Apple Silicon.

Masa depan virtualisasi dan fleksibilitas

  • Menjalankan versi macOS yang lebih lama di dalam VM memungkinkan pengguna tetap menjalankan aplikasi khusus Intel bahkan setelah dukungan Rosetta 2 dihentikan di macOS saat ini.
  • Ini juga memungkinkan menjalankan software yang tidak kompatibel dengan versi minimum macOS pada Mac Apple Silicon.
  • Dengan Linux atau macOS, developer dapat mendistribusikan paket VM ringan seperti Docker.

Opini GN⁺

  • Virtualisasi di Mac Apple Silicon mengambil pendekatan yang berbeda dari virtualisasi berbasis Intel tradisional, dan ini tampaknya menjadi bagian dari strategi Apple untuk memperkuat integrasi hardware dan software.
  • Virtualisasi melalui Virtio memberi developer solusi yang hemat biaya, sekaligus memungkinkan optimasi performa di bawah kendali Apple.
  • Perkembangan teknologi virtualisasi membuka kemungkinan jangka panjang bagi pengguna Mac Apple Silicon untuk memiliki beragam lingkungan software, terutama berguna untuk mendukung aplikasi dan sistem lama.

2 komentar

 
molla 2024-01-02

Bagian tentang masa depan virtualisasi tampak agak aneh.
Bisa melakukan virtualisasi tidak berarti otomatis bisa kompatibel dengan sistem yang sudah ada. Pada akhirnya, di suatu titik, instruksi x86 harus diterjemahkan menjadi instruksi arm.
Jika ini tidak didukung oleh HW atau OS (Rosetta?), pada akhirnya tidak ada pilihan selain melakukan emulasi di tingkat VM, dan dalam kasus ini penurunan performanya sangat besar.
Bahkan sekarang pun, Anda bisa memasang Linux untuk x86 di Mac Apple Silicon, tetapi performanya sangat lambat. (Tahun lalu, kalau tidak salah, saya sempat memasangnya untuk keperluan build karena membutuhkan binary x86, lalu langsung menyerah.)

 
GN⁺ 2023-12-31
Komentar Hacker News
  • Windows memiliki banyak fitur yang bergantung pada Hyper-V, dan saat ini diaktifkan, Windows tidak melakukan boot secara langsung; Hyper-V yang akan dimulai lebih dulu sehingga sistem Windows utama berjalan di dalam VM berprivilegi.
  • Ada yang mencari informasi tentang status terkini virtualisasi Windows/Linux x86-64 di Apple Silicon, dan menyayangkan bahwa artikel tersebut tidak membahas aplikasi penting terkait hal ini.
  • Ada harapan agar semua pengguna OS masuk ke VM OS yang terisolasi, sehingga pengguna dapat mempertahankan kepemilikan atas komputer Apple mereka.
  • macOS hanya dapat menjalankan dua VM secara bersamaan, jadi jika ingin menggunakan Mac mini sebagai build server, sebaiknya membeli model termurah.
  • Ada yang ingin menggunakan VM macOS lewat Parallels untuk pengembangan, tetapi penggunaannya terbatas karena tidak bisa masuk dengan Apple ID.
  • Ada kebingungan mengapa Docker berjalan cepat di platform Linux/amd64 dengan performa yang nyaris native, sementara VM x86 UTM jauh lebih lambat.
  • Ada pertanyaan tentang perkembangan layer virtio untuk Windows, siapa yang mengembangkannya, dan apakah ada kemungkinan akan berfungsi dalam waktu dekat.
  • Ada penyebutan driver yang ditulis oleh Rusty Russell; ia dinilai membagikan wawasan yang mendalam tentang pengembangan perangkat lunak, sehingga direkomendasikan untuk diikuti di Twitter.
  • Ada pertanyaan apakah semua VM desktop komersial (VMWare Fusion/Parallels/UTM/Vimy) kini menggunakan model virtio, dan apakah secara teoretis semuanya seharusnya membuat Windows ARM64 bekerja dengan cara yang mirip.
  • Selama sekitar satu tahun, ada yang mencoba mencari cara membuat Qemu VM di chip Apple Silicon M2 hanya dengan satu perintah, tetapi mengalami kesulitan, padahal menjalankan Alpine Linux + Sway WM di Qemu pada macOS atau AsahiLinux relatif sederhana di x86-64.