Một kỹ sư đã đưa macOS X chạy trực tiếp trên Nintendo Wii mà không cần giả lập hay ảo hóa, đánh dấu một trong những nỗ lực hiếm hoi đưa hệ điều hành của Apple lên máy chơi game này theo cách native.
Theo Gigazine ngày 9/4 (giờ địa phương), kỹ sư Bryan Keller đã chạy thành công macOS X “Cheetah”, phiên bản ra mắt năm 2001, trên Nintendo Wii. Khác với cách làm phổ biến trước đây là cài Linux lên Wii rồi chạy macOS trong môi trường ảo, dự án lần này đưa hệ điều hành lên phần cứng của máy một cách trực tiếp.
Trước đây, Wii từng được port nhiều hệ điều hành như Linux, NetBSD và Windows NT. Tuy nhiên, trường hợp chạy macOS X theo kiểu native là khá hiếm. YouTuber Michael MJD từng chạy macOS 9.2 trên Wii, nhưng cũng dựa trên hướng tiếp cận ảo hóa.
Điểm khởi đầu của dự án là kiểm tra mức độ tương thích phần cứng. Keller chú ý đến việc Wii sử dụng CPU PowerPC 750CL, một biến thể phát triển từ dòng PowerPC 750 từng xuất hiện trên Apple G3 iBook. Theo ông, đây là nền tảng kiến trúc đủ gần để có thể thử nghiệm chạy macOS X.
Rào cản lớn tiếp theo nằm ở bộ nhớ. Wii chỉ có 88 MB RAM, thấp hơn mức tối thiểu 128 MB mà macOS X Cheetah yêu cầu. Dù vậy, sau khi phân tích nhu cầu bộ nhớ trong quá trình vận hành thực tế, Keller kết luận hệ thống vẫn có thể chạy ở mức dưới 64 MB.
Về phần mềm, dự án tận dụng việc Darwin, thành phần lõi của macOS X, là mã nguồn mở. Sau khi chỉnh sửa mã nguồn để xác nhận khả năng khởi chạy hệ thống, Keller chuyển sang phát triển bootloader và driver cho thiết bị.
Bootloader của dự án được xây dựng mới dựa trên ppcskel, phụ trách khởi tạo hệ thống và nạp hệ điều hành khi máy khởi động. Trở ngại lớn nhất là khác biệt về kiến trúc phần cứng: máy Mac dùng PCI, trong khi Wii được thiết kế quanh SoC “Hollywood”. Vì vậy, các driver sẵn có gần như không thể tái sử dụng và phần lớn phải viết lại từ đầu.
Khâu xuất hình cũng đặt ra thách thức riêng. Bộ mã hóa video của Wii được tối ưu cho tín hiệu TV analog, nên framebuffer cần dữ liệu điểm ảnh YUV 16-bit, trong khi macOS X xuất tín hiệu RGB. Keller xử lý khác biệt này bằng cách dùng hai framebuffer và chuyển đổi 60 lần mỗi giây.
Theo Keller, hệ thống hiện đã hỗ trợ cả chuột lẫn bàn phím. Ông cho biết đây không còn chỉ là một màn trình diễn khởi động đơn thuần, mà đã tiến gần tới trạng thái có thể sử dụng được như một hệ thống macOS X thực thụ. “Ban đầu tôi thậm chí không chắc điều này có thể thực hiện được hay không, nhưng cảm giác khi hoàn thành nó thật sự rất đặc biệt”, ông nói.
Dự án cho thấy dù là một máy chơi game đời cũ, Nintendo Wii vẫn có thể trở thành nền tảng cho những bản port hệ điều hành ngoài dự đoán nếu biết tận dụng kiến trúc PowerPC và nền tảng kernel mã nguồn mở. Đồng thời, trường hợp này cũng cho thấy giá trị cốt lõi không nằm ở giả lập, mà ở những lớp kỹ thuật mức thấp như quy trình khởi động, driver thiết bị và cơ chế chuyển đổi tín hiệu hình ảnh.