鴨子
具有圖形窗口管理器的Hobby Unix狀OS和X86 PC的應用程序,並帶有製作中的AARCH64端口。

演示|功能|應用|端口|如何構建
等候接聽
目前,鴨子的開發被擱置。不過,請隨意分叉,然後弄亂它!
嘗試鴨子
本地虛擬化
最近的版本可以從“發行”頁面下載。另外,可以從Duckos Github工作流的文物中下載最新鴨子的磁盤圖像。然後,可以使用QEMU或您選擇的軟件虛擬化或模擬這一點。
在瀏覽器中模仿
另外,由於通過複製的V86項目,您可以在瀏覽器中嘗試使用Duckos的版本。在本地運行它的速度要慢得多,並且沒有像Doom這樣的移植軟件的副本。您可以在這裡嘗試!
特徵
- 窗口管理器 /複合符以及基於視圖的UI工具包用於創建應用程序
- IP網絡堆棧上帶有UNIX插座和E1000以太網驅動程序的IP網絡堆棧上的基本TCP/UDP
- 對AC97聲卡的聲音支持
- 諸如Doom,公用事業等許多程序端口以及SDL等庫
- 二進制的動態鏈接和加載
- 板上調試功能,例如Ptrace和採樣探查器
- 軟件3D渲染庫
- 在一些真實的硬件上運行
- WIP AARCH64端口,在Raspberry Pi 3B上啟用了第1階段的端口:)
未來計劃
- 完成AARCH64端口
- 改進內核IPC系統提高效率
- 更好的字體渲染(向量字體,不同尺寸等)
- 自主
- 更穩定和速度
- 更好的文件系統緩存實現,可以在需要時釋放內存並定期刷新
- 更多內核和用戶空間單元測試
- 更好的內核,庫和應用程序的文檔
- 更多的內核和用戶空間調試工具,因此每當發生segfault發生時,我不必在QEMU調試器中度過幾個小時,這是由於一個簡單的錯誤,可以避免我的系統中有一些額外的咖啡
- 多處理器(多核)支持
- 慢慢過渡從內核到用戶空間的各種模塊(la microkernel)
- 將生鏽加入混合物(?)
服務
這些代碼可以在服務中找到。
- init(/bin/init):鴨子的初始化系統。
- 池塘(/bin/pond):Duckos的窗戶經理/合成器。
- Quack(/bin/Quack):Duckos的聲音服務器。
- DHCP客戶端(/bin/dhcpclient):用於分配IP地址的DHCP客戶端。
應用
這些代碼可以在程序/應用程序中找到。
- 計算器(/apps/calculator.app):基本計算器。
- 終端(/apps/terminal.app):基於Libui的終端應用程序。
- 系統監視器(/apps/monitor.app):一個基本的系統監視器顯示內存和CPU利用率。
- 4連續(/apps/4inarow.app):一個基本的四英寸行遊戲。與兩個玩家或對付計算機。
- SANDBAR(/bin/sandbar):一個基本的“任務欄”,在屏幕底部顯示啟動應用程序的一行按鈕。
- 文件(/apps/files.app):基本文件資源管理器應用程序。
- 查看器(apps/viewer.app):可以查看圖像並播放聲音文件的基本媒體查看器
- lib3d演示(apps/3demo.app):lib3d庫的演示。默認情況下顯示立方體;可用於查看OBJ文件。
- 編輯器(/apps/editor.app):一個用於編輯文本文件的基本應用。
- 關於(/apps/about.app):顯示一些系統信息。
- DuckSweeper(/Apps/DuckSweeper.App):一個基於網格的鴨子遊戲;)
CLI程序
這些代碼可以在程序/Coreutils中找到。與通常的嫌疑人一起,Duckos還有:
- DSH(/bin/dsh):一個基本的外殼,支持管道,重定向和命令召回。
- 打開(/bin/open):使用適當程序從命令行打開文件和應用程序的實用程序。
- 播放(/bin/play):播放音頻文件。
- 日期(/bin/date):顯示日期和時間。
- 配置文件(/bin/profile):配置文件運行應用程序並輸出flamegraph/speedscope兼容文件。
- 您可以在主機上運行
scripts/debugd.py (安裝了SpeedScope),然後將-r參數傳遞給配置文件,以通過網絡直接將輸出發送到主機,並在SpeedScope中將其打開。
當您在沒有參數的情況下運行這些論點的程序將為您提供正確的用法。
庫
- LIBC:標準C庫。
- libm:標準C庫的數學部分。
- libpond:用於與Pond Window Manager / Compositor接口的庫。
- Libgraphics:一個提供了一些用於處理圖形格式加載等圖形的實用程序的庫。
- Libui:應用程序的UI框架。
- libtui:終端應用程序的框架。
- LIBTERM:處理終端的框架。
- Libduck:包含常用類和實用程序的庫,例如參數和配置文件解析。
- Libriver:IPC庫與D-Bus沒有不同的IPC庫,該庫為遠程功能調用和數據傳遞提供了一個框架。
- Libapp:提供方法來檢索有關已安裝和運行應用程序的信息的庫。
- libsys:為檢索系統信息(即procfs)提供更高級別的C ++抽象。
- LIBSOUND:為音頻應用程序提供了一個框架,並與聲音服務器Quack進行了框架。
- LIB3D:提供基本軟件3D渲染功能。
- libmatrix:提供矩陣數學實用程序。
- libexec:提供精靈支持。
- libdebug:提供調試功能。
端口
可以通過運行端口來安裝端口。 SH以所需的端口作為參數。還將建立和安裝所需的依賴項。
一些更令人興奮的端口是:
- 厄運
- 您需要提供自己的厄運wadfile,然後將其放入/apps/doom.app/目錄中。 (有關更多詳細信息,請參見“構建說明”。)
- Binutils
- 海灣合作委員會
- SDL2
- 另外,sdl2_gfx,sdl2_image和sdl2_ttf
建築物 /跑步
貢獻
學分
- Blanham的liballoc 1.1鏡子,用於內核堆分配實現(這是開放域,因此,如果您想使用它,我強烈建議您使用它)
- Serenityos為很多靈感
- gohufont的字體(根據WTFPL許可)
執照