序言
在2019年的最后一天終於完成了整個系統的開發,並給它起名曰——Inios 。就如同文章名字一樣,完全是從內核編寫,非二次開發,從最初的“hello os”到初次有了系統的樣子。主要用C語言編寫,部分匯編語言。整個操作系統完成后的大小為
39.6 KB
之所以這么小其實主要是語言的原因,另一個重要原因是在開發中對部分系統代碼和字體庫以及媒體的壓縮。中間進行多次迭代,最終完成整個操作系統的開發Inios。
系統預覽
開發環境及主要工具
- win 8.1 x64 :用來開發Inios的“載體”
- qemu 虛擬機:測試Inios
- wxmedit:16進制編輯器
- nsak:匯編器
- Notepad++:代碼編輯器
- Git:除了提交代碼外,還用來生成特殊文件
系統功能
命令行終端
mem
: 顯示內存的使用情況cls
: 清空控制台內容dir
: 列出目錄type
:查看文件內容hlt
:運行.hrb可執行程序shift+F1
:強制關閉程序enter
:關閉當前應用程序窗口F11
:將最下面的窗口置頂Tab
:切換窗口鼠標點擊
:切換窗口/移動窗口shift+F2
:打開終端/打開另一個終端窗口(支持多個)exit
:關閉當前終端窗口ncst xx
:一個終端可以運行多個程序
保護系統
主要做了“內存訪問權限 ”、“異常”和“應用程序存入DS操作系統用的段地址”。
多任務
常用的多任務,如果一個系統只能運行一個程序的話,其實是缺少靈魂的。
文字顯示
在原來的基礎上,實現了中文顯示,用到HZK16.fnt編碼庫。雖然字體庫較大,但是經過壓縮后,還是小了一半。
鼠標、鍵盤控制
一個操作系統常用的功能,需要說明的一點的是,在進行鼠標控制時,用現在的鼠標控制並不好用,可能是更改了協議,不過值得慶幸的是,用筆記本的觸摸板進行測試,效果還是不錯的。
窗口應用程序
可視化窗口程序支持。
媒體播放
這里的媒體主要是指“音頻”,說是音頻,其實不如說“蜂鳴器”演奏的好,因為我們的音樂都是用“蜂鳴器”來發聲的。
壓縮
采用的是作者自己做的壓縮工具,前后權衡,既可以保證壓縮率,也可保證解壓速度——tek
壓縮。
圖片預覽
支持jpg
和bmp
格式圖片預覽。
初始開發文檔
起初是想這每天都會記錄,記錄包括但不限於開發中的bug及容易忽略的問題和技巧。但是由於時間原因只是寫了6天的文檔,后面的會后續補充。仔細想想這6天其實也足夠了,其中包括開發中所需要的初始流程及工具的介紹和使用。如果您也想試着開發玩玩,不妨看下這個簡單的文檔。文檔鏈接:說明文檔.pdf
寫在最后
至此文章寫完,雖然每次都進行測試。但難免有所疏漏,如有有問題,歡迎指正,我將不勝感激。項目開源,如果您對此有着興趣歡迎繼續開發。如果可以的話,可以點一個一個star
支持項目地址或點下喜歡♥ 這將是對我最大的鼓勵,拳拳謝意,無以言表。
參考文獻
- 《匯編語言(第三版)王爽著》
- 《操作系統設計與實現 上冊 Andrew S.Tanenbaum 著》
- 《30天自制操作系統 川合秀實 著》