1 điểm bởi GN⁺ 2025-06-21 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trên nền tảng Infinite Mac, giờ đây có thể chạy các phiên bản đầu của dòng Mac OS X (10.1, 10.3) ngay trong trình duyệt web
  • Đã đạt được tiến triển trong việc cải thiện khả năng tương thích và độ ổn định bằng cách port trình giả lập PowerPC PearPC sang Emscripten/WebAssembly
  • Thông qua việc so sánh với DingusPPC, dự án đã cải thiện hiệu năng và các lỗi khó xác định nguyên nhân, đồng thời trải qua quá trình tối ưu hóa thuật toán
  • Cũng đã xây dựng mới ảnh đĩa Infinite HD phù hợp với Mac OS X, cho phép truy cập nhiều phần mềm và công cụ phát triển của thập niên 2000
  • Cùng với việc áp dụng phong cách Aqua cho UI để tăng trải nghiệm hoài cổ, dự án cũng tính đến khả năng phát triển thêm trong tương lai

Tóm tắt

Infinite Mac, dự án cho phép trải nghiệm trực tuyến các hệ thống legacy lâu đời trên nền tảng Infinite Mac, nay đã có thể chạy trên trình duyệt web hiện đại bằng cách hỗ trợ các phiên bản đầu của Mac OS X như 10.1 và 10.3. Trong quá trình này, các trình giả lập PowerPC như PearPC và DingusPPC đã được port sang nền tảng Emscripten/WebAssembly, kèm theo nhiều nỗ lực để cải thiện hiệu năng và đảm bảo độ ổn định. Thông qua tối ưu hóa thuật toán và khắc phục lỗi, dự án nâng cao độ phân giải và độ tin cậy so với phần cứng gốc, đồng thời tái cấu trúc Infinite HD chứa phần mềm và công cụ phát triển của thời kỳ đó để tăng tính thực dụng. Ngoài ra, giao diện trang web được áp dụng chủ đề Aqua nhằm mang lại trải nghiệm giàu cảm xúc, và còn xem xét mở rộng trong tương lai tới các OS cổ điển hơn như A/UX và Lisa. Dự án này cho thấy một nỗ lực kỹ thuật đa mục tiêu, bao gồm giả lập chương trình, mở rộng kho lưu trữ mã nguồn mở và phục dựng UI.

Mở rộng hỗ trợ Mac OS X

  • Infinite Mac đã được port để có thể chạy các phiên bản OS X đời đầu như Mac OS X 10.1 và 10.3 trong trình duyệt web
  • Dự án tái hiện nguyên trạng hiệu năng chậm trên phần cứng thực, đồng thời cho phép trải nghiệm sử dụng các ứng dụng tiêu biểu thời đó như NetNewsWire Lite và Terminal
  • Ảnh đĩa mới nhất cũng bao gồm một phần phần mềm indie thời kỳ đó, giúp việc khám phá phần mềm retro trở nên dễ dàng hơn

Quá trình port PearPC

  • Ban đầu dự án tập trung vào việc port và chỉnh sửa trình giả lập DingusPPC, nhưng đã chuyển hướng sang PearPC do gặp vấn đề kernel panic và lỗi đồ họa
  • PearPC là một codebase đa nền tảng được thiết kế để chạy Mac OS X trên hệ x86 vào đầu những năm 2000, nên tương đối dễ port sang đích WebAssembly mà không cần quá nhiều công việc bổ sung
  • Gần đây, maintainer chính của Basilisk II và SheepShaver đã tạo một nhánh thử nghiệm của PearPC, giúp có thể build trên macOS hiện đại
  • Mã nguồn đã cũ và dựa trên C++ legacy, nhưng có những đặc điểm riêng như string class tùy chỉnh, sprintf, bộ giải mã GIF, v.v.
  • Nhờ cấu trúc đa nền tảng, thiết kế gần như không dùng thread và các lớp trừu tượng hóa có tổ chức, việc port diễn ra nhanh chóng

Tối ưu hiệu năng và giới hạn

  • Dù độ tin cậy khi khởi động và chạy Mac OS X 10.2 trên PearPC khá cao, tốc độ chạy vẫn chậm hơn so với DingusPPC
  • Sự suy giảm hiệu năng do thiếu MMU caching là khá đáng kể
  • Các tối ưu hóa dựa trên thuật toán từng áp dụng ở DingusPPC cũng được chuyển sang PearPC, giúp rút ngắn phần nào thời gian khởi động
  • PearPC chỉ triển khai tập con các lệnh PowerPC cần thiết và tận dụng nhiều “mánh” như firmware, driver tùy chỉnh
  • Dự án vẫn kỳ vọng rằng về lâu dài, DingusPPC sẽ hứa hẹn hơn cho việc giả lập Mac OS X nhanh và ổn định

Phát hiện phụ: xử lý ngoại lệ FP

  • Khi áp dụng phương thức giải mã hợp nhất trong interpreter của PearPC, lỗi render đã xảy ra trong các phép toán dấu phẩy động
  • Kernel Mac OS X đăng ký xử lý ngoại lệ dựa trên trạng thái bit FP trong thanh ghi MSI; khi cơ chế này được triển khai vào mã, vấn đề render đã được giải quyết
  • DingusPPC cũng gặp vấn đề tương tự do thiếu bit FP, gây lỗi render văn bản; sau khi sửa, độ ổn định đã cải thiện đáng kể
  • Từ cách xử lý mang tính chắp vá, dự án đã tiến tới triển khai “đúng bài”, và cuối cùng độ tin cậy khi chạy 10.1 cũng tăng mạnh
  • Bằng cách kết hợp hai trình giả lập, phạm vi hỗ trợ chạy nhiều phiên bản OS X khác nhau đã được mở rộng

Tái cấu trúc ảnh đĩa Infinite HD

  • Đã build mới ảnh đĩa phù hợp với thời kỳ Mac OS X, bao gồm nhiều phần mềm indie và công cụ dành cho nhà phát triển của giai đoạn đó
  • Các tệp .dmg phiên bản cũ không thể mount trực tiếp trên macOS mới, nên dự án đã xây dựng pipeline chuyển đổi và tự động hóa bằng các công cụ như dmg2img
  • Dù có một số hạn chế do khác biệt giữa hệ thống tệp HFS và HFS+, phần lớn phần mềm vẫn hoạt động bình thường
  • Môi trường chạy phần mềm đầu những năm 2000 được hoàn thiện nhờ nhiều nguồn khác nhau như các trang thư viện phần mềm và Wayback Machine
  • Kỹ thuật tạo động ảnh đa phân vùng được áp dụng, cho phép mount tối đa 3 volume gồm đĩa khởi động, Infinite HD và Saved HD để lưu dữ liệu

UI: áp dụng phong cách Aqua

  • Chủ đề Aqua cũng được áp dụng cho UI của Infinite Mac để đẩy mạnh cảm giác hoài cổ
  • Các tài nguyên hình ảnh theo phong cách Mac OS X 10.0/10.1 được tự trích xuất và tái hiện cả hiệu ứng bán trong suốt
  • Phong cách của các thành phần điều khiển trên trang cũng tự động được áp dụng theo diện mạo từng OS (Classic, Platinum, NeXT, v.v.)
  • Trong bối cảnh Apple chuẩn bị cho các thay đổi UI lớn trên macOS trong tương lai, dự án còn đóng vai trò như một “điểm tham chiếu” cho giao diện quá khứ

Tính năng bổ sung và cột mốc

  • Đã bổ sung khả năng mount phân vùng Mac OS 9 và chạy môi trường Classic (chỉ hỗ trợ trên 10.1)
  • Có thể đối chiếu chính xác khác biệt UX giữa các OS, chẳng hạn hành vi tính lặp trong ứng dụng Calculator cũ
  • Chế độ thông điệp khởi động (Verbose) tích hợp trong PearPC đã được kích hoạt, còn trên DingusPPC thì cơ chế chỉ định biến Open Firmware đã được triển khai
  • Dự án cũng đang thử mở rộng nhận diện thương hiệu thông qua miền macosx.app, nhưng hiện miền này thuộc sở hữu của người khác

Mở rộng trong tương lai và kết luận

  • Việc mở rộng hỗ trợ Mac OS X giúp Infinite Mac tạo ra cầu nối với macOS hiện đại
  • Để đi sâu hơn vào thế giới retro, dự án cũng nhắc đến khả năng port A/UX, Lisa, Pippin, Newton và các hệ khác
  • QEMU nền WebAssembly (wasm) cũng được quan tâm ở mức thử nghiệm, với những tín hiệu tích cực từ các bài kiểm tra hiệu năng
  • Giả lập Mac OS X trên web mang lại giá trị trong nhiều kịch bản IT/startup như trải nghiệm, bảo tồn phần mềm legacy và thử nghiệm phát triển

1 bình luận

 
GN⁺ 2025-06-21
Ý kiến trên Hacker News
  • Có ý kiến chia sẻ rằng PearPC đã hoạt động khá thành công trong vài năm trước khi chuyển sang Intel, nhưng bày tỏ tiếc nuối vì sau khi nhà phát triển chủ chốt qua đời trong một tai nạn tàu hỏa thì dự án đã mất đi phần lớn động lực; đồng thời nhắc lại trải nghiệm từng là một người dùng nhiệt thành và thành viên cộng đồng khi đó, và đến nay mỗi lần nhớ lại chuyện này vẫn thấy buồn; đính kèm bài viết liên quan liên kết
    • Khi nghĩ đến những trường hợp nhiều nhà phát triển xuất sắc đột ngột qua đời, trong tình huống không có cáo phó và chỉ có đúng một lập trình viên biết tin, người ta lại tưởng tượng liệu có phải họ quá giỏi đến mức người ngoài hành tinh đã đưa họ rời Trái Đất hay không
    • Chỉ ra rằng từng có người đánh cắp thành quả của nhà phát triển PearPC rồi đem bán dưới tên cherryos
    • Bày tỏ tiếc nuối vì khi thử mở bài báo đó thì gặp tường phí
  • Giới thiệu Infinite Mac là một bộ sưu tập cho phép dễ dàng sử dụng các bản phát hành hệ thống Macintosh và NeXT cổ điển cùng phần mềm của chúng ngay trong trình duyệt web; liên kết liên quan infinitemac.org
    • Có ý kiến cho rằng bài blog nên liên kết bằng hyperlink hoặc định nghĩa rõ Infinite Mac là gì
    • Vui vì biết đến trang Infinite Mac, và cho rằng việc tác giả blog bỏ sót liên kết tới trang này là một sai lầm lớn; đồng thời biết ơn vì nếu không có bình luận này thì đã không tìm ra được trang tuyệt vời ấy
  • Phần đặc biệt thú vị trong bài là việc trình giả lập CPU PPC được hiện thực bằng chưa tới 700 dòng mã nguồn; ngạc nhiên khi thấy mức độ ngắn gọn thường chỉ gặp ở trình giả lập 6502 lại xuất hiện ở một kiến trúc tương đối hiện đại; kèm liên kết mã liên quan TinyPPC.cpp
    • Có ý kiến cho rằng điều đó không quá đáng ngạc nhiên vì đây là kiến trúc RISC; đồng thời chia sẻ rằng trình giả lập MIPS cũng có kích thước tương tự
  • Có người tưởng tượng cảm giác của một người đam mê công nghệ 20 tuổi ngày nay nếu lần đầu tiếp xúc với OS X 10.4 (bao gồm cả .5, .6); ví như khi ngắm tượng cổ trong “thời kỳ tăm tối” rồi thốt lên: "Làm sao nhân loại có thể tạo ra những tác phẩm như thế này?"; đồng thời cho rằng gu thẩm mỹ thay đổi theo thời đại nên thế hệ hiện nay có khi lại thấy các biểu tượng photorealistic là sến súa
    • Có ý kiến cho rằng giao diện và cách hoạt động của 10.4 về cơ bản gần như giống hệt macOS hiện đại; từ cách cài đặt (kéo dmg), bookmark trong Finder, cách Dock hoạt động cho tới sự xuất hiện của Spotlight đều đã có từ khi đó; và so với mức thay đổi giữa Windows XP và Windows 11 thì Mac thay đổi không nhiều
    • Với tư cách là một người dùng 20 tuổi, có người nhớ mang máng từng dùng 10.5 hay 10.6 khi còn nhỏ, và cá nhân cảm thấy đây gần giống một dạng hoài niệm về thời đó
    • Có người chia sẻ mình bắt đầu làm lập trình viên vào thời 10.4/10.5, từng mày mò chế độ dark mode một nửa, tùy chỉnh theme, và cảm thấy khi ấy việc can thiệp vào thư mục hệ thống đơn giản hơn bây giờ rất nhiều
    • Về cách gọi “thời kỳ tăm tối”, có người giải thích rằng trong bối cảnh lịch sử, đó không phải là sự mất mát về công nghệ hay năng lực mà là khác biệt về văn hóa và ngân sách giữa đế chế và các vương quốc độc lập; đồng thời bổ sung kiến thức lịch sử rằng đầu thời trung cổ vẫn có rất nhiều hiện vật và công trình đẹp, nhắc đến trải nghiệm tận mắt thấy mộ thuyền Sutton Hoo hay các nhà thờ Anglo-Saxon
  • Nhìn các ảnh chụp màn hình rồi cảm thấy Mac OS X đẹp và gọn gàng hơn nhiều so với Mac OS hiện nay, tạo ấn tượng kiểu “môi trường này đúng là khiến người ta muốn làm việc thật sự”; trong khi Mac OS hiện tại lại cho cảm giác quá rối và hỗn loạn; đồng thời tò mò không biết người khác có cảm thấy vậy không
    • Cá nhân có người cho rằng phần UI họ thực sự chạm tới chỉ giới hạn ở thanh menu, ba chấm và Spotlight; còn trên thực tế thì chủ yếu dùng ứng dụng đa nền tảng chạy trên trình duyệt hoặc dùng design system của bên thứ ba hơn là chính hệ điều hành hay app native; trên Windows cũng vậy, nên không có nhiều cảm xúc với yếu tố thị giác
    • Dạo này lại thích các giao diện xám cũ như Win 95 hay macOS 9 hơn, vì chúng đem lại cảm giác ổn định và dễ chịu như một công cụ thuần túy, kiểu như máy tính bỏ túi
    • Bày tỏ thất vọng rằng về mặt kỹ thuật, macOS hiện đại hoàn toàn có thể tái hiện phong cách cũ, nhưng không làm vậy vì vấn đề là cấu trúc phần mềm không được thiết kế theo kiểu mô-đun; đồng thời cho rằng ngày nay khó còn tin các công ty phần mềm thực sự giỏi làm phần mềm
    • Cá nhân thấy sự pha trộn giữa aqua và brushed metal của 10.3 Panther là đẹp nhất; còn thanh menu bóng bẩy của 10.4 Tiger thì theo thời gian lại không còn cảm giác tinh tế; 10.5 Leopard có Dock 3D hào nhoáng, menu trên trong suốt và gradient hiện đại hơn, nhưng rốt cuộc aqua và chất liệu kim loại vẫn ngầu hơn; các bản sau đó thì bị xem là hơi nhạt
    • Có người hài lòng vì thiết kế sọc của Windows trước kia hơi quá tay, nên việc nó biến mất lại là điều tốt hơn
  • Cảm tưởng rằng bài viết gợi nhớ tới những UI tuyệt vời của ngày xưa: từ Macintosh OS 8 thời Platinum, vẻ tinh xảo của MacOS X lickables, cho đến OpenLook, NeXTStep/OpenStep và cả thời Windows 2000; các thành phần UI khi ấy rõ ràng và nhất quán, nên có thể dự đoán được cách điều khiển hoạt động và mang lại trải nghiệm đồng nhất; còn ngày nay dù việc tùy biến theme đã tự do hơn, cái giá phải trả là phần nào đánh mất trải nghiệm UI trực tiếp và nhất quán đó
  • Phản ứng ngạc nhiên khi PearPC vẫn được nhắc đến như một ví dụ thành công dù đã hơn 10 năm kể từ commit cuối cùng; kho chính thức github, fork cá nhân github; đồng thời nhắc việc ngay cả sau khi thêm hỗ trợ WebAssembly thì hỗ trợ x86-64 vẫn còn đó, và có tin rằng họ đã viết blog về trải nghiệm thêm NextStep vào Infinite Mac liên kết blog
  • Cảm nhận cá nhân rằng những dự án như thế này thật sự rất tuyệt, và Aqua khi xuất hiện đúng là mang tính cách mạng
    • Có quan điểm cho rằng vào thời đó gần như mọi window manager trên Linux đều có theme aqua, và Apple đã hiện thực hóa đúng hệ điều hành mà những người dùng chờ “năm của Linux desktop” từng mơ ước; vừa là Unix đại chúng, vừa có tính dễ dùng xuất sắc và hỗ trợ ứng dụng bên thứ ba rất rộng nên đã thành công lớn
    • Có người nghĩ Aqua đến giờ vẫn là một thiết kế mang tính đột phá; trước đây có thể nhận ra ngay các window control, nhưng gần đây chúng lại ngày càng khó phân biệt hơn; đồng thời hy vọng Liquid Glass có thể phần nào khôi phục lại UX đó, và cho rằng sự nhất quán cùng tính khả dụng của Aqua là điều mà Windows Vista hay các theme Linux từng cố bắt chước nhưng rốt cuộc vẫn không theo kịp
    • Trích lại câu nói trong phần thuyết trình “Aqua announcement” của Steve Jobs: Aqua là một giao diện hoàn toàn mới, kế thừa truyền thống riêng của Apple và đúng như tên gọi của nó, rất uyển chuyển; một trong những mục tiêu thiết kế là tạo ra thứ mà “nhìn vào là muốn liếm thử”
    • Cảm tưởng rằng Liquid Glass khiến người ta nhớ lại triết lý thiết kế của thời Aqua năm đó
  • Hồi tưởng rằng thời OS X sơ khai mới chính là thời kỳ hoàng kim thực sự của Mac; khi đó phần cứng cũng rất cạnh tranh và hệ điều hành đạt độ hoàn thiện cao nhất; ngày nay phần cứng lại đang bước vào một thời kỳ vàng son mới, nên hy vọng một lúc nào đó phần mềm cũng sẽ theo kịp; tuy vậy có ý kiến cho rằng khi dùng Safari trên Mac hiện đại thì hiệu năng giả lập này phản hồi kém nên khó dùng thực tế
    • Có ý kiến cho rằng Mac OS dường như không còn khả năng trở nên tuyệt vời trở lại
    • Nhấn mạnh sự mỉa mai rằng khi phần cứng mang lại hiệu năng thì phần mềm lại lấy mất hiệu năng đó
    • Từ trải nghiệm từng dùng các mẫu x86 đời đầu, có người chỉ ra rằng chúng không hề cạnh tranh về giá, kernel panic xảy ra thường xuyên, và ngay cả khi xem video trong QuickTime thì segmentation fault cũng là chuyện như cơm bữa; việc đi tìm codec để phát đủ loại định dạng tập tin (wmv hay divx) là công việc hàng ngày, và vì máy được thiết kế không có khe thoát nhiệt chỉ để trông đẹp nên tình trạng quá nhiệt cũng rất thường gặp
  • Đồng tình với nhận xét “không nhanh lắm, nhưng phần cứng thật thời đó cũng chẳng khá hơn bao nhiêu”; dựa trên trải nghiệm dùng hackintosh khoảng năm 2008, có người cảm thấy độ chậm được tái hiện rất chân thực đúng như Mac thời ấy; đồng thời chia sẻ kỷ niệm từng trải qua vô số thử nghiệm sai lầm để làm app cho iPod touch thời đó, nhưng ít ra cài đặt cũng không mất tới 24 giờ nên vẫn còn may