1 poin oleh GN⁺ 2025-06-21 | 1 komentar | Bagikan ke WhatsApp
  • 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 FP pada 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 .dmg lama 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 FP pada Machine State Register
    • Jika bit FP tidak disetel, emulator harus melempar pengecualian “floating point unavailable”
  • 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 FP dan exception handler
    • Ini tampaknya optimisasi untuk menghindari penyimpanan dan pemulihan register FPU saat context switch
  • Setelah pemeriksaan FP yang sama diimplementasikan pada kode dispatch yang dioptimalkan, masalah rendering hilang
  • Bug yang sama juga masih ada di DingusPPC
    • DingusPPC tidak memeriksa bit FP dan 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
  • 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 .dmg sebagai folder tambahan di dalam image yang dibuat
  • .dmg lama memiliki banyak variasi meskipun ekstensinya sama, sehingga tidak selalu dapat di-mount dengan hdiutil di 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
  • 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.app juga 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
    • A/UX adalah sistem sezaman dengan classic Mac OS dan menarik untuk dibandingkan dengan NeXTStep
    • Shoebill menjalankan A/UX, dan codebase-nya tampak memungkinkan untuk di-port
    • Lisa, Pippin, serta Newton melalui Einstein juga tetap menjadi kandidat
  • 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

 
GN⁺ 2025-06-21
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/

    • Banyak developer hebat tiba-tiba meninggal tanpa obituari, dan sering kali hanya satu developer lain yang tampaknya tahu sesuatu, jadi kadang saya ingin percaya bahwa alien menganggap mereka terlalu berharga untuk dibiarkan di Bumi lalu membawa mereka pergi
    • Seseorang menyalin karyanya dan menjualnya dengan nama cherryos
    • Artikel ini berada di balik paywall
  • Infinite Mac adalah koleksi rilis sistem dan perangkat lunak Macintosh klasik serta NeXT, yang dibuat agar mudah diakses dari browser web
    https://infinitemac.org/

    • Seharusnya Infinite Mac diberi tautan atau didefinisikan agar tulisan blognya tetap bisa dipahami secara mandiri
    • Senang ada yang menautkan halaman ini. Ini bagian yang cukup besar yang terlewat oleh penulis blog, dan tanpa komentar ini saya mungkin tidak akan menemukan situs yang luar biasa ini
  • 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

    • Karena RISC, jadi tidak terlalu mengejutkan. Emulator MIPS juga kira-kira sebesar itu
  • 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!”

    • 10.4 pada dasarnya terlihat dan bekerja dengan cara yang hampir sama seperti macOS terbaru apa pun. Bahkan dengan Liquid Glass, perilakunya mirip
      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
    • Saya berusia 20 tahun, dan karena punya ingatan samar memakai 10.5 atau 10.6 saat kecil, rasanya seperti nostalgia
    • Saya mulai sebagai developer pada era 10.4/10.5. Itu masa ketika saya terutama menjalankan macam-macam hal dan mengutak-atik tema agar tampilannya kurang lebih seperti dark mode
      Saat itu mengutak-atik folder sistem tidak serumit sekarang
    • Saya tidak mengerti apa maksud “Zaman Kegelapan”. Ini lebih seperti hal yang dibiayai kekaisaran berbeda dari hal yang dibiayai kerajaan-kerajaan independen, bukan karena kemampuannya hilang
      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

    • Rasanya saya makin menjadi penggemar antarmuka abu-abu lama (Windows 95, macOS 9). Seperti kalkulator yang sekadar alat, UI seperti itu juga terasa seperti alat, sehingga nyaman
    • Sejujurnya tidak juga. UI yang benar-benar dilihat dan dipakai untuk bekerja terbatas pada bilah menu, tiga titik, dan sesekali bilah Spotlight
      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
    • Pada dasarnya tidak ada alasan mengapa MacOS modern tidak bisa menyediakan tampilan dan nuansa seperti ini. Kalau ada alasan yang jelas, itu hanyalah desain perangkat lunak yang buruk dan kurang modular
      Saya juga sudah muak dengan perusahaan software yang berpura-pura membuat software dengan baik
    • Yang paling saya suka adalah perpaduan Aqua dan brushed metal di 10.3 Panther
      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
    • Garis-garis pada jendela memang agak berlebihan, dan saya cukup senang ketika itu dihilangkan
  • 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

    • Semua window manager Linux punya tema Aqua. Apple benar-benar merilis sistem operasi yang selama bertahun-tahun berusaha dibuat oleh orang-orang “tahun desktop Linux”, dan yang sampai sekarang pun masih mereka buat
      Itu adalah Unix arus utama dengan kegunaan yang bahkan bisa dipakai nenek, serta dukungan aplikasi pihak ketiga utama, jadi benar-benar sukses besar
    • Aqua bahkan sekarang masih terasa seperti wahyu. Dalam hal kemampuan mengenali kontrol jendela secara sekilas, kita sudah banyak mundur
      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
    • Steve Jobs pernah berkata, “Selama 18 bulan terakhir kami secara diam-diam merancang antarmuka pengguna yang sepenuhnya baru, yang membawa warisan Apple ke abad berikutnya. Kami menyebut UI baru ini Aqua, karena ia seperti cairan. Salah satu tujuan desainnya adalah membuat Anda ingin menjilatnya begitu melihatnya”
    • Liquid Glass sepertinya membangkitkan kembali kenangan akan masa itu
  • 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

    • Saya tidak berpikir Mac OS sedang bergerak ke arah menjadi hebat lagi
    • Saya memakai model x86 awal, dan dari sisi harga tidak kompetitif, sementara OS X juga tidak sebagus yang saya bayangkan
      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
    • Dari 68k ke PPC, Intel, hingga Silicon, saya terus menggunakannya dengan semangat Think Different™. Peningkatan performa terbesar terjadi pada dua transisi CPU terakhir, baik dalam performa absolut maupun performa per watt
      M4 mini dasar level pemula itu mengagumkan. Seluruh komputernya memakai daya lebih kecil daripada satu GPU x86 dengan performa serupa
    • Masalah lama yang sama. Perangkat keras memberi performa, lalu perangkat lunak mengambilnya
  • 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