一個原始碼樹,一個設計,二十二種機器,從配備 8088 的 IBM PC/XT 到您桌上的現代筆記型電腦。
UnoDOS 是一個圖形作業系統家族。它最初是一個以 GUI 為先、16 位元實模式的作業系統,完全以 x86 組語編寫,將核心、視窗管理器、兩個檔案系統、協同多工處理和完整的應用程式集壓縮到單一 1.44 MB 的軟碟中。此後,它已發展成為一個支援家用電腦、遊戲機、掌上裝置和手機的跨平台作業系統家族,其旗艦版本是 pc64:UnoDOS 直接運行於任何現代 64 位元 PC 的裸機上,擁有自己的驅動程式、網路堆疊、瀏覽器、辦公室軟體和虛擬化程式。
每個平台的預建映像檔都在發行頁面上:適用於現代 PC 的混合 ISO 和 USB 磁碟映像檔、遊戲機和掌上裝置的卡匣 ROM、家用電腦的磁碟映像檔,以及單板電腦的 SD 卡載入程式。大多數映像檔可在模擬器中一分鐘內運行;使用者手冊會引導您完成啟動真實硬體的過程,包括適用於 Windows 和 macOS 的一鍵式 USB 燒錄應用程式。
實際驗證過什麼與哪些版本能建置是兩個獨立的問題,而 PLATFORMS.md 是回答這個問題的記錄:每個平台,哪些已在真實硬體上啟動(以及在哪個實體機器上),哪些僅在模擬器中驗證,以及所有已知的差距。
pc64 直接運行於 2007 年以後製造的幾乎所有 x86-64 PC 上。UEFI 在其中扮演著 BIOS 在經典作業系統中的角色:韌體提供一個幀緩衝區、一個鍵盤和啟動磁碟區,然後在大多數機器上,UnoDOS 會呼叫 ExitBootServices,韌體隨即離開。從那時起,作業系統完全運行於自己的驅動程式上。混合磁碟映像檔也能讓舊式 BIOS 機器啟動相同的作業系統。
Shell 是基於 unoui 建置的,這是該家族的跨平台小工具工具箱:一個帶有任務欄、虛擬桌面、視窗吸附、動畫 Alt-Tab 切換器、桌面圖示和程式選單的視窗化桌面。十種主題可即時切換,從 Aurora(現代扁平化預設,有淺色和深色模式)到忠實的復古外觀(Mac OS 7、1 位元 Mac Plus、Windows 3.1、Amiga Workbench、C64、Apple II、NeXTSTEP)。文字經過字距調整,使用抗鋸齒 TrueType 和內建的開放字型,並且所有控制項都可以透過指標或鍵盤存取。
應用程式是可載入的 .UNO 模組,攜帶自己的描述符:將一個放入 APPS\ 目錄中,Shell 就會發現它。無需重新建置,無需重新啟動。
韌體線以下的內容均為原生,為此原始碼樹編寫:
unovirt 在 Intel 硬體上進入 VMX 操作模式,並透過 virtio 裝置運行 EPT 後面的客戶端:一個真實的 Ubuntu 核心在 UnoDOS 下啟動,到達使用者空間,在其 Shell 中回應,並掛載一個從 UnoDOS 磁碟區檔案提供的 ext4 磁碟。Appliances 應用程式和 VM 管理器作為前端;一個 AMD/SVM 後端已編寫完成並等待硬體驗證。
已在 Lenovo ThinkPad X1 Carbon Gen 8(原生觸控板、Wi-Fi、即時主題和解析度切換)、一個永不斷電的 ZimaBlade 測試盒(從 USB 啟動,脫離韌體,完全原生運行),以及在 QEMU+OVMF 環境中進行了驗證,該環境會在每次變更時啟動真實映像檔。pc64/README.md 中的設計筆記記錄了只有真實硬體才能暴露的韌體陷阱;它們是該埠價值的一半。
整個埠使用標準套件建置,無需 EDK2。請參閱 pc64/DEVELOPMENT.md 以了解 Linux 和 Windows 環境設定,以及 pc64/README.md 以了解完整的架構導覽。
UnoDOS 3.1 是合約驅動的:單一機器可讀的合約 (unodef/) 定義了螢幕幾何、視窗和事件佈局以及共用列舉,每個世界都從它生成或對其進行檢查。組語埠和 x86 參考以位元組相同的方式消耗它,並且有十一個埠是基於 3.1 架構全新建置而非遷移,證明了新的目標只需要一小部分生成程式碼。請參閱 docs/UNODOS-3.1-MIGRATION.md 和 docs/CONTRACT-ARCH.md。
每個埠都啟動一個 UnoDOS 桌面,並配備共用應用程式集:Files、Notepad、Music、Theme、Tracker、Paint 和遊戲(Dostris、OutLast、Pac-Man),根據機器能容納的程度進行縮放,最低可達 2 KB RAM 的啟動器設定檔。功能對比可在 docs/FEATURE-MATRIX.md 中找到。
幾個埠已在真實晶片上驗證(NES、PC Engine、Genesis、Mac SE、x86 系列、pc64 的筆記型電腦和 SBC 車隊);其餘的則在模擬器或無 ROM 的指令級模擬器上驗證(Unicorn、py65、一個從頭開始的 65816 核心),因此無需專有 ROM 即可建置或測試任何內容。
原始的 UnoDOS 3:一個針對 IBM PC XT 相容機的 GUI 為先的作業系統,完全以實模式 x86 組語編寫。沒有 DOS,沒有運行時,只有 BIOS 和 Intel 8088 或更高版本。
make hd-image 建置 64 MB FAT16 硬碟映像檔;tools/write.ps1 在 Windows 上將映像檔寫入實體媒體(包含系統磁碟排除和讀取驗證),Linux 上則使用 plain dd。
應用程式是各自 64 KB 區段內的平面 NASM 二進位檔;一個最小的視窗化應用程式大約需要 60 行程式碼。從應用程式開發指南、API 參考(所有 106 個呼叫及其暫存器級詳細資訊)和 docs/ARCHITECTURE.md 開始。
埠保持精簡是因為繁重的工作由共享的程式碼處理:

