進入保護模式(十八)持續更新篇

1、代碼結構

|-include
| |
| |_interrupt.h      #中斷的函數頭文件
| |
| |-io.h             #輸入輸出函數的頭文件
| |
| |-process_struct.h #進程處理的結構體文件  
| |
| |-process.h        #進程的頭文件
| |
| |-gloable.h        #放一些全局的變量例如:選擇子
| |
| |-unistd.h         #系統調用的函數對應的選擇       
| |
| |-pci.h            #pci定義的結構體   
|
|-kernel
| |
| |-interrupt.c #中斷處理的C文件
| |
| |-kernel.asm  #內核文件
| |
| |-process.c   #進程處理的文件
|
|-lib
| |
| |-klib.asm    #核心函數文件
| |
| |-printf.c    #輸出擴展C文件
| |
| |-sys_call.asm #系統的函數
| |
| |-sys_printf.c #擴展的系統輸出函數
| |
| |-pci.c        #對pci進行處理的
|
|-mbr.asm

 2、修改記錄

 

############################################################# ##後面的修改將要放在這裏了 ############################################################# java

############################################################# ##2014-02-05-1 ## ##將要把顯示的GDT權限修改成 用戶級別了 ## ##添加的GDT位置從47開始的也就是說已經有5個了,從第六個開始 ## ##添加任務切換的須要 ## ##編譯採用了makefile的使用了(尚未完工) ############################################################# git

############################################################# ##2014-02-07-1 ## ##用戶態的跳轉實現了,發現一個BUG,用戶態不能操做端口 ## ##打算採用系統調用的方式解決這個問題 ## ##等待顯示先切換 ## ##編譯採用了makefile的使用了(尚未完工) ############################################################# github

############################################################# ##2014-02-19-1 ## ##修復BUG多任務的切換出錯 ## ##緣由在與當在GDT中添的LDT少*2形成LDT佔用了上一個LDT的值 ## ##修改位置進程代碼unsigned int ldt_position=LDT_BASIC+(proc_count-1)*8*2; ## ##錯誤緣由多是ldt末16位要爲0;或者是由於佔用了上個LDT的一半 ############################################################# 數組

############################################################# ##2014-02-23-1 ## ##嘗試添加一個系統調用的函數 ## ############################################################# 網絡

############################################################# ##2014-02-26-1 ## ##修復任務切換給TSS的堆棧問題 ## ##以前是給的用戶態堆棧修改後給的是任務保存信息的數據段 ## ############################################################# 函數

############################################################# ##2014-03-12-1 ## ##添加了對PCI的遍歷操做,接下來想處理對PCI網卡的驅動 ## ##遇到一個問題,調用C函數的時候,使用ebp要當心處理 ## ##緣由調用過程當中ebp保存esp,而後esp留空間做爲局部變量,最後lea ret ############################################################# spa

  .net

3、問題以及解決

########################################## ## ##後面的問題和解決思路就放在這裏了 ## ## 2014-02-08 ########################################## 設計

########################################## ##A:用戶態不能操做端口 ########################################## ##   1.打算採用系統調用的方式解決 ##   2.inx 0x80的用戶態實現 ##   3.經過數組的方式尋址 ##   4.若是有參數的問題如何解決 ##---------------------------------------- ##   修改於 2014-02-09 ##---------------------------------------- ##   仔細看了下以爲仍是很複雜的 ##   設計的問題有參數傳遞經過寄存器 ##   環境的保護,堆棧的切換 ########################################## code

########################################## ##B:多任務的添加 2014-02-09 ########################################## ##   1.要知道安裝的gdt位置或者個數是多少 ##   2.暫且規定每一個任務一個註冊的LDT ##   3.每一個任務的LDT個數有兩個 ##   4.決定共享JDT存放的位置了 ##########################################

########################################## ##C:打算實現一個網卡的驅動 2014-03-12 ########################################## ##   1.實現了PCI的遍歷 ##   2.接下來不詳 ##########################################

4、內存劃分

進入保護模式(八)簡單OS內存使用分佈

5、目標

1.通訊的基礎瞭解

2.最終可以實現網絡鏈接、最簡單的網絡命令

3.更新之後放在這裏了 https://github.com/Soap13/PingPangOS/tree/OS/new%20os%20process

相關文章
相關標籤/搜索