顶部
收藏

MOS操作系统实验教程


作者:
王雷 沃天宇 孙海龙 姜博 牛虹婷 原仓周 王良 编著
定价:
35.00元
ISBN:
978-7-04-060388-0
版面字数:
280.000千字
开本:
特殊
全书页数:
暂无
装帧形式:
平装
重点项目:
暂无
出版时间:
2023-11-16
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
操作系统

本书由6个操作系统实验——“内核、启动与printk”“内存管理”“进程与异常”“系统调用与fork”“文件系统”“管道与Shell”以及一个Linux基础训练实验——“初始操作系统”组成。操作系统实验集成环境包括虚拟机、Git版本管理工具、自动评测工具和过程信息收集分析工具等,支持管理整个实验过程,包括初始代码的发布、代码编写、调试运行、学生代码的提交、编译测试以及评分结果的反馈。

本书可作为高等学校计算机科学与技术、软件工程等专业操作系统课程的教学参考书,也可供相关专业技术人员参考阅读。

  • 前辅文
  • 引言
    • 0.1 实验内容
    • 0.2 实验设计
    • 0.3 实验环境
  • 第1章 初识操作系统
    • 1.1 实验目的
    • 1.2 初识实验
      • 1.2.1 了解实验环境
      • 1.2.2 远程访问实验环境
      • 1.2.3 命令行界面(CLI)
    • 1.3 基础操作介绍
      • 1.3.1 命令行
      • 1.3.2 Linux基本操作命令
    • 1.4 实用工具介绍
      • 1.4.1 Vim
      • 1.4.2 GCC
      • 1.4.3 Makefile
      • 1.4.4 ctags
    • 1.5 Git简介
      • 1.5.1 Git是什么?
      • 1.5.2 Git基础指引
      • 1.5.3 Git文件状态
      • 1.5.4 Git三棵“树”
      • 1.5.5 Git版本回退
      • 1.5.6 Git分支
      • 1.5.7 Git远程仓库与本地仓库
      • 1.5.8 Git冲突与解决冲突
      • 1.5.9 实验代码提交流程
    • 1.6 进阶操作
      • 1.6.1 Linux操作补充
      • 1.6.2 Shell脚本
      • 1.6.3 重定向和管道
      • 1.6.4 GXemul的使用
    • 1.7 实战测试
  • 第2章 内核、启动与printk
    • 2.1 实验目的
    • 2.2 操作系统的启动
      • 2.2.1 内核在哪里?
      • 2.2.2 Bootloader
      • 2.2.3 GXemul中的启动流程
    • 2.3 修改MOS内核
      • 2.3.1 Makefile——内核代码的地图
      • 2.3.2 ELF——深入探究编译与链接
      • 2.3.3 MIPS内存布局——寻找内核的正确位置
      • 2.3.4 Linker Script——控制加载地址
    • 2.4 MIPS汇编与C语言
      • 2.4.1 循环与判断
      • 2.4.2 函数调用
      • 2.4.3 通用寄存器使用约定
    • 2.5 从零开始搭建MOS
      • 2.5.1 从make开始
      • 2.5.2 LEAF、NESTED和END
      • 2.5.3 _start函数
    • 2.6 实战printk
    • 2.7 实验正确结果
    • 2.8 如何退出GXemul
  • 第3章 内存管理
    • 3.1 实验目的
    • 3.2 R3000 访存流程概览
      • 3.2.1 CPU发出地址
      • 3.2.2 虚拟地址映射
    • 3.3 内核程序启动
      • 3.3.1 mips_detect_memory函数
      • 3.3.2 mips_vm_init函数
      • 3.3.3 mips_vm_init函数
    • 3.4 物理内存管理
      • 3.4.1 链表宏
      • 3.4.2 页控制块
      • 3.4.3 其他相关函数
      • 3.4.4 正确结果展示
    • 3.5 虚拟内存管理
      • 3.5.1 两级页表结构
      • 3.5.2 与页表相关的函数
    • 3.6 多级页表与页目录自映射
    • 3.7 访问内存与TLB重填
      • 3.7.1 TLB相关的前置知识
      • 3.7.2 TLB维护流程
      • 3.7.3 正确结果展示
    • 3.8 Lab2 在MOS中的概况
    • 3.9 其他体系结构中的内存管理
  • 第4章 进程与异常
    • 4.1 实验目的
    • 4.2 进程
      • 4.2.1 进程控制块
      • 4.2.2 段地址映射
      • 4.2.3 进程的标识
      • 4.2.4 设置进程控制块
      • 4.2.5 加载二进制镜像
      • 4.2.6 创建进程
      • 4.2.7 进程运行与切换
      • 4.2.8 实验正确结果
    • 4.3 中断与异常
      • 4.3.1 异常的分发
      • 4.3.2 异常向量组
      • 4.3.3 时钟中断
      • 4.3.4 进程调度
    • 4.4 Lab3在MOS中的概况
    • 4.5 实验正确结果
    • 4.6 代码导读
  • 第5章 系统调用与fork
    • 5.1 实验目的
    • 5.2 系统调用
      • 5.2.1 用户态与内核态
      • 5.2.2 系统调用实例
      • 5.2.3 系统调用机制的实现
      • 5.2.4 基础系统调用函数
    • 5.3 进程间通信机制
    • 5.4 fork
      • 5.4.1 初窥fork
      • 5.4.2 写时复制机制
      • 5.4.3 fork函数返回值
      • 5.4.4 父子进程实现
      • 5.4.5 页写入异常
      • 5.4.6 使用用户程序进行测试
    • 5.5 实验正确结果
  • 第6章 文件系统
    • 6.1 实验目的
    • 6.2 文件系统概述
      • 6.2.1 磁盘文件系统
      • 6.2.2 用户空间文件系统
      • 6.2.3 文件系统的设计与实现
    • 6.3 IDE磁盘驱动
      • 6.3.1 内存映射I/O
      • 6.3.2 IDE磁盘
      • 6.3.3 驱动程序编写
    • 6.4 文件系统结构
      • 6.4.1 磁盘文件系统布局
      • 6.4.2 文件系统详细结构
      • 6.4.3 块缓存
    • 6.5 文件系统的用户接口
      • 6.5.1 文件描述符
      • 6.5.2 文件系统服务
    • 6.6 正确结果展示
  • 第7章 管道与Shell
    • 7.1 实验目的
    • 7.2 管道
      • 7.2.1 初窥管道
      • 7.2.2 管道的测试
      • 7.2.3 管道的读写
      • 7.2.4 管道的竞争
      • 7.2.5 管道的同步
      • 7.2.6 相关函数
    • 7.3 Shell
      • 7.3.1 完善spawn函数
      • 7.3.2 解释Shell命令
      • 7.3.3 相关函数
    • 7.4 实验正确结果
      • 7.4.1 管道测试
      • 7.4.2 Shell测试
  • 附录补充知识
  • 参考文献

相关图书