Windows NT untuk Power Macintosh
(github.com/Wack0)- Repositori ini berisi firmware ARC dan kode sumber loader untuk mem-boot Windows NT di Power Macintosh, ditujukan untuk PowerPC Macintosh seri Gossamer/Grackle dan seri Mac99
- Target dukungan mencakup Power Macintosh G3, sebagian iMac G3, PowerBook G3/G4, iBook G3/G4, dan sebagian Power Macintosh G4; karena tidak adanya driver USB, sebagian sistem hanya didukung secara teoretis atau sulit digunakan secara nyata
- Firmware ARC mencakup driver Cuda/PMU, keyboard ADB, framebuffer 32bpp, IDE internal Mac I/O, sebagian ATA-6, MESH SCSI, dan USB OHCI, tetapi tidak memiliki driver PCI IDE maupun dukungan LBA48
- Di sisi Windows NT, tersedia HAL untuk Gossamer dan Mac99, driver Mac I/O IDE/ATA-6, driver HID/storage yang mengimplementasikan keyboard/mouse ADB dan ramdisk, serta driver miniport framebuffer 32bpp
- Target kompatibilitas adalah NT 3.51 RTM atau lebih baru; beta awal NT 3.51 memerlukan patch kernel, dan NT 3.5 tidak kompatibel karena hanya mendukung PowerPC 601
Cakupan proyek dan perangkat keras target
- Repositori ini mencakup firmware ARC dan kode sumber loader untuk sistem Power Macintosh
- Target arsitektur Gossamer adalah sistem yang menggunakan memory controller/PCI host MPC106 “Grackle” dan chip Super I/O “Heathrow” atau “Paddington”
- Power Macintosh G3 beige
- Macintosh PowerBook G3 Series “Wallstreet”, “PDQ”
- iMac G3 tray-loading
- Power Macintosh G3 Blue & White “Yosemite”
- Macintosh PowerBook G3 Bronze Keyboard “Lombard”
- Power Macintosh G4 PCI “Yikes!”
- Target arsitektur Mac99 mencakup memory controller/PCI host “Uni-North”, chip Super I/O “KeyLargo”, serta chipset turunan seperti “Intrepid”
- PowerBook G3 Firewire “Pismo”
- iBook G3
- iBook G4
- iBook G4 mid-2005
PowerBook6,7memakai mouse internal berbasis USB, sehingga mouse belum berfungsi
- iBook G4 mid-2005
- PowerBook G4
- model PowerBook G4
PowerBook6,8,PowerBook5,6dan yang lebih baru setelah early 2005 memakai keyboard dan mouse USB, sehingga saat ini sulit didukung untuk penggunaan nyata
- model PowerBook G4
- iMac G3 slot-loading, iMac G4, serta model setelah Power Macintosh G4 AGP “Sawtooth” secara teoretis didukung karena tidak adanya driver USB, tetapi saat ini sulit didukung untuk penggunaan nyata
- Masalah dapat muncul tergantung perangkat keras, dan sumber NT HAL serta driver saat ini belum disertakan
Driver yang disertakan dalam firmware ARC
- Firmware ARC mencakup dukungan Cuda dan PMU
- Termasuk dukungan keyboard ADB
- Menggunakan flat framebuffer video 32bpp yang dikonfigurasi oleh loader
- Mendukung perangkat keras ATI dan nVidia
- Sebagian GPU nVidia saat ini tidak berfungsi
- Driver controller IDE internal Mac I/O di-fork dari OpenBIOS
-
Tidak ada driver controller PCI IDE
- Controller ATA-6 pada sebagian sistem Mac99 generasi akhir, yaitu Intrepid dan U2, didukung
- LBA48 belum didukung
- Pada sistem pre-Mac99, controller MESH SCSI didukung
- Driver USB OHCI di-fork dari OpenBIOS
- Pada sistem pre-Mac99, driver ini rusak dan tidak berfungsi, serta kode inisialisasinya juga dikomentari
-
Driver yang diimplementasikan untuk Windows NT
- HAL untuk chipset Gossamer telah diimplementasikan
- Framebuffer saat boot NT
- Super I/O interrupt controller
- Dukungan bus PCI Grackle
- Termasuk Cuda dan PMU, serta ADB level rendah
- Port serial khusus untuk kernel debugging
- HAL untuk chipset Mac99 juga telah diimplementasikan
- Framebuffer saat boot NT
- MPIC interrupt controller
- Dukungan tiga bus PCI Uni-North
- Salah satunya adalah AGP, tetapi hanya subset PCI yang didukung
- Termasuk PMU dan ADB level rendah
- Port serial khusus untuk kernel debugging
- Driver controller IDE internal Mac I/O dan controller ATA-6 di-fork dari
atapi.sysmilik NT4 DDK - Driver HID/storage umum dimaksudkan untuk juga mencakup stack USB di masa depan, tetapi saat ini hanya mengimplementasikan keyboard/mouse ADB dan ramdisk yang dipakai sebagai floppy drive untuk instalasi driver saat instalasi teks
- Tersedia driver miniport flat framebuffer video 32bpp
Kompatibilitas perangkat lunak
- Target kompatibilitas adalah NT 3.51 RTM atau lebih baru
- NT 3.51 beta build 944 atau lebih lama memerlukan patch kernel agar dapat dijalankan karena bug deteksi prosesor
- NT 3.5 tidak kompatibel karena hanya mendukung PowerPC 601
- Fitur tambahan suspend/hibernation pada NT 3.51 PMZ secara teoretis dapat kompatibel, tetapi dalam praktiknya semua driver tambahan yang diperlukan untuk fitur tersebut harus diimplementasikan ulang
Alur instalasi dan batasan partisi
- Biner yang sesuai dengan sistem harus diunduh dari halaman releases
- Sistem Gossamer/Grackle harus membakar image ke media optik
- Sistem Old World seperti PowerMac G3 beige dan PowerBook G3 Wallstreet/PDQ menggunakan
nt_arcfw_grackle_ow.iso - Sistem New World seperti iMac G3 tray-loading, PowerMac G3 blue&white, PowerBook G3 Lombard, dan PowerMac G4 Yikes menggunakan
nt_arcfw_grackle.iso
- Sistem Old World seperti PowerMac G3 beige dan PowerBook G3 Wallstreet/PDQ menggunakan
- Sistem Mac99 dapat menulis image ke drive USB
- Dari menu firmware ARC, masuk ke
Run firmware setup→Repartition disk for NT installationuntuk mempartisi disk bagi instalasi NT - Ukuran partisi NT maksimum adalah 8030MB, setelah mengecualikan partisi sistem ARC 32MB dan 1MB dari batas CHS 16383x16x63
- Jika ukuran partisi NT melebihi 2GB, partisi akan diformat sebagai NTFS
- Versi format NTFS pada rilis sebelum 2024-11-11 tidak kompatibel dengan NT 3.51
- Untuk memasang NT 3.51, gunakan partisi 2GB atau lebih kecil
- Selama instalasi NT, jalankan
cd:\ppc\setupldr; jika ada beberapa drive optik, bisa menjadicd01:ataucd02: - Pada tahap pemilihan HAL, semua item dalam daftar akan memuat HAL yang sesuai dengan sistem
- HAL chipset Gossamer adalah
halgoss - HAL chipset Mac99 adalah
halunin
- HAL chipset Gossamer adalah
- Pada tahap driver mass storage, dua driver harus dimuat
Mac I/O IDE ControllerPowerMac General HID & Storage
- Pada tahap video adapter, pilih opsi berbeda tergantung OS
- NT 4 adalah
Open Firmware Frame Buffer - NT 3.51 adalah
Open Firmware Frame Buffer (NT 3.x)
- NT 4 adalah
- Dalam instalasi teks, keyboard harus diubah menjadi
XT, AT or Enhanced Keyboard (83-104 keys), dan pointing device harus diubah menjadiNo Mouse or Other Pointing Device - Jika membuat partisi NT lebih dari 2GB, proses pemeriksaan disk akan menemukan error dan perlu reboot; pada percobaan kedua pemeriksaan disk akan berhasil
Masalah yang diketahui dan catatan dual-boot
- Pada laptop seri Gossamer/Gossamer, Anda mungkin ingin melepas baterai
- Di Lombard, satu-satunya cara mematikan daya saat bugcheck adalah reset PMU atau memutus daya sepenuhnya
- Reset PMU pada Wallstreet/PDQ dapat dilakukan dengan kombinasi tombol keyboard
- Driver yang saat ini diimplementasikan adalah tingkat minimum yang diperlukan untuk menjalankan dan menggunakan NT
- PMU hard shutdown pernah diamati saat boot NT, hanya dapat dipulihkan dengan reset PMU, dan penyebabnya tidak diketahui
- Jika ada masalah saat boot ke target selain firmware ARC pada sistem Old World, menekan
Escsaat boot akan melewati perangkat firmware ARC - Pada Mac99, driver USB belum berfungsi sehingga hanya sistem laptop yang didukung
- Jika membuat partisi Mac tambahan, partisi itu akan terlihat sebagai partisi HFS di tabel partisi, tetapi tidak akan diformat
- Partisi harus diformat dengan Disk Utility OS X 10.1 atau lebih baru
- Yang harus dihapus adalah volume, bukan drive
- Pada rilis setelah 2024-11-11, partisi juga dapat diformat dengan boot ke OS 9 dan menggunakan dialog yang muncul saat startup
- Installer OS X dan boot OS 8/OS 9 akan error jika ada MBR valid yang diperlukan NT di disk
- Gunakan opsi
Run firmware setup→Reboot to OSX install or OS8/OS9di firmware ARC - Pada rilis setelah 2024-11-11, kode driver OS8/9 dipatch saat penulisan disk sehingga opsi ini tidak diperlukan, tetapi jika partisi driver on-disk diperbarui dengan cara lain, opsi ini kembali diperlukan
- MBR akan dimodifikasi ketika boot kembali dengan firmware ARC
- Format partisi HFS yang dibuat oleh OS X 10.2 dan 10.3 tidak berfungsi jika ada MBR valid
- Gunakan opsi
Kondisi build dan batas ukuran
- Build firmware ARC memerlukan devkitPPC
libgcc.ayang dikompilasi untukpowerpcleharus ada diarcgrackle/gccle- Per 2024-07-12, file
cross-powerpcle-linux-gnu-0.34_1.x86_64.xbpsdapat ditemukan di mirror Void Linux
- Per 2024-07-12, file
- Variabel lingkungan
DEVKITPPCbiasanya harus diatur ke direktori devkitPPC, yaitu/opt/devkitpro/devkitPPC - Urutan build adalah big endian libc, loader firmware ARC, little endian libc, lalu firmware ARC
- Mac99 menggunakan folder
arcloader_unin,arcunin/baselibc, danarcunin
- Mac99 menggunakan folder
stage1.elfdanstage2.elfdi dalam image rilis harus diganti- Saat membuat ulang image dari dump folder, buat image hybrid HFS+ISO, jadikan folder
Systemdalam status blessed, dan atur tipe fileBootXmenjaditbxi stage1.elfharus 16KB atau lebih kecil, danstage2.elfharus 224KB atau lebih kecil- Untuk build bootloader Old World, lihat readme terkait; untuk pembuatan image ISO Old World, lihat OldWorldIsoBuilder
Kode yang digunakan dan proyek referensi
- libc menggunakan baselibc
- ELF loader dan makefile diambil dari The Homebrew Channel lalu dimodifikasi
- Sebagian kode PowerPC level rendah, implementasi konsol framebuffer firmware ARC, dan font diambil dari libogc lalu dimodifikasi
- Sebagian driver firmware ARC, IDE, dan USB diambil dari OpenBIOS lalu dimodifikasi
- Driver USB OpenBIOS diambil dari coreboot
- Implementasi filesystem ISO9660 internal firmware ARC menggunakan versi modifikasi lib9660
- Implementasi filesystem FAT internal firmware ARC menggunakan versi modifikasi Petit FatFs
1 komentar
Opini Hacker News
Karena nostalgia, tulisan ini jadi teringat: https://lowendmac.com/2014/next-openstep-and-the-triumphant-...
Amelio dan jajaran eksekutif senior membutuhkan sistem operasi baru agar bisa bersaing dengan raksasa Wintel, dan pilihannya menyempit menjadi melisensikan Windows NT, melisensikan Solaris, merilis Copland dalam versi yang diperkecil, mengakuisisi Be lalu memakai BeOS, atau mengakuisisi NeXT lalu memakai OpenStep
Ada penjelasan bahwa awalnya ia hanya berjalan di workstation Motorola 68k milik NeXT, lalu di-port ke PC “kompatibel IBM” Intel x86 32-bit, workstation PA-RISC milik Hewlett-Packard, dan workstation SPARC milik Sun Microsystems: https://www.wikipedia.org/wiki/OpenStep
Mac OS X bahkan belum mudah dipakai sungguhan sebelum versi 10.1 pada 2001, tetapi iMac, iBook, dan PowerBook G3 sukses, jadi sistem operasinya pasti ikut berperan; namun cerita-cerita seperti ini nyaris tidak memasukkannya
Ini mungkin bercampur nostalgia karena saya adalah pengguna Mac fanatik remaja pada 1997–2001, tetapi ada cukup banyak perubahan dari Performa pertengahan 90-an yang menjalankan 7.5 ke iMac akhir 90-an yang menjalankan 9
Walau bukan sistem operasi masa depan, dari sudut pandang pengguna akhir 8.6/9 terasa relatif lebih modern daripada Windows 95/98, dan bahkan pada pertengahan 90-an, 7.5 tidak secara khusus lebih buruk daripada 95; hanya saja masa depannya dari sudut bisnis tampak suram
Usulan lain semuanya masuk akal, tetapi yang ini tampak sangat menonjol sendiri, dan benar-benar syukur hal itu tidak pernah terjadi
Pengembang yang sama tahun lalu juga mem-port PPC NT 4 ke Wii: https://www.youtube.com/watch?v=d8BpUpr1h9U
Pekerjaan yang menarik. Standar ARC https://en.wikipedia.org/wiki/ARC_(specification) digunakan untuk mem-boot mesin DEC Alpha Windows, MIPS, dan lainnya
Pada 1998, spesifikasi EFI asli dari Intel dimodelkan dari dan terinspirasi oleh ARC, dan Intel Boot Initiative (IBI) juga sebagian besar tampak seperti ARC
EFI, yang kini menjadi UEFI, kurang lebih mirip ARC ditambah antarmuka berbasis GUID yang dapat dipasang ala MS COM https://en.wikipedia.org/wiki/Component_Object_Model, yaitu protokol
https://www.intel.com/content/dam/www/public/us/en/documents... halaman 8 memuat sebagian kisah susah payah itu
ARC bisa mem-boot NT, tetapi SRM tidak bisa: https://en.wikipedia.org/wiki/SRM_firmware
Windows NT benar-benar menarik. Kalau mencari buku bagus, saya merekomendasikan Showstopper
Kebetulan saya sedang mencari alasan untuk menyalakan bondi blue iMac G3 keluaran 1998, lalu muncullah ini; proyek yang aneh, kasar, dan sangat spesifik
Bisa jelaskan konteksnya? NT tentu saja bersumber tertutup dan sepertinya tidak pernah dikembangkan untuk Mac, jadi saya penasaran sebenarnya ini apa
Saya juga tidak tahu seberapa mungkin mendapatkan perangkat lunaknya. Sebagian besar software NT dikompilasi khusus untuk Intel dan kemungkinan source-nya juga tertutup
Karena itu, jika hanya bagian tersebut yang di-porting, binary yang sudah ada untuk arsitektur itu seharusnya bisa berjalan
Intinya ada tiga. 1) Firmware boot ARC: NT dikembangkan di sistem non-x86 seperti i860 dan MIPS, dan ARC adalah firmware boot bawaannya. Di x86, NTLDR mengemulasikannya sampai sebelum Vista. Proyek ini tampaknya menyediakan lingkungan yang kompatibel dengan ARC di atas OpenFirmware, sekaligus melakukan hal menarik: membuat firmware boot berpura-pura ada perangkat penyimpanan agar bisa membaca “floppy” driver pada tahap awal instalasi
2) HAL.DLL: Gagasannya adalah NTOSKRNL utama bersifat independen dari perangkat keras, sehingga ada satu binary untuk tiap arsitektur CPU. Namun kernel tetap harus berkomunikasi dengan timer atau bus nyata, jadi kode antarmuka itu ada di HAL.DLL dan versi yang sesuai disalin saat instalasi. Daftar HAL x86-32 Windows lama bisa dilihat di https://www.geoffchappell.com/studies/windows/km/hal/history.... Sekarang, untuk AMD64, sebagian besarnya sudah masuk ke dalam kernel. Di sini kernel utama dibiarkan apa adanya, sementara halgoss menangani bagian khusus Mac
3) Driver perangkat: setelah NT berjalan, tetap dibutuhkan driver nyata
Spesifikasi untuk 1) sudah diketahui, jadi semestinya bisa diemulasikan, dan untuk 3) mungkin ada DDK atau bisa disimpulkan dari DDK lain. 2) tampaknya bagian yang paling membutuhkan pengetahuan internal, dan saya belum pernah melihat apakah source NT yang bocor turun sampai ke level itu, jadi tidak tahu
Kompatibilitasnya kira-kira binary Win32 PowerPC 32-bit, binary Win16 x86 16-bit, dan program DOS x86 yang berjalan di DOS box NT4. Win32 x86 tidak bisa, dan hanya Alpha yang punya emulator Win32 x86
Bukan berarti pembuatnya memakai source itu, tetapi jika source semacam itu tersedia, pekerjaan ini sepertinya akan jauh lebih mudah
Atau bisa jadi bootloader-nya direkayasa balik dengan metode clean-room, atau informasi publiknya sudah cukup sehingga tidak perlu mengetahui kode internal Windows
Basis kode PPC bukan ditujukan langsung untuk Mac, melainkan untuk sistem lain dari IBM/Motorola, tetapi karena ini platform “umum”, binary di ISO NT4 sendiri tidak perlu dimodifikasi
Dan di GitHub, kode sumbernya bisa ditemukan di beberapa repositori
Saya benar-benar menyukai Windows NT lama. Cukup ringan untuk berjalan di hardware kelas rendah pada akhir 90-an, dan jauh lebih stabil daripada Windows 95
Sebagai gantinya, saya memakai keduanya dengan dual boot
Sangat keren, dan saya menantikan untuk kembali mengalami masa ketika harus menyerah pada semua game DOS
Jadi sayangnya game DOS tidak bisa
Saya suka file bootloader-nya: https://github.com/Wack0/maciNTosh/blob/main/boot_files/Syst...
Sebagai tambahan, sintaks Open Firmware sangat sulit dibaca. Bukan tanpa alasan ia dibenci, dan itu adalah peluang yang terlewat
Menulis NT HAL baru adalah pencapaian yang benar-benar mengesankan. Hormat saya
Dokumentasinya paling-paling hanya terpencar-pencar, dan sepertinya ada banyak bug yang belum diketahui hanya karena kebetulan tidak tersingkap oleh HAL yang sudah ada