- ISBN:9787111746683
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:164
- 出版时间:2024-04-01
- 条形码:9787111746683 ; 978-7-111-74668-3
本书特色
亲自动手设计和实现一个具备基本功能的操作系统内核是学习操作系统的有效方式。本书以作者团队开发的基于龙芯指令集的MaQueOS为主线,详细介绍了操作系统的进程管理、内存管理、文件系统、中断管理和外设驱动等功能的实现方法。本书采用循序渐进的写作方式,每一章的内容均是在前一章内容基础上对功能进行迭代而实现的,*终形成一个完整的操作系统。书中提供了各个关键函数、功能的源代码,并附有详细的说明和注释,读者可通过研读代码理解操作系统不同功能的实现方法以及各个功能间如何实现协同工作。
内容简介
本书以基于LoongArch架构的教学版操作系统MaQueOS为主线,详细介绍了操作系统内核的设计和实现方法。在介绍MaQueOS的功能的基础上,依次介绍了显示器驱动、时钟中断、键盘驱动、进程0和进程1的创建与运行、进程的挂起与唤醒、硬盘驱动、xtfs文件系统、进程1加载可执行文件、页例外、进程间通信和文件操作的实现方法。本书结构清晰、循序渐进,既突出操作系统的基本原理,又强调动手实现,适合作为高校计算机类专业操作系统相关的教材,也适合作为技术人员的参考书。
目录
前言
第0章 绪论1
0.1 MaQueOS的功能1
0.1.1 进程管理2
0.1.2 内存管理4
0.1.3 文件系统4
0.1.4 外设驱动5
0.1.5 中断管理5
0.2 系统功能测试5
第1章 显示器驱动7
1.1 显示器的显示原理7
1.1.1 显示模式7
1.1.2 字符显示7
1.2 printk函数10
1.2.1 显示字符串10
1.2.2 字符擦除12
1.2.3 回车换行13
1.2.4 卷屏13
1.2.5 删除字符14
1.2.6 panic函数15
1.3 本章任务15
第2章 时钟中断16
2.1 时钟中断初始化16
2.1.1 恒定频率定时器16
2.1.2 初始化17
2.1.3 开中断18
2.2 时钟中断的处理过程18
2.2.1 中断硬件18
2.2.2 中断现场保存与恢复19
2.2.3 中断处理21
2.2.4 中断返回21
2.3 本章任务22
第3章 键盘驱动23
3.1 物理内存管理23
3.1.1 初始化24
3.1.2 申请25
3.1.3 释放26
3.2 初始化键盘中断27
3.3 键盘中断的处理过程29
3.4 本章任务32
第4章 进程0的创建与运行34
4.1 虚拟内存管理34
4.1.1 初始化35
4.1.2 建立页表映射37
4.2 创建进程038
4.3 进程0的运行41
4.3.1 进程0进入用户态41
4.3.2 TLB重填例外的处理过程42
4.4 时钟中断的处理过程44
4.4.1 中断响应及处理44
4.4.2 中断返回46
4.5 本章任务46
第5章 进程1的创建与运行48
5.1 创建进程148
5.1.1 系统调用48
5.1.2 fork系统调用51
5.1.3 系统调用返回54
5.2 进程切换55
5.2.1 时钟中断55
5.2.2 从进程0切换到进程156
5.2.3 进程1的运行59
5.3 本章任务59
第6章 进程的挂起、唤醒与终止60
6.1 不可中断挂起与唤醒60
6.1.1 不可中断挂起62
6.1.2 唤醒不可中断挂起进程64
6.2 可中断挂起与唤醒65
6.3 进程终止66
6.3.1 exit系统调用66
6.3.2 释放进程资源67
6.4 本章实例69
6.5 本章任务72
第7章 硬盘驱动73
7.1 初始化硬盘73
7.2 读写硬盘77
7.2.1 发送读写命令77
7.2.2 硬盘中断处理78
7.3 硬盘读写实例80
7.3.1 创建硬盘镜像文件81
7.3.2 读硬盘82
7.3.3 写硬盘85
7.4 本章任务86
第8章 xtfs文件系统87
8.1 xtfs文件系统概述87
8.2 格式化xtfs文件系统87
8.2.1 格式化xtfs.img88
8.2.2 格式化实例88
8.3 文件复制89
8.3.1 加载0/1号数据块90
8.3.2 复制数据块90
8.3.3 创建数据块索引表92
8.3.4 初始化inode数据结构93
8.3.5 写回0/1号数据块94
8.3.6 复制实例94
8.4 本章任务97
第9章 进程1加载可执行文件98
9.1 挂载xtfs文件系统98
9.2 xt可执行文件100
9.2.1 编译xt可执行文件100
9.2.2 shell程序102
9.3 加载可执行文件104
9.4 进程1的运行108
9.5 本章实例109
9.6 本章任务109
第10章 页例外111
10.1 页无效例外111
10.1.1 触发页无效例外112
10.1.2 处理页无效例外114
10.2 页修改例外116
10.2.1 触发页修改例外118
10.2.2 处理页修改例外118
10.3 本章实例120
10.4 本章任务122
第11章 进程间通信123
11.1 共享内存123
11.1.1 初始化123
11.1.2 与共享页建立映射的
虚拟页125
11.1.3 shmem系统调用127
11.1.4 复制页表128
11.1.5 释放页表129
11.1.6 共享内存实例130
11.2 软件定时器131
11.2.1 软件定时器的实现原理131
11.2.2 软件定时器实例133
11.3 本章任务134
第12章 文件操作135
12.1 创建文件135
12.1.1 创建文件的过程135
12.1.2 创建文件实例137
12.2 写文件140
12.2.1 打开文件的过程140
12.2.2 写文件的过程141
12.2.3 关闭文件的过程142
12.2.4 写文件实例144
12.3 读文件146
12.3.1 读文件的过程146
12.3.2 读文件实例146
12.4 删除文件147
12.4.1 删除文件的过程147
12.4.2 删除文件实例149
12.5 本章任务150
附 录151
附录A 实验环境的搭建151
附录B LoongArch汇编指令153
附录C LoongArch控制状态寄存器157
附录D MaQueOS库函数159
附录E 飞机大战程序设计163
作者简介
周庆国,1973年出生,福建人,理学博士,教授,博士生导师,兰州谷歌开发者社区(Lanzhou GDG)负责人,现任兰州大学分布式与嵌入式系统实验室主任、开源软件与实时系统工程研究中心副主任。已在国内外学术期刊上发表论文 51 篇(SCI 7 篇,EI 24 篇)。
-
断代(八品)
¥15.5¥42.0 -
家居设计解剖书
¥29.3¥39.0 -
当代中国政府与政治(新编21世纪公共管理系列教材)
¥30.2¥48.0 -
中医基础理论
¥50.7¥59.0 -
习近平新时代中国特色社会主义思想概论
¥18.2¥26.0 -
编辑审稿实务教程
¥35.1¥45.0 -
社会学概论(第二版)
¥33.0¥55.0 -
古代汉语(第四册)
¥13.3¥35.0 -
当代教育心理学(第3版)(本科教材)
¥23.8¥66.0 -
落洼物语
¥8.4¥28.0 -
EPLAN电气设计
¥29.9¥39.8 -
软件定义网络(SDN)实战教程
¥49.6¥69.8 -
[社版]大汉战神:霍去病传
¥14.0¥40.0 -
介入护理学(案例版)
¥52.4¥69.8 -
学前教育史(第二版)
¥31.2¥48.0 -
西方经济学(宏观部分·第八版)(21世纪经济学系列教材)
¥41.7¥49.0 -
西方经济学(微观部分·第八版)(21世纪经济学系列教材)
¥17.9¥56.0 -
数理经济学的基本方法(第4版)(精)
¥56.9¥79.0 -
老子道德经注校释(精)/新编诸子集成
¥30.1¥43.0 -
科技论文规范写作与编辑(第4版)
¥63.0¥75.0