Windows NT สำหรับ Power Macintosh
(github.com/Wack0)- รีโพซิทอรีนี้เก็บซอร์สโค้ดของเฟิร์มแวร์ ARC และตัวโหลดสำหรับบูต Windows NT บน Power Macintosh โดยรองรับ PowerPC Macintosh ตระกูล Gossamer/Grackle และ Mac99
- ระบบที่รองรับแบ่งเป็น Power Macintosh G3, iMac G3 บางรุ่น, PowerBook G3/G4, iBook G3/G4 และ Power Macintosh G4 บางรุ่น โดยเนื่องจาก ไม่มีไดรเวอร์ USB บางระบบจึงรองรับได้เพียงในทางทฤษฎีหรือใช้งานจริงได้ยาก
- เฟิร์มแวร์ ARC มีไดรเวอร์สำหรับ Cuda/PMU, คีย์บอร์ด ADB, เฟรมบัฟเฟอร์ 32bpp, IDE ภายในของ Mac I/O, ATA-6 บางรุ่น, MESH SCSI และ USB OHCI แต่ ไม่มีไดรเวอร์ PCI IDE และไม่รองรับ LBA48
- ฝั่ง Windows NT มี HAL สำหรับ Gossamer และ Mac99, ไดรเวอร์ Mac I/O IDE/ATA-6, ไดรเวอร์ HID/สตอเรจที่รองรับคีย์บอร์ด/เมาส์ ADB และแรมดิสก์ และไดรเวอร์ miniport สำหรับเฟรมบัฟเฟอร์ 32bpp เตรียมไว้แล้ว
- รองรับ NT 3.51 RTM ขึ้นไป โดย NT 3.51 เบต้าช่วงต้นต้องแพตช์เคอร์เนล และ NT 3.5 ไม่รองรับเพราะรองรับเฉพาะ PowerPC 601 เท่านั้น
ขอบเขตโครงการและฮาร์ดแวร์เป้าหมาย
- รีโพซิทอรีนี้รวมซอร์สโค้ดของ เฟิร์มแวร์ ARC และตัวโหลดสำหรับระบบ Power Macintosh
- สถาปัตยกรรม Gossamer รองรับระบบที่ใช้ตัวควบคุมหน่วยความจำ/PCI host MPC106 “Grackle” และชิป Super I/O “Heathrow” หรือ “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!”
- สถาปัตยกรรม Mac99 รองรับตัวควบคุมหน่วยความจำ/PCI host “Uni-North” และชิป Super I/O “KeyLargo” รวมถึงชิปเซ็ตอนุพันธ์อย่าง “Intrepid”
- PowerBook G3 Firewire “Pismo”
- iBook G3
- iBook G4
- iBook G4 กลางปี 2005
PowerBook6,7ใช้เมาส์ภายในแบบ USB จึงยังไม่สามารถใช้เมาส์ได้
- iBook G4 กลางปี 2005
- PowerBook G4
- PowerBook G4 ตั้งแต่ต้นปี 2005 เป็นต้นไป เช่น
PowerBook6,8,PowerBook5,6และรุ่นหลังจากนั้น ใช้คีย์บอร์ดและเมาส์แบบ USB จึงยังรองรับการใช้งานจริงได้ยาก
- PowerBook G4 ตั้งแต่ต้นปี 2005 เป็นต้นไป เช่น
- iMac G3 slot-loading, iMac G4 และ Power Macintosh G4 AGP “Sawtooth” เป็นต้นไป รองรับได้ในทางทฤษฎี แต่ยังใช้งานจริงได้ยากเพราะ ไม่มีไดรเวอร์ USB
- อาจมีปัญหาตามชนิดฮาร์ดแวร์ และขณะนี้ยังไม่ได้รวมซอร์สของ NT HAL และไดรเวอร์ไว้
ไดรเวอร์ที่รวมอยู่ในเฟิร์มแวร์ ARC
- เฟิร์มแวร์ ARC รองรับ Cuda และ PMU
- รวมการรองรับคีย์บอร์ด ADB
- ใช้ เฟรมบัฟเฟอร์วิดีโอ 32bpp แบบ flat ที่ตัวโหลดตั้งค่าไว้
- รองรับฮาร์ดแวร์ ATI และ nVidia
- GPU ของ nVidia บางรุ่นยังใช้งานไม่ได้ในตอนนี้
- ไดรเวอร์คอนโทรลเลอร์ IDE ภายในของ Mac I/O แยกมาจาก OpenBIOS
-
ไม่มีไดรเวอร์คอนโทรลเลอร์ PCI IDE
- รองรับคอนโทรลเลอร์ ATA-6 ของระบบ Mac99 บางรุ่นช่วงหลัง ได้แก่ Intrepid และ U2
- ยังไม่รองรับ LBA48
- ในระบบก่อน Mac99 รองรับคอนโทรลเลอร์ MESH SCSI
- ไดรเวอร์ USB OHCI แยกมาจาก OpenBIOS
- บนระบบก่อน Mac99 อยู่ในสถานะเสียและไม่ทำงาน โดยโค้ดเริ่มต้นการทำงานถูกคอมเมนต์ทิ้งไว้
-
ไดรเวอร์ที่พัฒนาสำหรับ Windows NT
- มีการพัฒนา HAL สำหรับชิปเซ็ต Gossamer แล้ว
- เฟรมบัฟเฟอร์ระหว่างบูต NT
- ตัวควบคุมอินเทอร์รัปต์ของ Super I/O
- รองรับบัส PCI ของ Grackle
- รวม Cuda, PMU และ ADB ระดับล่าง
- พอร์ตอนุกรมสำหรับดีบักเคอร์เนลโดยเฉพาะ
- มีการพัฒนา HAL สำหรับชิปเซ็ต Mac99 เช่นกัน
- เฟรมบัฟเฟอร์ระหว่างบูต NT
- ตัวควบคุมอินเทอร์รัปต์ MPIC
- รองรับ PCI bus 3 ชุดของ Uni-North
- หนึ่งในนั้นเป็น AGP แต่รองรับเพียงชุดย่อยของ PCI
- รวม PMU และ ADB ระดับล่าง
- พอร์ตอนุกรมสำหรับดีบักเคอร์เนลโดยเฉพาะ
- ไดรเวอร์คอนโทรลเลอร์ IDE ภายในของ Mac I/O และคอนโทรลเลอร์ ATA-6 แยกมาจาก
atapi.sysใน NT4 DDK - ไดรเวอร์ HID/สตอเรจทั่วไปมีแผนจะรวมสแตก USB ในอนาคต แต่ตอนนี้รองรับเพียงคีย์บอร์ด/เมาส์ ADB และแรมดิสก์ที่ใช้เป็นฟลอปปีดิสก์สำหรับติดตั้งไดรเวอร์ระหว่างการติดตั้งแบบข้อความ
- มีไดรเวอร์ miniport สำหรับ เฟรมบัฟเฟอร์วิดีโอ 32bpp แบบ flat
ความเข้ากันได้ของซอฟต์แวร์
- รองรับ NT 3.51 RTM ขึ้นไป
- NT 3.51 เบต้า build 944 หรือต่ำกว่าต้องแพตช์เคอร์เนลก่อนรัน เนื่องจากมีบั๊กในการตรวจจับโปรเซสเซอร์
- NT 3.5 ไม่รองรับ เพราะรองรับเฉพาะ PowerPC 601
- ฟีเจอร์ suspend/hibernation เพิ่มเติมของ NT 3.51 PMZ อาจเข้ากันได้ในทางทฤษฎี แต่ในทางปฏิบัติต้องพัฒนาไดรเวอร์เพิ่มเติมที่จำเป็นทั้งหมดใหม่
ขั้นตอนการติดตั้งและข้อจำกัดของพาร์ทิชัน
- ต้องดาวน์โหลดไบนารีที่ตรงกับระบบจากหน้า releases
- ระบบ Gossamer/Grackle ต้องเบิร์นอิมเมจลงสื่อออปติคัล
- ระบบ Old World ได้แก่ PowerMac G3 beige, PowerBook G3 Wallstreet/PDQ ใช้
nt_arcfw_grackle_ow.iso - ระบบ New World ได้แก่ iMac G3 tray-loading, PowerMac G3 blue&white, PowerBook G3 Lombard, PowerMac G4 Yikes ใช้
nt_arcfw_grackle.iso
- ระบบ Old World ได้แก่ PowerMac G3 beige, PowerBook G3 Wallstreet/PDQ ใช้
- ระบบ Mac99 สามารถเขียนอิมเมจลง ไดรฟ์ USB ได้
- ในเมนูเฟิร์มแวร์ ARC ไปที่
Run firmware setup→Repartition disk for NT installationเพื่อแบ่งพาร์ทิชันดิสก์สำหรับติดตั้ง NT - ขนาดพาร์ทิชัน NT สูงสุดคือ 8030MB โดยอิงข้อจำกัด CHS 16383x16x63 และหักพาร์ทิชันระบบ ARC 32MB กับอีก 1MB ออกแล้ว
- หากพาร์ทิชัน NT มีขนาดเกิน 2GB จะถูกฟอร์แมตเป็น NTFS
- เวอร์ชันฟอร์แมต NTFS ของรีลีสก่อน 2024-11-11 ไม่เข้ากันกับ NT 3.51
- หากต้องการติดตั้ง NT 3.51 ควรใช้พาร์ทิชันขนาดไม่เกิน 2GB
- ระหว่างติดตั้ง NT ให้รัน
cd:\ppc\setupldrและหากมีไดรฟ์ออปติคัลหลายตัว อาจเป็นcd01:หรือcd02: - ในขั้นตอนเลือก HAL รายการทั้งหมดในลิสต์จะโหลด HAL ที่ตรงกับระบบ
- HAL สำหรับชิปเซ็ต Gossamer คือ
halgoss - HAL สำหรับชิปเซ็ต Mac99 คือ
halunin
- HAL สำหรับชิปเซ็ต Gossamer คือ
- ในขั้นตอนไดรเวอร์สตอเรจขนาดใหญ่ ต้องโหลดไดรเวอร์สองตัว
Mac I/O IDE ControllerPowerMac General HID & Storage
- ในขั้นตอนอะแดปเตอร์วิดีโอ ให้เลือกตัวเลือกตามระบบปฏิบัติการ
- NT 4 ใช้
Open Firmware Frame Buffer - NT 3.51 ใช้
Open Firmware Frame Buffer (NT 3.x)
- NT 4 ใช้
- ในการติดตั้งแบบข้อความ ต้องเปลี่ยนคีย์บอร์ดเป็น
XT, AT or Enhanced Keyboard (83-104 keys)และเปลี่ยนอุปกรณ์ชี้ตำแหน่งเป็นNo Mouse or Other Pointing Device - หากสร้างพาร์ทิชัน NT ที่เกิน 2GB ระหว่างการตรวจสอบดิสก์จะพบข้อผิดพลาดและต้องรีบูต โดยในการลองครั้งที่สองการตรวจสอบดิสก์จะสำเร็จ
ปัญหาที่ทราบและข้อควรระวังเรื่องดูอัลบูต
- ในโน้ตบุ๊กตระกูล Gossamer/Gossamer อาจต้องการถอดแบตเตอรี่ออก
- บน Lombard วิธีปิดเครื่องเมื่อเกิด bugcheck มีเพียงรีเซ็ต PMU หรือถอดไฟออกทั้งหมดเท่านั้น
- การรีเซ็ต PMU บน Wallstreet/PDQ ทำได้ด้วยคีย์คอมบิเนชันบนคีย์บอร์ด
- ไดรเวอร์ที่พัฒนาไว้ตอนนี้อยู่ในระดับ ขั้นต่ำที่จำเป็น สำหรับการรันและใช้งาน NT
- พบการปิดเครื่องแบบ hard shutdown โดย PMU ระหว่างบูต NT และแก้ได้ด้วยการรีเซ็ต PMU เท่านั้น โดยยังไม่ทราบสาเหตุ
- หากระบบ Old World มีปัญหาในการบูตเป้าหมายอื่นที่ไม่ใช่เฟิร์มแวร์ ARC ให้กด
Escระหว่างบูตเพื่อข้ามอุปกรณ์ของ ARC firmware - บน Mac99 ไดรเวอร์ USB ยังไม่ทำงาน จึงรองรับเฉพาะระบบโน้ตบุ๊กในตอนนี้
- หากสร้างพาร์ทิชัน Mac เพิ่มเติม จะปรากฏเป็นพาร์ทิชัน HFS ในตารางพาร์ทิชัน แต่ยังไม่ถูกฟอร์แมต
- ต้องฟอร์แมตพาร์ทิชันด้วย Disk Utility ของ OS X 10.1 ขึ้นไป
- ต้องลบที่ โวลุ่ม ไม่ใช่ที่ไดรฟ์
- ในรีลีสหลัง 2024-11-11 สามารถบูตเข้า OS 9 แล้วฟอร์แมตผ่านกล่องโต้ตอบที่แสดงขึ้นตอนเริ่มระบบได้ด้วย
- ตัวติดตั้ง OS X และการบูต OS 8/OS 9 จะเกิดข้อผิดพลาดหากดิสก์มี MBR ที่ถูกต้องสำหรับ NT อยู่
- ต้องใช้ตัวเลือก
Run firmware setup→Reboot to OSX install or OS8/OS9ใน ARC firmware - ในรีลีสหลัง 2024-11-11 เมื่อเขียนดิสก์ ระบบจะแพตช์โค้ดไดรเวอร์ OS8/9 ทำให้ไม่ต้องใช้ตัวเลือกนี้ แต่หากพาร์ทิชันไดรเวอร์บนดิสก์ถูกอัปเดตด้วยวิธีอื่น ก็จะต้องใช้ใหม่
- เมื่อบูตกลับเข้า ARC firmware ระบบจะปรับแก้ MBR อีกครั้ง
- การฟอร์แมตพาร์ทิชัน HFS ที่สร้างด้วย OS X 10.2 และ 10.3 จะไม่ทำงานหากมี MBR ที่ถูกต้องอยู่
- ต้องใช้ตัวเลือก
เงื่อนไขการบิลด์และข้อจำกัดด้านขนาด
- การบิลด์เฟิร์มแวร์ ARC ต้องใช้ devkitPPC
- ต้องมี
libgcc.aที่คอมไพล์สำหรับpowerpcleอยู่ในarcgrackle/gccle- ณ วันที่ 2024-07-12 สามารถหาไฟล์
cross-powerpcle-linux-gnu-0.34_1.x86_64.xbpsได้จาก mirror ของ Void Linux
- ณ วันที่ 2024-07-12 สามารถหาไฟล์
- ควรตั้งค่าตัวแปรแวดล้อม
DEVKITPPCให้ชี้ไปยังไดเรกทอรี devkitPPC ซึ่งโดยทั่วไปคือ/opt/devkitpro/devkitPPC - ลำดับการบิลด์คือ libc แบบ big endian, ตัวโหลดเฟิร์มแวร์ ARC, libc แบบ little endian และเฟิร์มแวร์ ARC
- สำหรับ Mac99 ใช้โฟลเดอร์
arcloader_unin,arcunin/baselibc,arcunin
- สำหรับ Mac99 ใช้โฟลเดอร์
- ต้องแทนที่
stage1.elfและstage2.elfภายในอิมเมจรีลีส - หากต้องการสร้างอิมเมจใหม่จากการดัมป์โฟลเดอร์ ต้องสร้างอิมเมจ hybrid HFS+ISO, ทำให้โฟลเดอร์
Systemอยู่ในสถานะ blessed และตั้งค่า file type ของBootXเป็นtbxi stage1.elfต้องมีขนาด ไม่เกิน 16KB และstage2.elfต้องมีขนาด ไม่เกิน 224KB- การบิลด์บูตโหลดเดอร์ Old World ให้ดู readme ที่เกี่ยวข้อง และการสร้างอิมเมจ ISO สำหรับ Old World ให้ดู OldWorldIsoBuilder
โค้ดที่ใช้และโครงการอ้างอิง
- libc ใช้ baselibc
- ELF loader และ makefile นำมาจาก The Homebrew Channel แล้วแก้ไขเพิ่มเติม
- โค้ด PowerPC ระดับล่างบางส่วน, การพัฒนาคอนโซลเฟรมบัฟเฟอร์ของ ARC firmware และฟอนต์ นำมาจาก libogc แล้วแก้ไขเพิ่มเติม
- ไดรเวอร์บางส่วนของ ARC firmware รวมถึง IDE และ USB นำมาจาก OpenBIOS แล้วแก้ไขเพิ่มเติม
- ไดรเวอร์ USB ของ OpenBIOS นำมาจาก coreboot
- การพัฒนาระบบไฟล์ ISO9660 ภายใน ARC firmware ใช้ lib9660 ที่แก้ไขเพิ่มเติม
- การพัฒนาระบบไฟล์ FAT ภายใน ARC firmware ใช้ Petit FatFs ที่แก้ไขเพิ่มเติม
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
บทความนี้ผุดขึ้นมาเพราะความคิดถึง: https://lowendmac.com/2014/next-openstep-and-the-triumphant-...
Amelio และทีมผู้บริหารระดับสูงต้องการระบบปฏิบัติการใหม่เพื่อแข่งขันกับมหาอำนาจ Wintel และตัวเลือกก็ถูกจำกัดลงเหลือประมาณ การไลเซนส์ Windows NT, การไลเซนส์ Solaris, การออก Copland แบบลดขอบเขต, ซื้อ Be แล้วใช้ BeOS, หรือซื้อ NeXT แล้วใช้ OpenStep
มีคำอธิบายว่าเดิมทีรันได้เฉพาะบนเวิร์กสเตชัน Motorola 68k ของ NeXT ก่อนจะถูกพอร์ตไปยังพีซี “IBM compatible” แบบ 32 บิต Intel x86, เวิร์กสเตชัน PA-RISC ของ Hewlett-Packard และเวิร์กสเตชัน SPARC ของ Sun Microsystems: https://www.wikipedia.org/wiki/OpenStep
Mac OS X นั้นใช้งานจริงได้ไม่ง่ายจนกว่าจะถึง 10.1 ในปี 2001 แต่ iMac, iBook, PowerBook G3 ก็ประสบความสำเร็จ แปลว่าระบบปฏิบัติการก็น่าจะมีบทบาทอยู่แน่ ๆ ทว่าเรื่องเล่าเหล่านี้แทบไม่พูดถึงเลย
อาจมีความคิดถึงปนอยู่เพราะเป็นความทรงจำของผู้ใช้ Mac ตัวยงวัยรุ่นช่วงปี 1997–2001 แต่ระหว่างการย้ายจาก Performa กลางยุค 90 ที่ใช้ 7.5 ไปเป็น iMac ปลายยุค 90 ที่ใช้ 9 ก็มีการเปลี่ยนแปลงมากทีเดียว
แม้จะไม่ใช่ระบบปฏิบัติการแห่งอนาคต แต่จากมุมมองผู้ใช้ปลายทาง 8.6/9 ให้ความรู้สึกค่อนข้างทันสมัยกว่า Windows 95/98 และแม้กลางยุค 90 อนาคตในเชิงธุรกิจจะมืดมน แต่ 7.5 ก็ไม่ได้แย่กว่า 95 เป็นพิเศษ
ข้อเสนออื่น ๆ ล้วนสมเหตุสมผล แต่ข้อนี้ดูโดดออกมาเป็นพิเศษ และดีจริง ๆ ที่มันไม่ได้เกิดขึ้น
นักพัฒนาคนเดียวกันเคยพอร์ต PPC NT 4 ไปยัง Wii เมื่อปีที่แล้วด้วย: https://www.youtube.com/watch?v=d8BpUpr1h9U
เป็นงานที่น่าสนใจมาก มาตรฐาน ARC https://en.wikipedia.org/wiki/ARC_(specification) ถูกใช้เพื่อบูตเครื่อง Windows บน DEC Alpha และ MIPS เป็นต้น
ในปี 1998 สเปก EFI ดั้งเดิมของ Intel ใช้ ARC เป็นแบบจำลองและได้รับแรงบันดาลใจจากมัน และ Intel Boot Initiative (IBI) ก็ดูแทบจะเหมือน ARC เป็นส่วนใหญ่
EFI หรือ UEFI ในปัจจุบัน โดยคร่าว ๆ แล้วใกล้เคียงกับ ARC ที่เพิ่มอินเทอร์เฟซแบบติดตั้งได้บนฐาน GUID ในสไตล์ MS COM https://en.wikipedia.org/wiki/Component_Object_Model หรือก็คือ protocol เข้าไป
https://www.intel.com/content/dam/www/public/us/en/documents... หน้า 8 มีส่วนหนึ่งของเรื่องราวความยากลำบากนั้น
ARC สามารถบูต NT ได้ แต่ SRM ทำไม่ได้: https://en.wikipedia.org/wiki/SRM_firmware
Windows NT น่าสนใจจริง ๆ ถ้ากำลังมองหาหนังสือดี ๆ แนะนำ Showstopper
กำลังหาเหตุผลจะเปิด bondi blue iMac G3 รุ่นปี 1998 อยู่พอดี แล้วก็มีสิ่งนี้โผล่มา เป็นโปรเจกต์ที่แปลก ดิบ และเฉพาะทางมาก
ช่วยอธิบายบริบทให้หน่อยได้ไหม? NT น่าจะเป็นซอร์สปิดอยู่แล้ว และไม่น่าจะเคยถูกพัฒนาสำหรับ Mac ด้วย เลยสงสัยว่าจริง ๆ แล้วนี่คืออะไร
ก็ไม่รู้เหมือนกันว่าโอกาสจะหา software มาใช้ได้มีแค่ไหน software ส่วนใหญ่ของ NT น่าจะถูก compile สำหรับ Intel เท่านั้น และซอร์สก็น่าจะปิดอยู่
ดังนั้นถ้าพอร์ตเฉพาะส่วนนั้น binary เดิมสำหรับ architecture นั้นก็ควรจะทำงานได้
แก่นหลักมีสามอย่าง 1) ARC boot firmware: NT ถูกพัฒนาบนระบบที่ไม่ใช่ x86 เช่น i860, MIPS และ ARC เป็น boot firmware พื้นฐาน บน x86 ก่อนถึง Vista นั้น NTLDR emulate สิ่งนี้ โปรเจกต์นี้ดูเหมือนจะจัดเตรียมสภาพแวดล้อมที่ compatible กับ ARC บน OpenFirmware และยังทำงานน่าสนใจคือทำให้ boot firmware แสร้งว่ามี storage device เพื่อให้อ่าน driver “floppy” ได้ในขั้นตอนต้นของการติดตั้ง
2) HAL.DLL: แนวคิดคือแกนหลักของ NTOSKRNL ไม่ขึ้นกับ hardware จึงมี binary หนึ่งชุดต่อ CPU architecture แต่ kernel ต้องสื่อสารกับ timer หรือ bus จริง ๆ ดังนั้น code ส่วน interface นั้นอยู่ใน HAL.DLL และตัวที่ถูกต้องจะถูกคัดลอกระหว่างการติดตั้ง รายชื่อ x86-32 HAL ของ Windows รุ่นเก่าดูได้ที่ https://www.geoffchappell.com/studies/windows/km/hal/history... ปัจจุบันแบบสำหรับ AMD64 ส่วนใหญ่ถูกย้ายเข้าไปใน kernel แล้ว ในกรณีนี้จะคง kernel หลักไว้เหมือนเดิม และให้ halgoss จัดการส่วนเฉพาะของ Mac
3) device driver: หลังจาก NT boot ขึ้นมาแล้วก็ต้องมี driver จริง
สเปกของข้อ 1) เป็นที่รู้กันอยู่ จึงน่าจะ emulate ได้ ส่วนข้อ 3) ถ้ามี DDK หรืออนุมานจาก DDK อื่นก็น่าจะพอทำได้ ข้อ 2) ดูเป็นส่วนที่ต้องใช้ความรู้ภายในมากที่สุด และไม่เคยดูว่าซอร์ส NT ที่เคยรั่วไหลลงลึกถึงระดับนั้นหรือไม่ เลยไม่แน่ใจ
ความเข้ากันได้คือ binary Win32 แบบ 32-bit บน PowerPC, binary Win16 แบบ x86 16-bit และโปรแกรม DOS แบบ x86 ที่รันใน DOS box ของ NT4 ประมาณนั้น ส่วน x86 Win32 ใช้ไม่ได้ และมีเฉพาะ Alpha เท่านั้นที่มี x86 Win32 emulator
ไม่ได้หมายความว่าผู้เขียนใช้ซอร์สนั้น แต่ถ้ามีซอร์สแบบนั้น งานนี้ก็น่าจะง่ายขึ้นมาก
หรือไม่ก็อาจ reverse engineer bootloader แบบ clean-room หรืออาจมีข้อมูลสาธารณะมากพอจนไม่ต้องรู้ code ภายในของ Windows
codebase ของ PPC ไม่ได้ตั้งเป้าไปที่ Mac โดยตรง แต่เป็นสำหรับระบบอื่นของ IBM/Motorola อย่างไรก็ตามเพราะเป็นแพลตฟอร์ม “common” ตัว binary ใน NT4 ISO เองจึงไม่จำเป็นต้องแก้ไข
และสามารถหา source code ได้จากหลาย repository บน GitHub
ผมชอบ Windows NT รุ่นเก่ามากจริง ๆ มันเบาพอจะรันบน hardware สเปกต่ำช่วงปลายยุค 90 ได้ และเสถียรกว่า Windows 95 มาก
แต่สุดท้ายก็ใช้แบบ dual boot ทั้งสองตัวแทน
เจ๋งมาก และตั้งตารอที่จะได้สัมผัสยุคที่ต้องยอมทิ้งเกม DOS ทั้งหมดอีกครั้ง
ดังนั้นน่าเสียดายที่เกม DOS ใช้ไม่ได้
ชอบไฟล์ bootloader นี้: https://github.com/Wack0/maciNTosh/blob/main/boot_files/Syst...
อีกอย่าง ไวยากรณ์ของ Open Firmware อ่านยากเกินไปจริง ๆ ไม่ใช่เรื่องแปลกที่มันถูกเกลียด และมันเป็นโอกาสที่สูญเสียไป
การเขียน NT HAL ใหม่เป็นความสำเร็จที่น่าประทับใจจริง ๆ ขอคารวะ
เอกสารอย่างมากก็มีแค่กระจัดกระจาย และ HAL ที่มีอยู่เดิมน่าจะมี bug ที่ยังไม่เป็นที่รู้จักจำนวนมาก เพียงแต่โชคดีที่ไม่เคยเผยออกมา