顶部
收藏

操作系统设计与实现

“十二五”普通高等教育本科国家级规划教材

作者:
陈文智
定价:
36.00元
ISBN:
978-7-04-046752-9
版面字数:
360.000千字
开本:
16开
全书页数:
暂无
装帧形式:
平装
重点项目:
“十二五”普通高等教育本科国家级规划教材
出版时间:
2017-02-10
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
操作系统

本书为“基于系统能力培养的计算机专业课程建设研究”项目规划教材。本书定位于初学者的动手实践类操作系统教材,可带领读者一步步从无到有,实现一个近1万行的小型内核Lcore。

全书共10章。第1章简单回顾操作系统的基本原理;第2章从操作系统五大模块入手设计Lcore系统;第3章为Lcore添加VGA显示功能;第4章从时钟中断入手讨论如何在内核中实现中断处理;第5章实现键盘输入功能;第6章分别实现内存管理系统的Bootmem、Buddy、Slub分配器;第7章介绍进程管理初始化、进程创建、页异常处理和进程调度;第8章实现一个能够在Lcore内核中运行的类FAT32文件系统,同时也涉及如何编写一个SD卡的小驱动;第9章实现系统调用模块;第10章开发一款专属、简单的shell。附录是硬件实验平台手册,说明平台的有关使用细节,以便读者在开发过程中随时查阅。

本书可作为本科计算机类专业操作系统课程配套的实践教材,也可供有关技术人员参考。

  • 前辅文
  • 第1章 操作系统开发介绍
    • 1.1 操作系统原理
      • 1.1.1 进程管理
      • 1.1.2 内存管理
      • 1.1.3 文件管理
      • 1.1.4 I/O设备管理
      • 1.1.5 用户接口
    • 1.2 实验平台简介
      • 1.2.1 物理实验平台
      • 1.2.2 计算机硬件体系结构
      • 1.2.3 QS模拟器
      • 1.2.4 平台指令集
    • 1.3 开发环境搭建
      • 1.3.1 交叉编译工具链
      • 1.3.2 QS模拟器使用
      • 1.3.3 其他工具
    • 小结
  • 第2章 系统设计与初始化
    • 2.1 Lcore整体设计
      • 2.1.1 进程管理
      • 2.1.2 内存管理
      • 2.1.3 文件系统
      • 2.1.4 I/O设备
      • 2.1.5 用户接口
    • 2.2 建立初始化框架
      • 2.2.1 init_kernel函数
      • 2.2.2 中断异常入口
      • 2.2.3 内核页表初始化
      • 2.2.4 其他初始化
    • 小结
  • 第3章 VGA显示功能
    • 3.1 VGA初始化
      • 3.1.1 实验平台VGA介绍
      • 3.1.2 实现VGA初始化
    • 3.2 实现put_char函数
      • 3.2.1 scroll_screen函数
      • 3.2.2 put_char_ex函数
      • 3.2.3 put_char函数
    • 3.3 实现printk函数
      • 3.3.1 可变参数函数
      • 3.3.2 相关子函数的实现
      • 3.3.3 printk函数的实现
    • 小结
  • 第4章 处理时钟中断
    • 4.1 硬件的外部中断
      • 4.1.1 机制剖析
      • 4.1.2 相关硬件接口
    • 4.2 中断处理注册机制
      • 4.2.1 相关数据结构
      • 4.2.2 中断处理入口
      • 4.2.3 中断处理注册
    • 4.3 时钟中断实现
      • 4.3.1 时钟中断注册
      • 4.3.2 显示信息规划
      • 4.3.3 系统时间显示
    • 小结
  • 第5章 键盘输入功能
    • 5.1 键盘中断处理
      • 5.1.1 相关硬件接口
      • 5.1.2 实现键盘中断处理
    • 5.2 键盘扫描码解析
      • 5.2.1 键盘扫描码
      • 5.2.2 解析扫描码
    • 小结
  • 第6章 物理内存管理
    • 6.1 内存管理策略
    • 6.2 Bootmem管理实现
      • 6.2.1 Bootmem数据结构
      • 6.2.2 Bootmem初始化
    • 6.3 Buddy系统实现
      • 6.3.1 Buddy系统数据结构
      • 6.3.2 Buddy系统初始化
      • 6.3.3 Buddy系统内存释放
      • 6.3.4 Buddy系统内存分配
    • 6.4 Slub系统实现
      • 6.4.1 Slub系统数据结构
      • 6.4.2 Slub系统初始化
      • 6.4.3 Slub系统分配内存
      • 6.4.4 Slub系统释放内存
    • 小结
  • 第7章 实现进程管理
    • 7.1 进程管理初始化
      • 7.1.1 进程数据结构
      • 7.1.2 进程初始化
    • 7.2 进程创建
    • 7.3 页异常处理
      • 7.3.1 缺页异常处理
      • 7.3.2 写保护异常
    • 7.4 进程调度
      • 7.4.1 调度初始化
      • 7.4.2 执行调度
    • 小结
  • 第8章 实现文件系统
    • 8.1 SD卡驱动程序实现
      • 8.1.1 SD卡通信方式简介
      • 8.1.2 实现SPI通信
      • 8.1.3 指令处理
      • 8.1.4 实现SD卡初始化
      • 8.1.5 实现SD卡读操作
      • 8.1.6 实现SD卡写操作
    • 8.2 文件系统实现
      • 8.2.1 文件控制块的实现
      • 8.2.2 缓存机制的实现
      • 8.2.3 FAT表
      • 8.2.4 文件系统初始化
      • 8.2.5 打开文件
      • 8.2.6 关闭文件
      • 8.2.7 文件读取
      • 8.2.8 文件写入
      • 8.2.9 创建文件
    • 小结
  • 第9章 添加系统调用
    • 9.1 系统调用框架
      • 9.1.1 系统调用入口
      • 9.1.2 系统调用初始化
      • 9.1.3 系统调用定义
    • 9.2 添加系统调用
      • 9.2.1 进程管理相关
      • 9.2.2 输入显示相关
      • 9.2.3 文件系统相关
    • 小结
  • 第10章 实现简单shell
    • 10.1 实现用户态库
    • 10.2 实现shell程序
      • 10.2.1 解析程序
      • 10.2.2 内建命令
    • 10.3 其他基本程序
      • 10.3.1 ls命令
      • 10.3.2 ps命令
      • 10.3.3 kill命令
    • 小结
  • 结束语
  • 附录A 实验平台手册
    • A.1 实验平台详细介绍
      • A.1.1 Sword实验平台
      • A.1.2 物理地址分配
      • A.1.3 CP0寄存器组
      • A.1.4 中断处理
      • A.1.5 MMU功能
      • A.1.6 外设接口
    • A.2 实验平台指令集
      • A.2.1 算术运算指令
      • A.2.2 逻辑运算指令
      • A.2.3 移位指令
      • A.2.4 读写指令
      • A.2.5 跳转指令
      • A.2.6 自陷指令
      • A.2.7 CP指令
    • A.3 实验平台寄存器
      • A.3.1 通用寄存器
      • A.3.2 CP0寄存器

本数字课程与“基于系统能力培养的计算机专业课程建设研究”项目规划教材《操作系统设计与实现》纸质教材一体化设计,紧密配合,为读者提供电子教案、操作系统内核设计源代码、交叉编译工具、模拟器等辅助教学内容。充分运用多种形式的媒体资源,丰富知识的呈现形式,拓展教材的内容。在有效帮助读者提升课程学习效果的同时,也为读者动手实践以及自主学习提供思维与探索的空间。

相关图书