Menjalankan Mac OS X di Infinite Mac
(blog.persistent.info)- Infinite Mac kini dapat menjalankan Mac OS X awal di browser, dengan dukungan terbaik saat ini untuk 10.1 dan 10.3
- Setelah jalur DingusPPC yang ada terhambat oleh kernel panic dan masalah grafis, arah pengembangan beralih ke port PearPC, yang dibuat untuk emulasi Mac OS X pada awal 2000-an
- Performanya masih lambat: Mac OS X 10.2 membutuhkan hampir 2 menit sampai benar-benar dapat digunakan, dan optimisasi hanya memangkas sekitar 15 detik
- Bug yang melewatkan pemeriksaan bit
FPpada pemrosesan floating-point PowerPC menyebabkan masalah rendering Dock dan jendela Finder; proses perbaikannya juga meningkatkan stabilitas DingusPPC - Infinite HD disusun ulang untuk memuat software indie era awal Mac OS X dan alat Developer CD, tetapi perbedaan HFS/HFS+ serta kompatibilitas
.dmglama masih menjadi batasan
Menjalankan Mac OS X awal di browser
- Infinite Mac kini dapat menjalankan Mac OS X awal
- Mac OS X 10.1 dan Mac OS X 10.3 adalah versi yang paling baik didukung
- Kecepatan eksekusinya tidak cepat, tetapi rasanya mendekati pengalaman saat itu, ketika hardware sebenarnya juga tidak jauh lebih baik
- Infinite HD, yang menyediakan software sesuai zamannya, juga disusun ulang dengan fokus pada software indie periode awal Mac OS X
Beralih arah ke port PearPC
- Awalnya, DingusPPC digunakan untuk mencoba menjalankan Mac OS X di Infinite Mac, tetapi sekitar musim panas lalu pengembangannya tidak bisa melewati kernel panic dan kerusakan grafis
- Mode eksekusi deterministik dicoba untuk mempersempit cakupan masalah, tetapi langkah berikutnya tidak jelas
- Sebagai alternatif, PearPC dipilih
- PearPC dibuat pada awal 2000-an untuk mengemulasikan Mac OS X di mesin x86 Windows dan Linux
- Setelah transisi Intel, minat terhadapnya menurun, dan codebase-nya pada dasarnya dianggap mandek
- Fakta bahwa kanjitalk755 telah membuat branch eksperimen PearPC yang dapat dibuild dan dijalankan di macOS modern menjadi titik awal porting
- PearPC adalah codebase multiplatform dan tidak banyak memakai konsep yang sulit di-port seperti thread, sehingga relatif mudah dipindahkan ke WebAssembly/Emscripten dan runtime Infinite Mac
- Dalam beberapa hari, prosesnya sudah mencakup build, output video, pemuatan disk image, serta penyambungan input mouse dan keyboard
- Hasilnya, Mac OS X 10.2 dapat dijalankan di browser dengan lebih stabil dibanding sebelumnya
Optimisasi performa dan bottleneck yang tersisa
- PearPC menjalankan Mac OS X 10.2 dengan lebih stabil, tetapi terasa lebih lambat dibanding DingusPPC
- Benchmark harness DingusPPC dipindahkan ke PearPC, lalu pekerjaan optimisasi DingusPPC yang sudah ada diterapkan ulang pada PearPC
- Kedua emulator sama-sama interpreter murni berbasis lookup table, sehingga pekerjaannya relatif langsung
- Waktu boot Mac OS X 10.2 berkurang sekitar 15 detik
- Setelah optimisasi pun, butuh hampir 2 menit sampai benar-benar dapat digunakan
- UI Infinite Mac ditambahkan pemberitahuan bahwa boot Mac OS X bisa lambat
- Bottleneck terbesar adalah ketiadaan MMU cache pada PearPC
- Semua load/store diproses mahal karena harus melewati perhitungan alamat yang kompleks
- DingusPPC memiliki cache hierarkis yang lebih matang dan tampaknya efektif
- PearPC bisa lebih stabil daripada DingusPPC untuk menjalankan 10.2–10.4, tetapi codebase-nya kurang berprinsip
- Menggunakan firmware dan driver video kustom
- Hanya mengimplementasikan sebagian instruksi PowerPC yang diperlukan Mac OS X
- Dalam jangka panjang, harapannya DingusPPC menjadi pilihan yang cepat, stabil, dan akurat
Pemeriksaan bit FP dan bug rendering
- Saat menerapkan pendekatan “tabel decoding terpadu” pada interpreter PearPC per keluarga opcode, muncul regresi dari perubahan operasi floating-point
- Terjadi glitch rendering pada Dock
- Jendela Finder tidak terbuka
- Dispatch untuk grup opcode 59 dan 63 tidak boleh hanya berupa lookup sederhana; ia harus lebih dulu memeriksa bit
FPpada Machine State Register- Jika bit
FPtidak disetel, emulator harus melempar pengecualian “floating point unavailable”
- Jika bit
- Chip PowerPC yang digunakan Mac saat itu memiliki FPU, tetapi pengecualian tersebut sering terjadi saat Mac OS X mulai berjalan
- Source kernel xnu pada masa itu memiliki lokasi yang menghapus bit
FPdan exception handler - Ini tampaknya optimisasi untuk menghindari penyimpanan dan pemulihan register FPU saat context switch
- Source kernel xnu pada masa itu memiliki lokasi yang menghapus bit
- Setelah pemeriksaan
FPyang sama diimplementasikan pada kode dispatch yang dioptimalkan, masalah rendering hilang - Bug yang sama juga masih ada di DingusPPC
- DingusPPC tidak memeriksa bit
FPdan selalu meloloskan instruksi floating-point - Setelah perbaikan cepat yang memunculkan pengecualian, glitch rendering Mac OS X hilang
- Kemudian, implementasi resmi dan perbaikan untuk menghindari penurunan performa masuk, sehingga stabilitas DingusPPC meningkat besar
- DingusPPC tidak memeriksa bit
- Dengan menggabungkan kedua emulator, rentang Mac OS X awal yang dapat dijalankan menjadi lebih luas
- DingusPPC dapat menjalankan 10.1 dengan stabil
- PearPC tidak dapat menjalankan 10.1 dengan stabil
- 10.0 masih tidak stabil, dan Public Beta langsung mengalami kernel panic
Penyusunan ulang Infinite HD
- Salah satu daya tarik Infinite Mac adalah Infinite HD, yang berisi software sesuai zamannya dan ikut di-mount
- Seiring dukungan Mac OS X, dibuat versi terpisah yang melampaui aplikasi Mac klasik era 80–90-an dan memuat software era awal Mac OS X
- Selain aplikasi yang secara pribadi disukai, daftar diperluas berdasarkan saran
- Disk image dibuat dengan memperluas metode otomasi yang sudah ada
- Karena pada periode awal Mac OS X disk image sangat banyak digunakan, ditambahkan fitur untuk memasukkan
.dmgsebagai folder tambahan di dalam image yang dibuat
- Karena pada periode awal Mac OS X disk image sangat banyak digunakan, ditambahkan fitur untuk memasukkan
.dmglama memiliki banyak variasi meskipun ekstensinya sama, sehingga tidak selalu dapat di-mount denganhdiutildi macOS modern- Pada akhirnya, partisi raw lebih dulu diekstrak dengan dmg2img
- Setelah itu digunakan workaround dengan membuat ulang disk image baru yang dapat di-mount dan disalin oleh macOS modern
- Dalam pengumpulan software sebenarnya, software Mac OS X awal hingga pertengahan 2000-an merupakan area yang kurang terjangkau
- Macintosh Garden juga memiliki sebagian, tetapi prioritasnya tidak tinggi
- Dari vendor aslinya, banyak yang sudah diturunkan karena terlalu lama
- Wayback Machine banyak digunakan
- Developer CD pendamping untuk tiap versi Mac OS X juga dipasang agar alat seperti Project Builder dan Interface Builder dapat digunakan
Sistem file dan mounting banyak disk
- Proses build disk berpusat pada HFS, tetapi default pada periode tersebut adalah HFS+
- HFS+ menyediakan fitur yang lebih canggih, seperti nama file yang lebih panjang dan karakter Unicode arbitrer
- File disk image yang bergantung pada fitur HFS+ tidak dapat dikonversi tanpa kehilangan data
- Untuk sebagian besar software, ini bukan masalah besar
- Untuk me-mount hingga tiga drive—disk boot, Infinite HD, dan Saved HD—pendekatan dari fork DingusPPC dipinjam
- Saat startup, disk image multi-partisi dibuat secara langsung dari sejumlah image partisi arbitrer yang ditentukan
Mode Aqua dan UI situs
- Untuk melengkapi penambahan Mac OS X, mode Aqua juga ditambahkan ke kontrol situs Infinite Mac
- Sebelumnya sudah ada tampilan classic, Platinum, dan NeXT
- Dari desain Aqua, gaya 10.0/10.1 dipilih
- Versi 10.3 dan 10.4 yang lebih tertahan sebenarnya lebih disukai, tetapi sisi nostalgia 10.0/10.1 dinilai lebih kuat
- Agar memakai aset gambar yang sama dengan OS, resource asli diekstrak alih-alih memakai screenshot
- Karena aset Aqua banyak memakai elemen semi-transparan, screenshot biasa tidak cukup
- resource_dasm dan pxm2tga digunakan untuk mengekstrak aset asli dari
Extras.rsrc
Menjalankan Classic, mode verbose, dan temuan kecil
- Karena beberapa image dapat di-mount, partisi Mac OS 9 dapat disertakan untuk memulai lingkungan kompatibilitas Classic
- Fitur ini hanya berfungsi di 10.1
- PearPC tidak mendukung Classic
- Hasilnya, aplikasi Mac klasik dapat diemulasikan di dalam Mac OS X yang diemulasikan di dalam mesin virtual WebAssembly
- Dengan image Mac OS X, perubahan perilaku Calculator juga dapat diamati
- Hingga 10.3, tidak ada perilaku menekan
=berulang kali - Di 10.4, perilaku tersebut sudah ada
- Hingga 10.3, tidak ada perilaku menekan
- Karena boot Mac OS X lambat, mode verbose diekspos untuk menampilkan lebih banyak progres
- PearPC memiliki cara bawaan
- Pada DingusPPC, ditambahkan fitur untuk menetapkan variabel Open Firmware saat startup
- Di dialog instance kustom Infinite Mac, ini diekspos sebagai switch “Debug Mode”
- Domain
macosx.appjuga sempat dicoba untuk diamankan, tetapi sudah terdaftar- Domain tersebut dialihkan ke video YouTube tertentu
- YouTuber dalam video itu menjawab bahwa bukan dia yang mendaftarkannya
Kandidat berikutnya dan kemungkinan QEMU
- Dengan dukungan Mac OS X, Infinite Mac telah mencapai titik yang dekat dengan macOS modern
- Setelah itu masih ada dua transisi CPU dan beberapa perubahan kecil
- Tiger memiliki bentuk yang pada dasarnya masih dapat dikenali bahkan oleh pengguna macOS saat ini
- Untuk target komputasi retro yang lebih mendalam atau lebih khusus, masih ada A/UX, Lisa, Pippin, dan Newton
- Dulu QEMU dianggap sebagai proyek yang terlalu besar untuk di-port ke WebAssembly, dan performa qemu.js juga tampak kecil kemungkinan bisa digunakan
- Belakangan, qemu-wasm dan presentasi FOSDEM membuat kemungkinan itu kembali terlihat
- Performa demo guest Linux cukup memberi semangat
- Dalam benchmark dadakan yang menghitung checksum MD5 untuk data 100MB, qemu-wasm membutuhkan 8 detik, DingusPPC 13 detik, dan PearPC 18 detik
- Dengan Mac OS X sebagai guest grafis, masih ada jarak yang besar
1 komentar
Komentar Hacker News
Memang PearPC bertahan dengan baik selama beberapa tahun, tetapi setelah maintainer aslinya meninggal dalam kecelakaan kereta, proyek itu kehilangan sebagian besar momentumnya
Saat itu saya adalah pengguna fanatik sekaligus anggota komunitasnya, dan sampai sekarang pun kalau mengingatnya saya masih meneteskan air mata
https://www.wired.com/2004/07/pearpc-coauthor/
Infinite Mac adalah koleksi rilis sistem dan perangkat lunak Macintosh klasik serta NeXT, yang dibuat agar mudah diakses dari browser web
https://infinitemac.org/
Salah satu bagian paling menarik dalam tulisan itu adalah tautan ke emulator CPU PPC di bawah 700 baris
https://github.com/kwhr0/macemu/blob/master/SheepShaver/src/...
Keringkasan seperti ini sering terlihat pada emulator 6502, tetapi jarang pada arsitektur yang relatif modern
Saya tidak bisa membayangkan bagaimana rasanya bagi penggemar teknologi yang kini berusia 20 tahun ketika berhadapan dengan OS X 10.4, 10.5, atau 10.6
Dengan agak getir, saya teringat gambaran orang dari Zaman Kegelapan yang berdiri di depan patung klasik sambil berpikir, “Bagaimana umat manusia dulu bisa membuat sesuatu seperti ini?”
Namun selera memang berubah. Orang Zaman Kegelapan yang sebenarnya mungkin berpikir, “Kemerosotan pagan macam apa ini?”, dan orang sekarang bisa saja melihatnya sebagai, “Ikon yang tampak seperti foto? Norak!”
Instalasi aplikasi juga masih “seret aplikasi dari dmg ala IKEA”, dengan sesekali zip atau pkg. Jendela Finder sudah punya bookmark sidebar kiri dan Dock juga bekerja dengan cara yang sama. Memang sempat ada periode Dock 3D yang aneh, sepertinya di Leopard
Tidak ada Mac App Store, tetapi sekarang pun hampir tidak ada yang memakainya, dan Spotlight baru muncul di Tiger. Ini jauh lebih mudah dikenali dibanding perbedaan Windows XP dan 11. XP bekerja dengan cara yang cukup berbeda dari 11
Saat itu mengutak-atik folder sistem tidak serumit sekarang
Pada awal Abad Pertengahan pun ada banyak artefak dan bangunan indah. Memang tidak banyak yang tersisa, tetapi contoh yang pernah saya lihat langsung saja ada pemakaman kapal Sutton Hoo dan gereja Anglo-Saxon
Screenshot-nya benar-benar mengejutkan. Secara pribadi, Mac OS X terlihat jauh lebih bagus daripada Mac OS masa kini
Jelas dan tertata, memberi kesan “oke, dengan lingkungan ini saya bisa bekerja!”
Mac OS sekarang terasa seperti “tolong, saya jatuh ke dalam sekantong permen, bagaimana cara keluarnya?” Saya penasaran apakah orang lain juga merasakan hal yang sama
Windows juga sama. Hampir tidak ada pekerjaan yang dilakukan dengan sistem operasi itu sendiri, aplikasi native juga jarang, dan kebanyakan berbasis browser atau aplikasi lintas platform yang memakai sistem desain pihak ketiga
Saya juga sudah muak dengan perusahaan software yang berpura-pura membuat software dengan baik
10.4 Tiger juga mirip, tetapi bilah menu atasnya mengilap sehingga lama-lama kurang menarik. 10.5 Leopard punya Dock 3D yang mencolok dan norak, bilah menu atas transparan, serta gradien yang lebih modern
Saat itu terlihat keren, tetapi gradiennya tidak sekeren brushed metal dan Aqua. Setelah itu semuanya agak membosankan
Cukup mengejutkan bahwa ini berhasil dengan proyek pearpc yang sudah tidak punya commit terakhir selama lebih dari 10 tahun: https://github.com/sebastianbiallas/pearpc
Fork miliknya ada di https://github.com/mihaip/pearpc
Ia menambahkan target WebAssembly, tetapi tampaknya tetap mempertahankan dukungan x86-64
Selain itu, ia juga menulis di blog tentang proses memasukkan NextStep ke Infinite Mac: https://blog.persistent.info/2024/03/infinite-mac-nextstep.h...
Hal-hal seperti ini benar-benar bagus. Pada masa itu, Aqua terasa seperti wahyu
Itu adalah Unix arus utama dengan kegunaan yang bahkan bisa dipakai nenek, serta dukungan aplikasi pihak ketiga utama, jadi benar-benar sukses besar
Saya berharap sebagian elemen seperti itu kembali di Liquid Glass, tetapi jujur saja Aqua masih terlihat bagus
Yang luput dari tiruan-tiruannya seperti Windows Vista atau tema Linux adalah betapa konsisten dan mudah dipakainya semuanya. Tampilannya keren, tetapi yang lebih penting, ia benar-benar bekerja dengan baik
Senang rasanya melihat UI yang ada dalam ingatan. Saya merindukan Platinum sekitar era Macintosh OS 8, dan UI MacOS X yang terasa ingin dijilat sekitar OS X 10.3 dan 10.4
Saya juga menyukai OpenLook dari SunOS/Slowlaris, UI NeXTStep/OpenStep, Microsoft Windows 2000 yang merupakan puncak sebelum Winblows XP yang seharusnya tidak pernah mencampur oranye dan hijau, serta teringat kesenangan dari SGI IRIX dan keluarga Motif
Elemen UI hampir selalu dapat dibedakan, dapat dipahami, dan konsisten. Saat mengoperasikan kontrol UI standar, kita tahu persis apa yang akan terjadi bahkan sebelum menjalankannya, dan kenyataannya memang terjadi persis seperti itu
Tampaknya hasil dari membuatnya bisa dikustomisasi, diberi tema, diganti, dan dibuat lebih keren adalah apa yang kita miliki sekarang
Masa awal OS X adalah zaman keemasan Mac yang sesungguhnya. Perangkat kerasnya cukup kompetitif dengan x86, dan sistem operasinya berada di level terbaik sepanjang masa
Pada akhirnya keduanya mulai tersendat, tetapi sekarang kita berada di zaman keemasan kedua untuk perangkat keras, jadi kita bisa bermimpi bahwa suatu saat nanti Mac OS mungkin akan kembali hebat
Namun bahkan di zaman keemasan perangkat keras baru ini, performa emulasi di sini nyaris tidak bisa dipakai di M1 dan Safari
Kernel panic terjadi setiap hari, dan QuickTime sering mati karena segmentation fault saat menonton video
Untuk memutar format file seperti wmv atau divx, kita harus menjalani quest mencari dan memasang codec yang tepat
Ada juga masalah panas berlebih karena demi membuatnya terlihat cantik, ventilasi untuk aliran udara tidak dipasang dengan semestinya
M4 mini dasar level pemula itu mengagumkan. Seluruh komputernya memakai daya lebih kecil daripada satu GPU x86 dengan performa serupa
Dark Castle! Saat kecil, ayah saya punya Apple Lisa. Ia sedang mengembangkan paket akuntansi untuk Apple, jadi Apple dengan baik hati menyediakan mesin itu
Saat itu saya menganggap mesin luar biasa ini sebagai sesuatu yang biasa saja, dan hanya memakainya untuk game dan MacPaint. Di antara koleksi disk 3,5 inci ayah saya, ada disk bertuliskan “Dark Castle”, tetapi karena alasan yang tidak saya ingat, disk itu tidak berjalan di Lisa
Saya menduga itu game, tetapi sangat kecewa karena tidak bisa memainkannya, dan menjadi terpesona oleh disk misterius itu
Pada tahun 2025, saya menjalankan emulator Infinite Mac System 7: https://infinitemac.org/1991/System%207.0
Jantung saya serasa berhenti sejenak. Di dalam folder “Games”, Dark Castle ada tepat di sana
Setelah 30 tahun, akhirnya saya bisa memainkan game ini. Grafisnya menawan, dan terasa juga unsur dari klasik Sierra, King’s Quest, serta Prince of Persia
https://en.wikipedia.org/wiki/Dark_Castle
Jadwal saya malam ini sudah ditentukan oleh ini