书籍详情
计算机操作系统实践教程
作者:黄延辉
出版社:清华大学出版社
出版时间:1900-01-01
ISBN:9787302148005
定价:¥19.00
购买这本书可以去
内容简介
操作系统是计算机系统的重要组成部分,实践是学习操作系统的最好途径。本书是一本与操作系统理论教材相配套的实践教材。全书主要介绍了GeekOS教学操作系统的设计原理和精心为学生设计的7个设计项目。这7个项目涵盖了操作系统所有重要的原理和机制,通过这些项目的设计与实现,可以很好地帮助学生深入了解操作系统内核设计及其工作原理。本书共分为两部分:第一部分主要介绍GeekOS操作系统、课程设计环境的搭建以及一些重要的源文件的代码及注释;第二部分是对GeekOS项目设计的指导——内核编译运行、内核线程管理、用户级线程管理、进程调度算法、分页存储管理、文件系统设计和多用户文件系统访问控制等。本书既可以作为高等院校计算机相关专业操作系统课程的实践教材,也可以供相关专业的技术人员参考使用。
作者简介
暂缺《计算机操作系统实践教程》作者简介
目录
第1章 GeekOS教学操作系统概论
1.1 引言
1.2 GeekOS教学操作系统
1.2.1 GeekOS概述
1.2.2 GeekOS的存储器管理
1.2.3 GeekOS支持的设备
1.2.4 GeekOS的中断和线程
1.2.5 GeekOS系统引导和初始化
1.2.6 GeekOS系统源代码结构和设计项目
第2章 课程设计开发环境
2.1 Cygwin介绍
2.1.1 Cygwin简述
2.1.2 Cygwin安装与设置
2.1.3 Cygwin使用
2.2 安装Linux
2.2.1 安装虚拟机
2.2.2 在虚拟机上安装Linux
2.2.3 安装VMware Tools和实现文件共享
2.3 工具软件
2.3.1 GNU gcc编译器
2.3.2 NASM汇编器
2.3.3 GNU gdb调试器
2.4 Bochs PC 模拟器
2.4.1 Bochs安装和使用
2.4.2 在Bochs中运行GeekOS
第3章 make工具和makefile规则
3.1 makefile文件
3.1.1 makefile文件内容
3.1.2 makefile规则
3.1.3 makefile文件示例
3.1.4 make工作原理
3.1.5 makefile宏
3.1.6 make隐含规则
3.1.7 clean命令的应用
3.2 GeekOS的makefile文件
第4章 PC启动原理及GeekOS启动程序
4.1 PC启动原理
4.1.1 计算机系统启动
4.1.2 引导程序
4.1.3 内核程序导入
4.2 保护模式
4.2.1 保护模式
4.2.2 实模式和保护模式
4.2.3 进入保护模式
4.3 GeekOS启动程序分析
4.3.1 fd_boot.asm代码分析
4.3.2 setup.asm代码分析
4.3.3 lowlevel.asm代码分析
第5章 GeekOS进程管理
5.1 GeekOS进程状态及转换
5.2 GeekOS内核进程
5.2.1 内核进程控制块
5.2.2 GeekOS系统中最早的内核进程
5.2.3 内核进程对象
5.3 进程调度
5.3.1 内核进程切换
5.3.2 用户进程切换
5.3.3 GeekOS进程调度策略
5.4 内核进程主要操作函数
5.4.1 Init_Thread函数
5.4.2 Create_Thread函数
5.4.3 Destroy_Thread函数
5.4.4 Reap_Thread函数
5.4.5 Detach_Thread函数
5.4.6 Start_Kernel_Thread函数
5.4.7 Setup_Kernel_Thread 函数
5.4.8 Make_Runnable函数
5.4.9 Make_Runnable_Atomic函数
5.4.10 Get_Current函数
5.4.11 Get_Next_Runnable函数
5.4.12 Schedule函数
5.4.13 Join 函数
5.4.14 Lookup_Thread函数
5.4.15 Wait函数
5.4.16 Wake_Up函数
5.4.17 Wake_Up_One函数
5.4.18 Dump_All_Thread_List函数
第6章 GeekOS分页存储管理
6.1 存储器分页管理机制
6.2 线性地址到物理地址的转换
6.2.1 映射表结构
6.2.2 表项格式
6.2.3 线性地址到物理地址的转换
6.2.4 不存在的页表
6.2.5 页的共享
6.3 页级保护和虚拟存储器支持
6.3.1 页级保护
6.3.2 虚拟存储器技术
6.4 页故障
6.5 GeekOS分页系统数据结构
6.5.1 页目录表和页表项数据结构
6.5.2 物理页数据结构和页状态
6.6 GeekOS分页系统主要操作函数
6.6.1 Alloac_Page函数
6.6.2 Alloac_Pageable_Page函数
6.6.3 Find_Page_To_Page_Out函数
6.6.4 Free_Page函数
6.6.5 Page_Fault_Handler函数
6.6.6 Print_Fault_Info函数
第7章 GeekOS文件系统
7.1 GeekOS文件系统框架
7.2 虚拟文件系统层
7.3 高速缓冲区
7.4 PFAT文件系统
7.5 PFAT文件系统操作函数
7.5.1 Copy_Stat函数
7.5.2 PFAT_FStat函数
7.5.3 PFAT_Read函数
7.5.4 PFAT_Write函数
7.5.5 PFAT_Seek函数
7.5.6 PFAT_Read_Entry函数
7.5.7 PFAT_Lookup函数
7.5.8 Get_PFAT_File函数
7.5.9 PFAT_Open 函数
7.5.10 PFAT_Open_Directory函数
7.5.11 PFAT_Mount函数
7.5.12 Init_PFAT函数
7.5.13 Register_Filesystem函数
7.6 虚拟文件系统函数
7.6.1 Unpack_Path 函数
7.6.2 Lookup_Filesystem函数
7.6.3 Lookup_Mount_Point函数
7.6.4 Format函数
7.6.5 Mount函数
7.6.6 Open函数
7.6.7 Do_Open函数
7.6.8 Close函数
7.6.9 Read函数
7.6.10 Write函数
7.6.11 Seek函数
7.6.12 Create_Directory函数
7.6.13 Delete函数
第8章 GeekOS设计项目0
8.1 项目设计目的
8.2 项目设计要求
8.3 GeekOS键盘处理函数
8.4 项目设计提示
第9章 GeekOS设计项目1
9.1 项目设计目的
9.2 项目设计要求
9.3 ELF文件格式
9.3.1 可执行文件
9.3.2 ELF(可执行连接格式)
9.3.3 ELF Header
9.3.4 程序头部(Program Header)
9.3.5 节区头部表格(section header table)
9.4 用户可执行程序装入
9.5 项目设计提示
第10章 GeekOS设计项目2
10.1 项目设计目的
10.2 项目设计要求
10.3 项目设计提示
10.3.1 GeekOS的用户态进程
10.3.2 用户态进程空间
10.3.3 用户堆栈空间初始化
10.3.4 用户态进程创建
第11章 GeekOS设计项目3
11.1 项目设计目的
11.2 项目设计要求
11.3 项目设计提示
11.3.1 GeekOS进程调度处理过程
11.3.2 四级反馈队列调度策略实现
11.3.3 进程调度策略评价
11.3.4 GeekOS系统中的进程同步
第12章 GeekOS设计项目4
12.1 项目设计目的
12.2 项目设计要求
12.3 项目设计提示
12.3.1 为内核程序空间建立页表
12.3.2 为用户进程建立页表
12.3.3 请求分页技术实现
12.3.4 进程终止处理
12.3.5 系统完善处理
第13章 GeekOS设计项目5
13.1 项目设计目的
13.2 项目设计要求
13.3 项目设计提示
13.3.1 GOSFS磁盘格式
13.3.2 文件与目录
13.3.3 GOSFS文件系统数据结构和操作
参考文献
1.1 引言
1.2 GeekOS教学操作系统
1.2.1 GeekOS概述
1.2.2 GeekOS的存储器管理
1.2.3 GeekOS支持的设备
1.2.4 GeekOS的中断和线程
1.2.5 GeekOS系统引导和初始化
1.2.6 GeekOS系统源代码结构和设计项目
第2章 课程设计开发环境
2.1 Cygwin介绍
2.1.1 Cygwin简述
2.1.2 Cygwin安装与设置
2.1.3 Cygwin使用
2.2 安装Linux
2.2.1 安装虚拟机
2.2.2 在虚拟机上安装Linux
2.2.3 安装VMware Tools和实现文件共享
2.3 工具软件
2.3.1 GNU gcc编译器
2.3.2 NASM汇编器
2.3.3 GNU gdb调试器
2.4 Bochs PC 模拟器
2.4.1 Bochs安装和使用
2.4.2 在Bochs中运行GeekOS
第3章 make工具和makefile规则
3.1 makefile文件
3.1.1 makefile文件内容
3.1.2 makefile规则
3.1.3 makefile文件示例
3.1.4 make工作原理
3.1.5 makefile宏
3.1.6 make隐含规则
3.1.7 clean命令的应用
3.2 GeekOS的makefile文件
第4章 PC启动原理及GeekOS启动程序
4.1 PC启动原理
4.1.1 计算机系统启动
4.1.2 引导程序
4.1.3 内核程序导入
4.2 保护模式
4.2.1 保护模式
4.2.2 实模式和保护模式
4.2.3 进入保护模式
4.3 GeekOS启动程序分析
4.3.1 fd_boot.asm代码分析
4.3.2 setup.asm代码分析
4.3.3 lowlevel.asm代码分析
第5章 GeekOS进程管理
5.1 GeekOS进程状态及转换
5.2 GeekOS内核进程
5.2.1 内核进程控制块
5.2.2 GeekOS系统中最早的内核进程
5.2.3 内核进程对象
5.3 进程调度
5.3.1 内核进程切换
5.3.2 用户进程切换
5.3.3 GeekOS进程调度策略
5.4 内核进程主要操作函数
5.4.1 Init_Thread函数
5.4.2 Create_Thread函数
5.4.3 Destroy_Thread函数
5.4.4 Reap_Thread函数
5.4.5 Detach_Thread函数
5.4.6 Start_Kernel_Thread函数
5.4.7 Setup_Kernel_Thread 函数
5.4.8 Make_Runnable函数
5.4.9 Make_Runnable_Atomic函数
5.4.10 Get_Current函数
5.4.11 Get_Next_Runnable函数
5.4.12 Schedule函数
5.4.13 Join 函数
5.4.14 Lookup_Thread函数
5.4.15 Wait函数
5.4.16 Wake_Up函数
5.4.17 Wake_Up_One函数
5.4.18 Dump_All_Thread_List函数
第6章 GeekOS分页存储管理
6.1 存储器分页管理机制
6.2 线性地址到物理地址的转换
6.2.1 映射表结构
6.2.2 表项格式
6.2.3 线性地址到物理地址的转换
6.2.4 不存在的页表
6.2.5 页的共享
6.3 页级保护和虚拟存储器支持
6.3.1 页级保护
6.3.2 虚拟存储器技术
6.4 页故障
6.5 GeekOS分页系统数据结构
6.5.1 页目录表和页表项数据结构
6.5.2 物理页数据结构和页状态
6.6 GeekOS分页系统主要操作函数
6.6.1 Alloac_Page函数
6.6.2 Alloac_Pageable_Page函数
6.6.3 Find_Page_To_Page_Out函数
6.6.4 Free_Page函数
6.6.5 Page_Fault_Handler函数
6.6.6 Print_Fault_Info函数
第7章 GeekOS文件系统
7.1 GeekOS文件系统框架
7.2 虚拟文件系统层
7.3 高速缓冲区
7.4 PFAT文件系统
7.5 PFAT文件系统操作函数
7.5.1 Copy_Stat函数
7.5.2 PFAT_FStat函数
7.5.3 PFAT_Read函数
7.5.4 PFAT_Write函数
7.5.5 PFAT_Seek函数
7.5.6 PFAT_Read_Entry函数
7.5.7 PFAT_Lookup函数
7.5.8 Get_PFAT_File函数
7.5.9 PFAT_Open 函数
7.5.10 PFAT_Open_Directory函数
7.5.11 PFAT_Mount函数
7.5.12 Init_PFAT函数
7.5.13 Register_Filesystem函数
7.6 虚拟文件系统函数
7.6.1 Unpack_Path 函数
7.6.2 Lookup_Filesystem函数
7.6.3 Lookup_Mount_Point函数
7.6.4 Format函数
7.6.5 Mount函数
7.6.6 Open函数
7.6.7 Do_Open函数
7.6.8 Close函数
7.6.9 Read函数
7.6.10 Write函数
7.6.11 Seek函数
7.6.12 Create_Directory函数
7.6.13 Delete函数
第8章 GeekOS设计项目0
8.1 项目设计目的
8.2 项目设计要求
8.3 GeekOS键盘处理函数
8.4 项目设计提示
第9章 GeekOS设计项目1
9.1 项目设计目的
9.2 项目设计要求
9.3 ELF文件格式
9.3.1 可执行文件
9.3.2 ELF(可执行连接格式)
9.3.3 ELF Header
9.3.4 程序头部(Program Header)
9.3.5 节区头部表格(section header table)
9.4 用户可执行程序装入
9.5 项目设计提示
第10章 GeekOS设计项目2
10.1 项目设计目的
10.2 项目设计要求
10.3 项目设计提示
10.3.1 GeekOS的用户态进程
10.3.2 用户态进程空间
10.3.3 用户堆栈空间初始化
10.3.4 用户态进程创建
第11章 GeekOS设计项目3
11.1 项目设计目的
11.2 项目设计要求
11.3 项目设计提示
11.3.1 GeekOS进程调度处理过程
11.3.2 四级反馈队列调度策略实现
11.3.3 进程调度策略评价
11.3.4 GeekOS系统中的进程同步
第12章 GeekOS设计项目4
12.1 项目设计目的
12.2 项目设计要求
12.3 项目设计提示
12.3.1 为内核程序空间建立页表
12.3.2 为用户进程建立页表
12.3.3 请求分页技术实现
12.3.4 进程终止处理
12.3.5 系统完善处理
第13章 GeekOS设计项目5
13.1 项目设计目的
13.2 项目设计要求
13.3 项目设计提示
13.3.1 GOSFS磁盘格式
13.3.2 文件与目录
13.3.3 GOSFS文件系统数据结构和操作
参考文献
猜您喜欢