UnoDOS: Hệ điều hành đồ họa chạy trên 22 dòng máy, từ IBM PC/XT đến laptop 64-bit hiện đại

Công nghệ29 tháng 9, 2026·10 phút đọc

UnoDOS là một gia đình hệ điều hành đồ họa được viết hoàn toàn từ đầu, có thể chạy trên 22 nền tảng khác nhau — từ chiếc IBM PC/XT dùng chip 8088 cho đến laptop x86-64 đời mới. Phiên bản chủ lực pc64 chạy trực tiếp trên phần cứng với driver, trình duyệt, bộ văn phòng, trình biên dịch C và cả hypervisor riêng.

UnoDOS: Hệ điều hành đồ họa chạy trên 22 dòng máy, từ IBM PC/XT đến laptop 64-bit hiện đại

UnoDOS là một dự án mã nguồn mở đầy tham vọng: một gia đình hệ điều hành đồ họa với cùng một cây mã nguồn, cùng một thiết kế, chạy được trên 22 loại máy khác nhau — từ chiếc IBM PC/XT với vi xử lý 8088 cho đến laptop 64-bit trên bàn làm việc của bạn.

Điểm đặc biệt nằm ở chỗ hệ điều hành này không dựa trên nền tảng nào có sẵn. Nó tự viết driver, tự viết trình duyệt, tự viết bộ văn phòng, tự viết trình biên dịch C, và thậm chí cả hypervisor để chạy máy ảo.

Từ một đĩa mềm 1,44 MB đến nền tảng 64-bit

UnoDOS khởi đầu là một hệ điều hành 16-bit chạy ở chế độ thực (real-mode), viết hoàn toàn bằng hợp ngữ x86. Toàn bộ nhân, trình quản lý cửa sổ, hai hệ thống tập tin, đa nhiệm hợp tác và cả bộ ứng dụng đầy đủ được nhồi vừa trong một đĩa mềm 1,44 MB.

Từ đó, dự án phát triển thành một gia đình các bản chuyển (port) theo hướng hợp đồng thiết kế (contract-driven), trải rộng trên máy tính gia đình, máy chơi game console, thiết bị cầm tay, bo mạch nhúng và cả điện thoại. Phiên bản chủ lực hiện nay là pc64: UnoDOS chạy trực tiếp trên phần cứng (bare-metal) của mọi máy PC 64-bit hiện đại.

Huy hiệu giấy phép MPL 2.0Huy hiệu giấy phép MPL 2.0

pc64 — "soái hạm" trên PC hiện đại

pc64 khởi động trực tiếp trên gần như mọi máy PC x86-64 sản xuất từ khoảng năm 2007 trở lại đây. UEFI đóng vai trò như BIOS đối với hệ điều hành cổ điển: firmware bàn giao framebuffer, bàn phím và ổ khởi động, sau đó UnoDOS gọi ExitBootServices và firmware rút lui.

Kể từ thời điểm đó, hệ điều hành vận hành hoàn toàn bằng driver của chính mình. Một ảnh đĩa hybrid cũng có thể khởi động cùng hệ điều hành này trên các máy dùng BIOS cũ.

Một môi trường desktop hoàn chỉnh

Giao diện shell được xây dựng trên unoui — bộ công cụ widget đa nền tảng của dự án. Nó bao gồm desktop dạng cửa sổ với thanh tác vụ, desktop ảo, tính năng gắn cửa sổ (snapping), trình chuyển đổi Alt-Tab có hiệu ứng, biểu tượng desktop và menu chương trình.

Có mười giao diện có thể chuyển đổi trực tiếp, từ Aurora (phong cách phẳng hiện đại, có bản sáng và tối) đến những giao diện hoài cổ chân thực như Mac OS 7, Mac Plus 1-bit, Windows 3.1, Amiga Workbench, C64, Apple II hay NeXTSTEP. Văn bản được hiển thị với font TrueType có kerning và khử răng cưa, mọi điều khiển đều có thể truy cập bằng chuột hoặc bàn phím.

Bộ ứng dụng tự phát triển

  • UnoWord, UnoCalc, UnoShow: bộ văn phòng ngang tầm Office 97, đọc và ghi được định dạng nhị phân thật của Microsoft (.doc, .xls, .ppt) thông qua thư viện unodoc.
  • Trình duyệt: hiển thị HTML, Markdown và CSS, hỗ trợ cookie, cache, tìm kiếm và lưu trang; HTTP cùng HTTPS TLS 1.2 có xác thực CA. Có hai engine JavaScript chuyển đổi được: unojs (máy ảo bytecode nội bộ) và quickjs-ng.
  • Studio: một IDE chạy ngay trên hệ điều hành, có tô sáng cú pháp, vòng lặp build-and-run, trợ lý AI, và UnoC — trình biên dịch C tích hợp có thể biên dịch ứng dụng UnoDOS ngay trên UnoDOS.
  • Python: MicroPython là runtime hạng nhất với API uno truy cập vào shell, hệ thống tập tin và mạng.
  • Music, UnoAmp, Photos: các bộ giải mã WAV, MIDI, MP3 và AAC-LC viết từ đầu. UnoAmp là bản sao của Winamp 2, nạp được các skin cổ điển.
  • SSH: client SSH gốc với ed25519 và thư viện mã hóa nội bộ.

Các ứng dụng là những module .UNO có descriptor riêng: chỉ cần thả vào thư mục APPS\, shell sẽ tự phát hiện. Không cần build lại, không cần khởi động lại.

Hỗ trợ phần cứng viết từ con số không

Mọi thứ bên dưới ranh giới firmware đều là mã gốc, viết riêng cho cây nguồn này:

  • Lưu trữ: AHCI, NVMe, SDHCI/eMMC và USB mass storage trên một tầng block chung; driver FAT16/FAT32 gốc; tạo GPT/ESP.
  • USB: ngăn xếp xHCI dạng polled với hub, bàn phím và chuột HID, mass storage, và USB Ethernet (ASIX AX88179, Realtek RTL8152).
  • Mạng: card mạng có dây (Intel e1000/e1000e/igb, Realtek r8169) và Wi-Fi (Intel, Realtek, Marvell) với WPA2, chạy trên ngăn xếp TCP/IP viết từ đầu: ARP, IPv4, ICMP, UDP, TCP, DHCP, DNS, TLS (BearSSL), socket và syslog hai chiều.
  • Âm thanh: Intel HDA với dự phòng AC'97, đổ vào vòng DMA 48 kHz.
  • ACPI: trình thông dịch AML nội bộ tên unoacpi.

Hypervisor chạy trên chính UnoDOS

unovirt kích hoạt chế độ VMX trên phần cứng Intel và chạy máy khách phía sau EPT với các thiết bị virtio. Cụ thể, một nhân Ubuntu thật có thể khởi động bên dưới UnoDOS, vào được userspace, phản hồi tại shell và mount đĩa ext4 được phục vụ từ một tập tin trên phân vùng UnoDOS. Ứng dụng Appliances và trình quản lý VM đóng vai trò giao diện; backend AMD/SVM đã được viết và đang chờ xác thực trên phần cứng.

Đã kiểm chứng trên máy thật

Dự án được xác thực trên Lenovo ThinkPad X1 Carbon Gen 8 (touchpad gốc, Wi-Fi, chuyển giao diện và độ phân giải trực tiếp), trên một máy test ZimaBlade chạy liên tục (khởi động từ USB, tách khỏi firmware, chạy hoàn toàn gốc), và trên các harness QEMU+OVMF khởi động ảnh thật mỗi khi có thay đổi.

Các ghi chú thiết kế trong pc64/README.md lưu lại những "bẫy" firmware mà chỉ phần cứng thật mới bộc lộ — theo tác giả, đó là một nửa giá trị của bản chuyển này.

Gia đình 22 nền tảng

Máy tính gia đình

Nền tảngCPUĐiểm nổi bật
IBM PC/XT8088+Hệ điều hành tham chiếu, chạy trên phần cứng thật
Amiga68000ADF tự khởi động, copper/bitplanes, âm thanh Paula
Commodore 646510Desktop bitmap phân giải cao, chip SID
VIC-206502Thế giới 3.1 mới trên ma trận ký tự 22×23
Apple II6502RWTS GCR 6-and-2 riêng, renderer hi-res
Apple IIGS65C816Desktop Super Hi-Res, âm thanh Ensoniq DOC
Mac System 1–768000+Bản chuyển Toolbox, lõi không ứng dụng, module nạp được
MacPlus68000Bare-metal, chạy trên Mac SE thật
PowerPC MacPPC G3/G4Client Open Firmware, thế giới big-endian đầu tiên

Console và thiết bị cầm tay

Nền tảngCPUĐiểm nổi bật
Sega Genesis68000Desktop tile VDP, khởi động trên phần cứng thật
Super Nintendo65816Mô hình tilemap Shadow+DMA, driver âm thanh SPC700
NES6502Chỉ 2 KB RAM, xác thực trên AV Famicom thật
PC EngineHuC6280Xác thực trên Turbo EverDrive
Master System / Game GearZ80Bản chuyển theo hợp đồng đầu tiên
Game Boy / ColorSM83Một ROM khởi động cả DMG và GBC
Game Boy AdvanceARM7TDMIThế giới ARM đầu tiên
WonderSwanV30MZMáy cầm tay x86 đầu tiên
PlayStation 2R5900Lõi C chạy trên Graphics Synthesizer
DreamcastSH-460 fps trong Flycast

Bo mạch và thiết bị di động

Nền tảngCPUĐiểm nổi bật
Raspberry PiAArch64Thế giới 64-bit đầu tiên
PinePhoneAArch64Màn hình dọc 480×640, microSD tự khởi động

Một số bản chuyển đã được xác thực trên silicon thật (NES, PC Engine, Genesis, Mac SE, dòng x86, laptop và SBC của pc64); phần còn lại được kiểm chứng trong trình giả lập hoặc trên harness cấp lệnh không cần ROM (Unicorn, py65, lõi 65816 viết từ đầu), nhờ đó không cần bất kỳ ROM độc quyền nào để build hay test.

Ảnh chụp màn hình desktop pc64Ảnh chụp màn hình desktop pc64

Hệ điều hành cổ điển — bản tham chiếu x86

UnoDOS 3 nguyên bản là hệ điều hành ưu tiên giao diện đồ họa cho máy tương thích IBM PC XT, viết hoàn toàn bằng hợp ngữ x86 chế độ thực. Không DOS, không runtime — chỉ có BIOS và một chip Intel 8088 trở lên.

Nó khởi động từ đĩa mềm 1,44 MB (hoặc ổ cứng, CompactFlash, USB) thẳng vào desktop dạng cửa sổ với biểu tượng kéo được, hỗ trợ chuột và trình quản lý cửa sổ 16 lớp z-order.

Nhân chỉ khoảng 46 KB nhưng cung cấp 106 lời gọi hệ thống qua INT 0x80, hỗ trợ đồ họa ở bốn chế độ video, bộ công cụ GUI 15 widget, đọc/ghi FAT12 và FAT16, đa nhiệm hợp tác (5 ứng dụng đồng thời cộng shell trong 640 KB), clipboard hệ thống, ba font bitmap và âm thanh loa PC. Đi kèm là 19 ứng dụng, từ trình soạn thảo văn bản, trình quản lý tập tin đến Paint, Tracker, Settings và ba trò chơi.

Đáng chú ý, nó chạy đủ tính năng trên một chiếc 8088 thật ở tốc độ 4,77 MHz — đã được xác thực trên máy XT cycle-accurate và trên phần cứng thật từ 386SX đến netbook Atom.

Các thư viện dùng chung

Các bản chuyển giữ được kích thước nhỏ nhờ chia sẻ phần "máy móc nặng":

  • unodef: Hợp đồng — một định nghĩa máy đọc được mà mọi thế giới đều sinh ra từ đó.
  • unoui: Bộ công cụ widget và giao diện đa nền tảng.
  • uno3d: Pipeline 3D di động với backend phần mềm, PS2 GS và Dreamcast PVR.
  • unomedia: Bộ giải mã hình ảnh và âm thanh viết từ đầu.
  • unodoc: Định dạng tài liệu nhị phân Microsoft (CFB, .doc/.xls/.ppt), đọc và ghi.
  • unojs / unoweb: Engine JavaScript và engine layout DOM/HTML/CSS.
  • unofs, unosound, unosched, unobus, unoacpi: Hệ thống tập tin, tuần tự âm thanh, lập lịch, bus và ACPI.

Giấy phép và định hướng

UnoDOS được phát hành theo Mozilla Public License 2.0 (MPL 2.0). Bạn có thể dùng miễn phí, kể cả cho mục đích thương mại, không phải trả phí bản quyền. Toàn bộ mã nguồn luôn công khai. Bạn được phép sửa đổi, nhưng nếu phân phối phiên bản đã chỉnh sửa của một tập tin thuộc dự án, mã nguồn tập tin đó phải được công bố dưới MPL 2.0 — bạn không thể biến UnoDOS thành độc quyền.

Điều thú vị là bạn hoàn toàn có thể kết hợp UnoDOS với mã độc quyền của riêng mình và cấp phép cho sản phẩm kết hợp theo cách bạn muốn; chỉ các tập tin của UnoDOS mới phải giữ MPL. Các thành phần bên thứ ba giữ giấy phép riêng (MIT, Apache-2.0, BSD-3-Clause, public domain và CC BY cho hai font), tất cả được liệt kê trong THIRD-PARTY.md.

Dự án hiện ở phiên bản v3.34.0, với hơn 425 lần build. Nhánh master là dòng phát triển chính, hướng tới tương lai và là nhà của pc64; nhánh unodos-3-legacy lưu giữ hệ điều hành gốc đã phát hành, đã xác thực trên phần cứng thật, nay đóng băng và lưu trữ.

"UnoDOS 3, vì đôi khi những cách cũ vẫn là những cách tốt nhất."

Đối với cộng đồng yêu thích hệ điều hành và lập trình hệ thống ở Việt Nam, UnoDOS là một ví dụ đáng học hỏi về cách thiết kế một hệ điều hành có thể mở rộng sang hàng chục nền tảng phần cứng mà vẫn giữ được sự nhất quán — một bài toán mà ngay cả các dự án thương mại lớn cũng gặp không ít khó khăn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗