- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统内核开发毕业设计 幻灯片答辩演示文档
题目来源
操作系统分类
操作系统国际现状
操作系统国内现状
学习目的
操作系统分类
专用操作系统:
服务器操作系统、特殊用途操作系统
通用操作系统:
Windows、Linux、Mach、Unix、Minix、Solaris等
操作系统国际现状
在操作系统市场上,操作系统软件仍然由国外软件商垄断,部分软件商也在逐渐加入到操作系统市场的竞争当中。微软公司、SUN公司的操作系统现在普遍为国际上所认可,谷歌公司也在加紧开发下一代操作系统进程当中,LINUX\UNIX类操作系统也是操作系统市场当中普遍使用的一类。
操作系统国内现状
在国内操作系统使用当中,仍然以使用国外操作系统为主,包括手机操作系统在内。在上个世纪,我国启动了自主研发专用操作系统的项目,由国内知名大学和联想等企业联合开发出了国内第一款具有自主知识产权的操作系统——银河麒麟操作系统。从此填补了我国操作系统自主研发的空白。
学习目的
鉴于以上国际国内环境,以及操作系统对于整个软件开发产业链的重要环节,我们知道开发一款国内的操作系统所具有的意义,因此我选择了开发操作系统内核作为我的毕业设计。从而深入的了解操作系统的具体原理,并且将在学校所学到的理论知识用于实践当中,得到对操作系统理论更深的认识。
系统功能模块
1、内核加载模块
2、块设备驱动模块
3、字符设备驱动模块
4、任务调度模块
5、高速缓冲区模块
6、中断模块
7、虚拟内存模块
8、主内存区管理模块
9、文件系统模块
软件结构
软件结构
软件结构
软件结构
软件结构
功能实现
内核加载
0000H
0000:7C00H
BOOT
1000:0000H
OS
LOADER
9000:0000H
中断向量BIOS数据
显示器信息
内存大小
硬盘参数
9000:7C00H
功能实现
内核加载流程图
可编程中断控制器8259A设置
ICW1(端口20H和0A0H)
ICW2(端口21H和0A1H)
ICW1必须为1
1=需要ICW4,0=不需要ICW4
主从都是11H
000=80x86系统
设置本8259A芯片的起始中断向量
主片:20H 从片:28H
主片ICW3(端口21H)
从片ICW3(端口0A1H)
1=IR2级联从片,0=无从片
必须为0
连的主片的IR号
从片=02H
主片=04H
ICW4(端口21H和A1H)
1=80x86模式
主从=01H
OCW1(端口21H和A1H)
主从=0FFH
0=IRQ0打开,1=IRQ0关闭
GDT设置
dd ;NULL 0
dd
dd 000007FFh ;CS 8
dd 00c09a00h
dd 000007FFh ;DS 16
dd 00c09200h
设置页目录与GDT、IDT
原型
说明
Double LABEL_GDT[5];
由实模式跳转入保护模式的临时GDT表
unsigned long _page_dir[1024];
内核使用的页目录数组
desc_struct _gdt,_idt;
内核使用的GDT表和IDT表
功能实现
高速缓冲区管理
算法描述
原型
说明
struct task *buffer_wait;
缓冲区等待队列头指针
struct bufferhead *freelist;
空闲缓冲区链表头指针
struct bufferhead *hash[NR_HASH]
缓冲区哈希表
struct bufferhead *start_buffer;
缓冲区开始地址
功能实现
块设备驱动
算法描述:请求项电梯排序、底层驱动
原型
说明
struct hd_info_struct hd_info[MAX_HD];
保存硬盘信息
struct hd_struct hd[MAX_HD*5];
保存每分区扇区数
struct task *wait_request;
请求项等待队列头指针
struct request request_queue[NR_REQUEST];
请求项队列
功能实现
字符设备驱动
算法描述
字符设备驱动模块数据
原型
说明
Char key_flag;
保存Ctrl、alt、shift按键标志
Char led;
LOCK键按下标志
Char Normal_KeyMap[0x61];
普通按键ASCII码数组
Char Normal_ShiftMap[0x61];
Shift键按下时ASCII码数组
Long FunctionList [0x100];
处理不同接通码的函数表
struct Virtual_Control vc[MAX_VC];
虚拟控制台数组
int cur_con;
当前控制台标识
struct buffer_qu
文档评论(0)