第零章:操作系统概述# 引言 本章导读 为何要写这本操作系统书 有待思考的问题 解决问题的思路 如何基于本书学习操作系统 前期准备 目标与步骤 编程语言与硬件环境 本书章节导引 什么是操作系统 站在一万米的代码空间维度看 系统软件 执行环境 操作系统的定义与组成 站在计算机发展的时间尺度看 寒武纪生物大爆发时代 泥盆纪 鱼类时代和二叠纪 两栖动物时代 侏罗纪 与白垩纪 的恐龙时代 古近纪 哺乳动物时代 第四纪智人时代 二十一世纪神人时代 操作系统的系统调用接口 API与ABI 系统调用接口与功能 系统调用接口举例 操作系统抽象 执行环境 普通控制流 异常控制流 控制流上下文(执行环境的状态) 异常控制流:中断 异常控制流:异常 异常控制流:陷入 进程 地址空间 文件 操作系统的特征 虚拟性 内存虚拟化 CPU 虚拟化 并发性 异步性 共享性 持久性 实验环境配置 在线开发环境配置 Github Classroom方式进行在线OS 环境配置 本地操作系统开发环境配置 Windows的WSL2方式建立Linux环境 VMware虚拟机方式进行本地OS开发环境配置 Docker方式进行本地OS开发环境配置 手动进行本地OS开发环境配置 基于RISC-V硬件环境的配置 C 开发环境配置 Rust 开发环境配置 QEMU 模拟器安装 K210 真机串口通信 GDB 调试支持 运行 rCore-Tutorial-v3 在 QEMU 模拟器上运行 在 K210 平台上运行 Q & A 练习 课后练习 编程题 问答题 练习参考答案 编程题 问答题