ubuntu下30天自製os 的學習計畫

2022-10-11 15:09:13 字數 1553 閱讀 4176

30天自製os的學習也告一段落,由於有其他更重要的事情要集中精力去處理。書本從15天開始就是多工了。可是不得不停下一陣子。

以下總結下學習中遇到的一些問題。

1:學習這前14天中。問題最大的是關於gdt。idt的理解,還有段的訪問長段,屬性的理解。

2:這當中遇到的乙個現象就是從qemu能夠正常啟動,可是寫到u盤後。從u盤啟動時,會不停的重新啟動。能夠推測到是由於產生了一些異常導致電腦重新啟動,可是由於水平有限一直不知道為什麼, 後來放下30天這本書。去看了一下,關於gdt的訪問屬性的問題,發現出現故障的原因例如以下:

段的分頁位沒有開,導致從段基址開始,能訪問的空間僅僅有1mb的範圍,而博主寫的**與日本作者的有些不同。跳轉到c語言寫的**指令已經超過了2mb。

日本作者的**在初始化gdt,idt的函式中,對**段的長度進行了控制 

3:在10幾天的**中。最難理解理解的還是關於圖層重新整理的那一塊,儘管**是參考書本上敲的。可是還是有非常多不太理解,當然僅僅知道是怎麼用的,似乎是基礎有點薄弱的原因。

4:之前寫的512位元組的**是用intel的組合語言寫的,第二次學習時,所實用gnu的at&t語法進行了改寫,通過對u盤啟動的研究,發現了關於u盤的一些chs的特點。當然這一點為以後學習linux核心時。改動為從u盤啟動是有幫助的。

5:學完書本上第14天的內容後,發現之前寫的**有非常多bug,當然這些bug在後面都給修復了。

不停的修復bug。也為後面的學習提供了一些方便。由於前面的學習過程中沒有太注重**的可讀性,當然僅僅為了自己能看懂。寫了非常多凝視。在13天中,對**的函式進行了分模組的整理。對全域性變數的存放位置也有更好的存放位置,**的結構也更清楚了。

6:了解到github。在管理**方面強大的功能,所以後面也把**直接放到了github上,學習了一點github的基礎知識,**的同步,改動也方便了非常多。

7:在移植ucgui時。對於靜態鏈結庫的使用。也有更深入的理解,由於須要寫makefile來編譯ucgui,對於makefile檔案的編寫也有了更深入的了解,當然學習還是不夠系統。後面應該找本makefile的書,系統的看一遍。

8:關於不同解析度的顯示問題。有些問題。難道不能在32位的模式下,用c語言來進行設定嗎?不同的模式。不同的vram的位址也不同,所以32位的系統僅僅能用2.6gb 左右的記憶體,高址的記憶體有一部分給分配給視訊記憶體了。關於高解析度的第14天的關半部分。日本作者寫的有點問題,直接給出了vram的位址是0xe0000000是不科學的,導致博主覺得自己的**有問題。看了好幾次。發現沒有問題。於是直接往書的後面看。發現vram的位址是通過中斷讀到的,然後把讀到的vram位址儲存起來,以便後面在c語言的函式中使用。

qq group:159336168

以下就放一張從u盤啟動的**吧。實現功能到了第14天的高解析度顯示和簡單的鍵盤輸入。

至於15天和後面的學習。等到了放暑假時,在家學習吧。

30天自製作業系統

第一天的內容很少,是一些簡單的基礎知識,在這裡我就沒有必要寫出來了,只說出大概的輪廓了,然後我會對其中的幾點進行詳細的解釋。文章的第一天的輪廓大概是這樣的,作者首先用二進位制編輯器做了乙個顯示二進位制的程式,然後用彙編完全db的形式,後又進行改善,最後以比較標準的組合語言編寫,但程式主體部分還沒有翻...

30天自製作業系統 導讀

說明 這是8月15日即將上市的一本新書,本文的摘選也可以命名為 30天自製作業系統 上市之前必讀。本書幽默,有趣,可以說是技術書裡的幽默書,讓您讀起來絕對不會感到乏味。在本書上市之前,您一定先要讀下此篇文章,可以避免在學習中走更多的閱讀彎路,因為更多的讀者會問,七百多頁,30天?是的,看完此篇內容,...

30天自製作業系統 startHaribote

haribote os tab 4 org 0x8400 mov si,msg call putloop mov al,0x13 mov ah,0x00 int 0x10 fin hltjmp fin msg db 0x0a db test db 0 putloop mov al,si add si...