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 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 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.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
unotruy 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ảng | CPU | Điểm nổi bật |
|---|---|---|
| IBM PC/XT | 8088+ | Hệ điều hành tham chiếu, chạy trên phần cứng thật |
| Amiga | 68000 | ADF tự khởi động, copper/bitplanes, âm thanh Paula |
| Commodore 64 | 6510 | Desktop bitmap phân giải cao, chip SID |
| VIC-20 | 6502 | Thế giới 3.1 mới trên ma trận ký tự 22×23 |
| Apple II | 6502 | RWTS GCR 6-and-2 riêng, renderer hi-res |
| Apple IIGS | 65C816 | Desktop Super Hi-Res, âm thanh Ensoniq DOC |
| Mac System 1–7 | 68000+ | Bản chuyển Toolbox, lõi không ứng dụng, module nạp được |
| MacPlus | 68000 | Bare-metal, chạy trên Mac SE thật |
| PowerPC Mac | PPC G3/G4 | Client Open Firmware, thế giới big-endian đầu tiên |
Console và thiết bị cầm tay
| Nền tảng | CPU | Điểm nổi bật |
|---|---|---|
| Sega Genesis | 68000 | Desktop tile VDP, khởi động trên phần cứng thật |
| Super Nintendo | 65816 | Mô hình tilemap Shadow+DMA, driver âm thanh SPC700 |
| NES | 6502 | Chỉ 2 KB RAM, xác thực trên AV Famicom thật |
| PC Engine | HuC6280 | Xác thực trên Turbo EverDrive |
| Master System / Game Gear | Z80 | Bản chuyển theo hợp đồng đầu tiên |
| Game Boy / Color | SM83 | Một ROM khởi động cả DMG và GBC |
| Game Boy Advance | ARM7TDMI | Thế giới ARM đầu tiên |
| WonderSwan | V30MZ | Máy cầm tay x86 đầu tiên |
| PlayStation 2 | R5900 | Lõi C chạy trên Graphics Synthesizer |
| Dreamcast | SH-4 | 60 fps trong Flycast |
Bo mạch và thiết bị di động
| Nền tảng | CPU | Điểm nổi bật |
|---|---|---|
| Raspberry Pi | AArch64 | Thế giới 64-bit đầu tiên |
| PinePhone | AArch64 | Mà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
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.
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Báo cáo Drive Stats Q2/2026 của Backblaze: Tỷ lệ hỏng ổ cứng tăng vọt lên 1,73%
29 tháng 9, 2026