1 คะแนน โดย GN⁺ 2025-12-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Mac mini G4 สำเร็จในการบูต System 7 และ Mac OS 8 แบบเนทีฟได้ ซึ่งเป็นกรณีที่ช่วยขยายขีดจำกัดเดิมที่เคยรองรับได้เพียงถึง Mac OS 9.2.2
  • ผสาน build ของ Mac OS 7.6~8.0 บน CHRP (แพลตฟอร์มอ้างอิงฮาร์ดแวร์ร่วม) ที่รั่วไหลมาได้ กับ แพตช์ System Enabler และ เครื่องมือแก้ไข Mac OS ROM (tbxi) เพื่อให้บูต OS รุ่นเก่าได้
  • นักพัฒนา Rairii(Wack0) วิเคราะห์และรวม ROM หลายเวอร์ชัน สร้าง ‘super ROM’ ที่เก็บทั้งฟีเจอร์เก่าและใหม่ทั้งหมด และเผยแพร่บน GitHub
  • ผลการทดสอบพบว่าสามารถบูตได้อย่างเสถียรถึง System 7.5~8.1 แต่ฟีเจอร์บางอย่าง เช่น เสียง วิดีโอ และเครือข่าย ยังอยู่ในสถานะที่ยังไม่สมบูรณ์
  • ความสำเร็จนี้ขยายความเป็นไปได้ในการรัน Mac OS รุ่นคลาสสิกบน PowerPC Mac ที่ใช้ New World ROM และมีความหมายสำคัญต่อชุมชนที่เน้นการพัฒนาและอนุรักษ์แนวเรโทร

พื้นฐานของสถาปัตยกรรม CHRP และการบูต System 7

  • Mac mini G4 ใช้โครงสร้าง New World ROM ทำให้ไม่สามารถบูต OS ตระกูล System 7 โดยตรงได้
    • New World ROM ต้องการ ไฟล์ Mac OS ROM แทนการใช้ ROM แบบฟิสิคัล
    • เวอร์ชันก่อน System 7.6 ไม่สามารถรับรู้โครงสร้างนี้ ทำให้บูตไม่ได้
  • CHRP (Common Hardware Reference Platform) เป็นสถาปัตยกรรมฮาร์ดแวร์อ้างอิงร่วมบนพื้นฐาน PowerPC โดยมี build ของ Mac OS 7.6~8.0 สำหรับใช้งานภายในพัฒนาขึ้น แต่ไม่เคยเปิดตัวอย่างเป็นทางการ
    • ในเดือนตุลาคม 2025 เมื่อ build Mac OS สำหรับ CHRP นี้ได้รับการเก็บรักษาและเผยแพร่ ทำให้การทดลองรูปแบบใหม่เกิดขึ้นได้
  • ด้วยการแก้ไข ไฟล์ System Enabler สำหรับ CHRP เพื่อลบข้อจำกัดเวอร์ชัน OS จึงทำให้ System 7.5.x และระบบรุ่นเก่าอื่น ๆ สามารถใช้ไฟล์ Mac OS ROM ได้

กระบวนการแพตช์ ROM และการทำให้บูตสำเร็จ

  • Rairii(Wack0) ใช้ เครื่องมือแพตช์ Mac OS ROM (tbxi) ของ ELN วิเคราะห์และรวม ROM หลายเวอร์ชันเข้าด้วยกัน
    • สร้าง ROM แบบรวม ที่ฟื้นฟูฟีเจอร์รุ่นเก่าและคงฟีเจอร์รุ่นใหม่ไว้
    • ทำให้บูตได้ตั้งแต่ System 7.5~8.1
  • สามารถดาวน์โหลด ROM และ System Enabler ที่ถูกแพตช์ได้จาก repository GitHub (universal-tbxi-patchset)
  • รุ่น ROM ที่รองรับมี 3 แบบคือ 10.2.1, 2.5.1, 1.7.1 และบน Mac mini G4 จำเป็นต้องใช้ ROM ตั้งแต่ 9.1 ขึ้นไปเพื่อรองรับ ไดรเวอร์ ATA-6

ผลการบูตบน Mac mini G4

  • System 6.0.8~7.1.2: บูตไม่สำเร็จ
  • System 7.5 / 7.5.3 / 7.6 / 8.1: บูตและทำงานได้เสถียร
    • ต้องปิดการใช้งานแผงควบคุมบางตัว (เช่น Mouse Control Panel)
  • System 7.5.2: บูตได้แต่ไม่เสถียร
  • Mac OS 8.5~9.1: บูตไม่สำเร็จ ถูกบล็อกโดยขั้นตอนตรวจสอบ Device ID
  • Mac OS 9.2~9.2.2: ทำงานปกติสมบูรณ์
  • ฟีเจอร์บางส่วน (เช่น เสียง เครือข่าย และ Apple System Profiler) ยังไม่เสถียร

วิธีใช้ ROM เฉพาะ Mac mini G4

  • ใช้เครื่องมือ tbxi และ tbxi-patches ของ ELN และสคริปต์ macmini.py แพตช์ ROM ของ Rairii (เวอร์ชัน 10.2.1) ให้เหมาะกับ Mac mini G4 โดยเฉพาะ
  • ทดสอบการทำงานสำเร็จในสภาพแวดล้อม Python 3.8.10
  • ROM ที่ผ่านการแพตช์ขั้นสุดท้ายทำงานเหมือนกันบน Mac OS 9.2.2 และรองรับการบูต System 7.5
  • ROM Mac mini G4 เดิม (v9.6.1) มีการสปูฟฟ์โมเดล ID เป็น G4 Cube และ ROM ใหม่ก็ยังใช้วิธีเดียวกัน

คุณค่าของการรัน OS รุ่นเก่า

  • ซอฟต์แวร์บางตัวรองรับเฉพาะ Mac OS 9.0.4 หรือต่ำกว่า หรือเฉพาะ System 7 จึงไม่สามารถทำงานบน OS รุ่นล่าสุดได้
  • System 7.5 เบากว่า Mac OS 9 อย่างมาก ทำให้มีสมรรถนะที่เร็วมากในระดับสุดขั้ว
  • นักพัฒนาและนักวิจัยสามารถทดลอง API และพฤติกรรมระบบรุ่นเก่า ได้โดยตรง
  • โครงการนี้ช่วยขยายขอบเขตการรัน ระบบปฏิบัติการแบบเรโทรบน PowerPC Mac และมีส่วนช่วยต่อการอนุรักษ์ของชุมชน

สรุปและคำขอบคุณ

  • ความสำเร็จนี้เกิดจากการร่วมมือของสมาชิกชุมชนอย่าง Rairii, ELN, Mac84 และผู้เกี่ยวข้อง
  • เป็นผลจากการรวมพลังระหว่างการเก็บรักษาแผ่น CHRP, การพัฒนาเครื่องมือ ROM และการแชร์แพตช์
  • เปิดโอกาสในอนาคตให้ผู้ใช้ G3·G4 Mac สร้าง ภาพระบบบูตแบบกำหนดเอง System 7~8.5 ให้ตรงกับโมเดลของตนเอง

1 ความคิดเห็น

 
GN⁺ 2025-12-01
ความเห็นจาก Hacker News
  • ฉันทำธุรกิจงานอดิเรกขาย Mac mini G4 ที่บูรณะแล้ว
    ทำความสะอาดภายในทั้งหมด อัปเกรดเป็น SSD 128GB เพิ่ม RAM เป็น 1GB และเปลี่ยนแบตเตอรี่นาฬิกาใหม่
    และติดตั้ง Mac OS 9 เวอร์ชันแฮ็ก ที่ชุมชน Mac OS 9 Lives ทำไว้ล่วงหน้า
    ซื้อได้ที่เว็บไซต์ของฉัน os9.shop
    ลูกค้าส่วนใหญ่เป็นผู้ใช้ธุรกิจจริงที่ยังต้องรันซอฟต์แวร์รุ่นเก่า — ทั้งคลินิกทันตกรรม โรงพยาบาลสัตว์ พิพิธภัณฑ์ อู่ซ่อมรถ และอีกหลากหลาย
    น่าแปลกใจที่แม้ในปี 2025 ก็ยังมีคนใช้ ซอฟต์แวร์ Classic Mac อยู่มาก

    • สงสัยว่าต้องทำอะไรเป็นพิเศษไหมเพื่อให้ SSD ทำงานกับ OS9 ได้ดี
      ฉันเคยใส่ SSD ใน iMac G3 300MHz แล้วตอนบูตใช้เวลานานมากในการ initialize และค้างบ่อย
    • นี่ใกล้เคียงกับ โปรเจกต์เพื่อความอยากรู้อยากเห็น มากกว่าจะเป็นเรื่องใช้งานจริง
      ถ้ารัน System 7 แบบ “เนทีฟ” บน Mac mini G4 จะขาดไดรเวอร์ไปเยอะมาก
      ซอฟต์แวร์ส่วนใหญ่ทำงานได้ดีกว่าบน OS 9.2.2 และถ้าเป็นกรณีพิเศษจริงๆ อีมูเลเตอร์ อย่าง vMac ก็เพียงพอ
    • เจ๋งมากจนฉันต้องใส่ไว้ในรายการสั่งซื้อเลย
  • ฉันก็คิดว่า Mac OS 9.2.2 เป็น OS ที่ดีที่สุดเหมือนกัน
    เมื่อก่อนที่บริษัท ฉันเคยทำต้นแบบอย่างรวดเร็วด้วย HyperCard
    มันทำงานได้ดีทั้งบน Cube และบนเครื่องใหม่ๆ ผ่านการจำลอง OS 9
    คนเขียนสคริปต์ HyperCard ทำสิ่งเจ๋งๆ ที่ผู้ใช้ส่วนใหญ่ทุกวันนี้ไม่ได้ทำ — โดยไม่ต้องมีดาต้าเซ็นเตอร์ขนาดมหึมา

    • ตอนที่ Java กำลังมาแรงในฐานะภาษายุคถัดไป ที่ KL Group/Sitraka เราสร้างเครื่องมือพัฒนา Java
      ช่วงสุดสัปดาห์ก่อนเปิดตัว ฉันทำวิซาร์ดตั้งค่าด้วย Runtime Revolution ที่อิงกับ HyperCard แล้วเอาของเสร็จไปส่งวันจันทร์
      บริษัทโกรธเพราะมีแนวคิดว่า “เราสร้างเครื่องมือ Java ด้วย Java” แต่สุดท้ายเวอร์ชันนั้นก็ถูกปล่อยใช้งานได้สำเร็จ
      ทุกวันนี้ฉันยังรู้สึกว่าการสร้างเครื่องมือง่ายๆ ด้วย Electron และ React มันเหมือน Turing Tarpit
      ลิงก์ที่เกี่ยวข้อง: LiveCode (company)
    • สมัยนั้นทุกอย่าง ตอบสนองฉับไว มาก ไม่มีแอนิเมชันที่ไม่จำเป็นด้วย
    • HyperCard คือหนึ่งในความทรงจำเกี่ยวกับ Mac OS ที่ฉันชอบที่สุดในชีวิต
    • ส่วนตัวฉันชอบ System 6 — มันให้ความรู้สึกเป็น Classic Mac OS แบบเต็มๆ ก่อนยุค System 7
      เรียบง่ายและแทบไม่มี abstraction ที่ไม่จำเป็น
    • คุณอาจชอบโปรเจกต์ Decker ด้วยก็ได้
  • สคริปต์ใช้กับ Python 3.13.9 รุ่นล่าสุดไม่ได้ ฉันเลยลองใหม่ด้วย Python 3.8.10 แล้วมันทำงานได้สมบูรณ์แบบ
    ทุกวันนี้ Python มักจะ ถอดฟีเจอร์เก่าออก แล้วทำให้โค้ดเดิมพัง
    ประเด็นที่เกี่ยวข้อง: tbxi issue #1

    • น่าหงุดหงิดจริงๆ ถ้าจะทำใหม่ตอนนี้ ฉันน่าจะเขียนด้วย Go
    • ฟังดูเหมารวมเกินไปหน่อย
      MacOS 9 เลิกได้รับการรองรับอย่างเป็นทางการตั้งแต่ปี 2002 แล้ว และการเอาฟีเจอร์ที่เกี่ยวข้องออกจาก standard library ก็สมเหตุสมผล
      เพราะผู้ใช้ส่วนใหญ่ไม่ได้ใช้ฟีเจอร์พวกนั้นเลย
      การถกเถียงที่เกี่ยวข้อง: cpython issue #83534
  • ตอนแรกฉันอ่านผิดเป็น “Mac mini M4” แล้วตกใจมาก

    • ถึงอย่างนั้นโปรเจกต์นี้ก็ยัง ให้ความรู้สึกว่าสุดยอดมาก
  • ตระกูล StarMax (โดยเฉพาะ 4400) เป็นรุ่นที่ใกล้เคียง CHRP มากที่สุด
    เครื่องโคลน PowerCity ของฉันมีพอร์ต PS/2 และ ISA และรัน BeOS ได้ดีด้วย
    มันยังมีลักษณะแปลกอย่างหนึ่งคือเวลาลูปทำงานจะมีเสียงออกจากลำโพง

    • ระบบ StarMax ส่วนใหญ่ใช้ดีไซน์ Tanzania / LPX-40 เป็นพื้นฐาน
      รองรับฟลอปปีดิสก์ไดรฟ์แบบพีซี และ PS/2 ถูกแปลงเป็นอุปกรณ์ ADB โดย ไมโครคอนโทรลเลอร์ CudaLite
      ฉันยังไม่เคยเห็นรุ่นที่มีสล็อต ISA แต่ก็น่าจะทำได้ผ่านชิป PCI-ISA bridge
      เอกสารอ้างอิง: LPX-40 Dev Note
    • ระบบ MacOS ที่ใช้ CHRP มี device tree ที่พิกลพิการ ซึ่งปะปนทั้งอุปกรณ์พีซีและ Mac
      บอร์ด Motorola Yellowknife และระบบ IBM Long Trail ก็คล้ายกัน
      ทั้งสองระบบใช้ southbridge W83C553 และคอนโทรลเลอร์ Super I/O PC87307
      ถ้าดูวงจรของ NXP จะเข้าใจโครงสร้างได้ดีขึ้น
  • อยากถามคนที่อยากเรียนรู้โครงสร้างซับซ้อนของ PowerPC Mac — ส่วนของ การรองรับฮาร์ดแวร์ สำหรับแต่ละรุ่นถูกทำไว้ตรงไหน?

    • มันอยู่ใน เลเยอร์ที่ซ้อนกันเป็นชั้นๆ เหมือนวงแหวนร่วมศูนย์กลาง
  • จริงๆ แล้วนี่ไม่ใช่การบูต System 7 แบบ “เนทีฟ”
    Mac แบบ PowerPC ทั้งหมดรัน System 7 ผ่าน อีมูเลเตอร์
    ถึงอย่างนั้นความพยายามนี้ก็ยังน่าประทับใจ

  • ฉันใช้ iMac G4 1.25GHz อยู่
    เดิมทีมันเป็นรุ่น 1GHz แต่ภายหลังฉันเปลี่ยนบอร์ด
    ถ้าบูต OS 9 ได้โดยตรงแทนที่จะใช้โหมด Classic ของ OS X ก็น่าจะมีประสิทธิภาพกว่ามาก
    แต่ในรุ่น 1~1.25GHz นั้นไม่ได้รองรับอย่างเป็นทางการ
    ฉันฝันว่า someday จะทำ dual boot ได้

    • ที่จริงบนบอร์ดนั้นก็ บูต OS 9 ได้
      ลำโพงในตัวใช้ไม่ได้ แต่ช่องหูฟังยังทำงาน
  • คอนเทนต์แบบนี้เจ๋งจริงๆ เป็น หัวข้อที่เหมาะกับ Hacker News มาก

  • แม้จะน่าประทับใจ แต่ UX ของ macOS ยุคแรกๆ ค่อนข้างใช้งานลำบาก
    เพราะ UI thread ต้องรับผิดชอบทุกอย่าง
    กดคลิกแล้วต้องรอเป็นเรื่องปกติ

    • ถึงอย่างนั้นตัวอินเทอร์เฟซเองก็ยัง รู้สึกว่าเร็วกว่ารุ่น M1 Max Studio ตอนนี้
      เพราะแทบไม่มีแอนิเมชัน และอินพุตไม่ถูกบล็อก
      แอปที่ใช้บ่อยตอบสนองทันทีตามที่มือคุ้นเคย
    • สิ่งที่จำได้ชัดที่สุดคือ การรีบูตบ่อยๆ เพราะโปรแกรมแครช
      null pointer แค่ตัวเดียวก็ทำให้ทั้งระบบค้างได้
    • จริงๆ แล้วสาเหตุของความช้าไม่ใช่ UX แต่เป็น ปริมาณ RAM และความเร็ว HDD มากกว่า
    • ฉันเห็นด้วยกับคำพูดที่ว่า “UI thread คือทั้งหมด” แต่ก็สงสัยว่า ถ้าอย่างนั้นจะมี วิธีทำแบบอื่น ได้อย่างไร