顶部
收藏

MOS操作系统实验教程


作者:
王雷 沃天宇 孙海龙 姜博 牛虹婷 原仓周 王良 编著
定价:
35.00 元
版面字数:
280.00千字
开本:
特殊
装帧形式:
平装
页数:
240
最新
印次时间:
2023年10月
ISBN:
978-7-04-060388-0
物料号:
60388-00
出版时间:
2023年10月
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
操作系统

本书由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测试
                                                                                                                                                                                                                                              • 附录补充知识
                                                                                                                                                                                                                                                • 参考文献

                                                                                                                                                                                                                                                相关图书