大家關注的話,可看此部落格
....................
2023年開始接觸計算機的我,一轉眼5年過去了,光陰似箭,但一心要究其計算機之原委,研其之本質。由於本人天資愚鈍,數年過去,一無所成。然,本性固執,終於在2023年10月下旬開始了自主作業系統的旅程,一路走來,此中艱辛,自是不必提及。那固執的堅持終究還是讓我的os核心成一雛形。風風火火的趕了差不多一年的路,是該停下了來歇歇腳了。於是有了這第一版的發布,這第一版極其簡陋,所以心有顧及,怕貽笑大方,但大凡世間萬事,不能一蹴而就。每種設計、每種演算法、每個資料結構、每一行**,都親自編碼,親自優化,親自測試,點點滴滴都了然於心。想到這裡也就心無顧及了。
由於從設計到實現都是從「0」到「1」的過程,並以現存任何作業系統無近親關係。所以我用了
liberty的第乙個字母l,代表自主、自由,加上乙個人寫作業系統核心實屬瘋狂之舉。所以我用了
madness的第乙個字母m,合起來就叫lmos。
lmos是乙個多工的全32位的作業系統核心,不是完整的作業系統。在次重申。lmos是執行在x86架構的多程序、多執行緒的作業系統核心。包含現代意義作業系統核心的所有特性,只是它還很簡單,很年輕。
關於lmos特性
多程序,多執行緒:
在lmos中程序是執行緒執行資源的容器。在這個容器中lmos維護6種不同狀態的執行緒佇列,還包含了這這些執行緒執行時所需的資源,比如所有執行緒共同的虛擬記憶體空間,開啟的檔案數等等……而每個執行緒,lmos則為其維護其自身的核心棧、機器上下文等……lmos核心排程的基本單元是執行緒。每個程序又可能在8個cpu核之間遷移。lmos是支援多cpu的系統。lmos原生支援核心級搶占,但這個版本不會包含此特性,由於**穩定程度不夠,所以核心執行時不會啟用此特性。
物理記憶體管理特性:
32位系統物理記憶體最多可管理4gb,lmos物理記憶體管理器綜合了儲存節點、記憶體區間、夥伴系統、記憶體物理頁面,每個儲存節點支援多個記憶體區間,每個記憶體區間上建立了夥伴系統,用夥伴系統管理乙個記憶體區間的若干個物理記憶體頁面。對於小於乙個頁面大小的核心物件則採用先進的記憶體池技術對其管理。lmos的記憶體池管理器還綜合了cpu快取記憶體的特性。儲存節點的引入是為了對付非一致性記憶體。要說明一點的是,lmos暫時是基於x86cpu標準分頁系統,暫時沒有啟用x86mmu擴充套件分頁特性,比如36根實體地址線這樣的特性,以後會支援的。這樣的物理記憶體管理器非常健壯、高效。
io管理特性:
io管理器是一層次化的子系統,細分為介面層、通用層、檔案系統層,快取記憶體層、驅動程式層、物理硬體層。介面層:祥細定義上層標準一致介面,和應用程式進行通訊。通用層:定義了檔案系統層的編寫規範,只要符合些規範的檔案系統模組,都可以載入進通用層管理器中,通用層的上層和介面層通訊,下層和各種檔案系統通訊。 檔案系統層:檔案系統層可以實現各種各樣的檔案系統。它們從快取記憶體中得到資料並加於處理。快取記憶體層:快取記憶體管理器在記憶體中分配一大塊記憶體空間,用於快取各種裝置的資料。快取記憶體層的上層和檔案系統層通訊,下層和各種裝置驅動程式通訊。驅動層提供各種物理裝置的操作機制。物理硬體層用於管理物理裝置物件,和驅動層互動。
...........................
自主作業系統LMOS 00 05出來啦!!
更多祥情請參閱我的cu部落格 微博 通過微博 qq大家可以和我一起 計算機相關的東西,或者lmos的一些 相關細節,又或者我若有必要也可以向大家請教一些問題。這是lmos第五個開發版,修復了少量的bug,主要實現了x86 64體 系的smp模組,畢竟這是個多cpu的時代,高階智慧型手機都4核 8核了...
乙個小作業系統
1 1 chapter1 a boot.asm 乙個 作業系統 可以只有20行 把下面這段 用nasm編譯一下 nasm boot.asm o boot.bin org 07c00h 告訴編譯器程式載入到7c00處 mov ax,cs mov ds,ax mov es,ax call dispstr...
乙個簡單的作業系統
電腦上電後,bios在自檢後會根據使用者指定的裝置啟動作業系統。假設我們指定軟盤為啟動盤,bios會把軟盤的第乙個扇區 512位元組 讀取到記憶體的0x7c00處,如果這個扇區的最後兩個位元組為0xaa55,bios會跳轉到0x7c00處開始執行。我們可以利用這樣乙個過程做乙個簡單的作業系統。我們的...