进入保护模式(十八)持续更新篇

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

相关文章
相关标签/搜索