Infinite Mac OS X
(blog.persistent.info)- Infinite Mac platformunda artık Mac OS X serisinin ilk sürümleri (10.1, 10.3) web tarayıcısında çalıştırılabiliyor
- PowerPC emülatörü PearPC'nin Emscripten/WebAssembly'ye taşınmasıyla uyumluluk ve kararlılıkta iyileşme sağlandı
- DingusPPC ile yapılan karşılaştırmalar üzerinden performans ve nedeni belirsiz hatalar iyileştirilirken algoritmik optimizasyon sürecinden geçildi
- Mac OS X'e uygun Infinite HD disk imajı da yeniden oluşturularak çeşitli 2000'ler yazılımları ve geliştirme araçlarına erişim sağlandı
- Arayüzde Aqua stili uygulanarak retro kullanım deneyimi güçlendirilirken gelecekteki ek geliştirmeler de hesaba katıldı
Özet
Uzun süredir eski sistemleri çevrimiçi deneyimlemeyi sağlayan Infinite Mac projesi, Mac OS X 10.1 ve 10.3 gibi ilk sürümleri destekleyerek bunların modern web tarayıcılarında çalıştırılmasını mümkün hale getirdi. Bu süreçte PearPC ve DingusPPC gibi PowerPC emülatörleri Emscripten/WebAssembly tabanına taşındı ve performans iyileştirmesiyle kararlılık için çeşitli çalışmalar yapıldı. Algoritmik optimizasyonlar ve hata düzeltmeleri sayesinde özgün donanıma kıyasla çözünürlük ve güvenilirlik artırılırken, dönemin yazılımlarını ve geliştirme araçlarını içeren Infinite HD de yeniden yapılandırılarak kullanım değeri yükseltildi. Ayrıca site arayüzüne Aqua teması uygulanarak nostaljik bir deneyim sunuldu ve A/UX ile Lisa gibi daha da retro işletim sistemlerine destek için gelecekte genişleme olasılığı da değerlendirildi. Proje; program emülasyonu, açık kaynak arşivlerinin genişletilmesi ve arayüzün yeniden canlandırılması gibi birden çok hedefi bir araya getiren teknik bir girişim ortaya koyuyor.
Mac OS X desteğinin genişlemesi
- Infinite Mac'te Mac OS X 10.1 ve 10.3 gibi erken OS X sürümleri web tarayıcısında çalışacak şekilde taşındı
- Gerçek donanımdaki yavaş performans da korunarak dönemin NetNewsWire Lite ve Terminal gibi temsilî uygulamaları deneyimlenebiliyor
- Güncel disk imajına o dönemin bağımsız yazılımlarından bazıları da eklenerek retro yazılımları keşfetmek kolaylaştırıldı
PearPC taşıma süreci
- Başlangıçta DingusPPC emülatörünü taşımaya ve değiştirmeye odaklanıldı, ancak kernel panic ve grafik hataları nedeniyle yön PearPC'ye çevrildi
- PearPC, 2000'lerin başında x86 tabanlı sistemlerde Mac OS X çalıştırmak için tasarlanmış çok platformlu bir kod tabanı olduğundan, ek çalışma gerektirmeden WebAssembly hedefine taşınması görece kolay oldu
- Kısa süre önce Basilisk II ve SheepShaver'ın ana bakımcılarından biri PearPC için deneysel bir dal oluşturarak bunun modern macOS üzerinde derlenmesini mümkün hale getirdi
- Kaynak kod eski ve legacy C++ tabanlı olsa da özel string class, sprintf ve GIF decoder gibi kendine özgü yapılar içeriyor
- Çok platformlu yapı, neredeyse hiç thread kullanılmayan tasarım ve yapısal soyutlama katmanları sayesinde taşıma hızlı gerçekleşti
Performans optimizasyonu ve sınırlar
- PearPC üzerinde Mac OS X 10.2'nin açılıp çalıştırılmasındaki güvenilirlik yüksekti, ancak DingusPPC'ye kıyasla çalışma hızı daha yavaştı
- MMU önbelleklemesinin olmaması gibi nedenlerle performans kaybı büyüktü
- DingusPPC'de uygulanan çeşitli algoritma tabanlı optimizasyonlar PearPC'ye de aktarılarak açılış hızında kısmi iyileşme sağlandı
- PearPC yalnızca gerekli PowerPC komut alt kümesini uyguluyor ve özel firmware ile sürücüler gibi çeşitli “hileler” kullanıyor
- Buna rağmen hızlı ve kararlı Mac OS X emülasyonu açısından uzun vadede DingusPPC'nin daha umut verici olduğu düşünülüyor
Yan keşif: FP istisna işleme
- PearPC içindeki yorumlayıcıya birleşik kod çözme yöntemi getirildiğinde, kayan nokta işlemlerinde render hataları oluştu
- Mac OS X çekirdeğinin MSI register içindeki FP bit durumuna göre istisna işleme kaydı yaptığı görülünce, bunun koda uygulanması render sorununu çözdü
- DingusPPC'de de aynı FP bit eksikliği nedeniyle metin render etme bozukluğu vardı; bu düzeltildikten sonra kararlılık belirgin biçimde arttı
- Geçici çözümlerden “kurallı” uygulamaya geçilerek sonunda 10.1'in çalıştırılma güvenilirliği de büyük ölçüde yükseltildi
- İki emülatör birlikte kullanılarak farklı OS X sürümleri için çalışma desteğinin kapsamı genişletildi
Infinite HD disk imajının yeniden oluşturulması
- Mac OS X dönemine uygun disk imajı yeniden oluşturularak o dönemin bağımsız yazılımları ve geliştirici araçlarından çok sayıda öğe içine eklendi
- Eski .dmg dosyaları güncel macOS üzerinde doğrudan mount edilemediğinden, dmg2img gibi araçlarla dönüşüm ve otomasyon hattı kuruldu
- HFS ile HFS+ dosya sistemleri arasındaki farklar nedeniyle bazı sınırlamalar olsa da yazılımların büyük kısmı düzgün çalışıyor
- Kütüphane siteleri ve Wayback Machine gibi çeşitli kaynaklar üzerinden 2000'lerin başı yazılım çalışma ortamı tamamlandı
- Çok bölümlü imajların dinamik olarak oluşturulması tekniğiyle açılış diski, Infinite HD ve kayıt için Saved HD olmak üzere en fazla 3 volume mount edilebiliyor
Arayüz: Aqua stilinin uygulanması
- Aqua teması Infinite Mac arayüzüne de taşınarak retro his en üst düzeye çıkarıldı
- Mac OS X 10.0/10.1 stilindeki görsel varlıklar doğrudan çıkarılarak yarı saydam efektler de uygulandı
- Sitedeki kontrol bölümlerinin stili de işletim sistemine göre (classic, Platinum, NeXT vb.) otomatik uygulanıyor
- Gelecekte Apple macOS'taki büyük arayüz değişiklikleri beklentisi karşısında geçmiş arayüzler için bir “referans noktası” işlevi de sunuyor
Ek özellikler ve kilometre taşları
- Mac OS 9 partition mount etme ve Classic ortamını çalıştırma özelliği eklendi (yalnızca 10.1'de destekleniyor)
- Eski Calculator uygulamasındaki tekrarlı işlem davranışı gibi işletim sistemleri arası UX farkları da doğrulanabiliyor
- PearPC'ye yerleşik boot message (Verbose) modu etkinleştirildi, DingusPPC'de ise Open Firmware değişkenlerini belirleme yöntemi uygulandı
- macosx.app alan adı üzerinden markalaşmayı genişletme girişimi de var, ancak alan adı şu anda başka birinin elinde
Gelecekteki genişleme ve kapanış
- Mac OS X desteğinin genişlemesiyle Infinite Mac, modern macOS ile bir bağlantı köprüsü kurmuş oldu
- Daha derin bir nostalji için A/UX, Lisa, Pippin ve Newton gibi sistemlerin de taşınma olasılığından söz ediliyor
- WebAssembly tabanlı QEMU (wasm) da deneysel olarak ilgi çekiyor ve performans testlerinde olumlu sinyaller verdi
- Web tabanlı Mac OS X emülasyonu; deneyim, legacy yazılımların korunması ve geliştirme denemeleri gibi çeşitli IT/girişim senaryolarında değer sunuyor
1 yorum
Hacker News yorumları
dmgsürükleme), Finder yer imleri, Dock’un davranışı ve Spotlight’ın gelişi gibi unsurların o zaman zaten mevcut olduğu, Windows XP ile Windows 11 arasındaki değişime kıyasla Mac tarafındaki değişimin daha sınırlı kaldığı belirtiliyorsegmentation faultalmanın sıradan olduğunu belirtiyor. Farklı dosya biçimlerini (wmvya dadivx) oynatabilmek için codec aramanın günlük iş hâline geldiğini, ayrıca şık görünmesi uğruna hava çıkışlarının bile olmadığı cihazlarda aşırı ısınmanın da sık görüldüğünü anlatıyor