simple_os_book
Introduction
封面
前言
操作系统简介
应具备的背景知识和学习环境
了解计算机硬件架构
一般计算机硬件架构
RISC-V硬件架构
了解操作系统
操作系统的历史
操作系统的定义与目标
操作系统的接口
操作系统的抽象
操作系统的特征
“麻雀”操作系统--ucore
ucore简介
小结
启动操作系统
实验一:显示字符的toy bootloader
背景:Intel 80386加电后启动过程
背景:设备管理:理解设备访问机制
背景:内存管理:理解保护模式和分段机制
实现:实模式到保护模式的切换
实现:设置栈内存空间
实现:显示字符串
实验二:读ELF格式文件的baby bootloader
背景:访问硬盘数据控制
背景:理解ELF文件格式
背景:操作系统执行代码的组成
实现:bootloader加载并运行ucore
实现:可输出字符串的ucore
小结
参考资料
ucore操作系统开始控制计算机
实验三:能显示函数调用关系的ucore
背景:栈结构和处理过程
实现:分析内核函数调用关系
实验四:可管理中断并处理中断方式I/O的ucore
背景:理解CPU对外设中断的硬件支持
实现:初始化中断控制器
实现:初始化中断门描述符表
实现:外设的相关中断初始化
实现:中断处理过程
实验五:可在内核态和用户态之间进行切换的ucore
背景:分段机制的特权限制
背景:80386的任务切换
实现:内核态切换到用户态
实现:用户态切换到内核态
操作系统基本原理:管理计算机硬件
小结
物理内存管理
实验1: 建立分页管理机制
背景: 计算机物理内存分布和大小
实现: 物理内存探测
原理: 分页内存管理
背景: X86的分页硬件支持
实现: 实现分页内存管理
原理: 页内存分配算法
实验2: 实现任意大小内存分配
实现: slab算法的简化设计实现
实验3: 支持虚存管理功能
原理: 虚拟内存管理
proj7/8/9/9.1/9.2概述
proj7:支持缺页异常和VMA结构
实现: vma_struct数据结构和相关操作
实现: 缺页异常处理
proj8:支持页换入换出
原理: 页面置换算法
实现: 页面置换机制实现
proj9.1:实现共享内存
proj9.2:实现写时复制
进程管理与调度
实验1: 创建并执行内核线程
原理: 进程的属性与特征解析
实现: 设计进程控制块
实现: 创建并执行内核线程
实验2: 创建并执行用户进程
原理: 用户进程的特征
创建用户进程
基于时间事件的等待与唤醒
进程退出和等待进程
系统调用实现
实验3: 基于内核线程实现全局内存页替换机制
等待队列设计与实现
内存页置换机制的执行过程
实验4: 创建并执行用户线程
原理: 线程的属性与特征分析
实现: 创建并执行用户线程
进程运行状态转变过程
实验5: 进程调度
原理: 进程调度
实现: 进程调度
小结
附录
附录A--ucore历史
附录B--构成ucore lab的小项目列表
附录C--ucore开发者列表
附录D--ucore实验中的工具
附录E--MOOC OS相关信息
附录F--版权信息
Powered by
GitBook
ucore操作系统开始控制计算机
results matching "
"
No results matching "
"