学会如何造轮子

本文是我学习在学堂在线上由清华大学开设的操作系统课程的相关笔记,你可以通过下面的链接找到课程相关内容:

学堂在线:http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about

课程维基:http://os.cs.tsinghua.edu.cn/oscourse/OS2019spring

课程实验、练习:https://github.com/chyyuu/os_course_info

“实验楼”在线实验环境:http://www.shiyanlou.com/courses/221

lab0 实验任务书:https://chyyuu.gitbooks.io/ucore_os_docs/content/lab0.html

实验步骤

  1. 在学堂在线查看OS相关原理和labX的课程视频
  2. 如果第一次做lab,需要建立lab试验环境,可采用基于virtualbox虚拟机的最简单方式完成
  3. 阅读本次lab的实验指导书,了解本次lab的试验要求
  4. 下载源码(可以直接在github下载,或通过git pull下载)
  5. 进入各个OS实验工程目录 例如: cd labcodes/lab1
  6. 根据实验要求阅读源码并修改代码(用各种代码分析工具和文本编辑器)
  7. 并编译源码 例如执行:make
  8. 如编译不过则返回步骤3
  9. 如编译通过则测试是否基本正确,例如执行:make grade
  10. 如果实现基本正确(即看到步骤6的输出存在不是 OK的情况)则返回步骤3
  11. 如果实现基本正确(即看到步骤6的输出都是 OK)则生成实验提交软件包,例如执行:make handin

前言

–> 实验 –> 原理 –> 实验 –> ….

强调动手编程实践

OS 实验目标

在OS原理和实现中建立一个桥梁

8个 OS 实验概述

实验环境搭建

X86-32 硬件介绍

x86 —— 80386

四种运行模型

实模式:80386 加电启动后处于实模式运行站台,可访问物理内存空间不能超过 1MB,且无法发挥 Intel 80386 以上级别的 32 位 CPU 的 4GB 内存管理能力

保护模式:支持内存分页,对虚拟内存良好支持,优先级机制

SMM 模式

虚拟 8086 模式

80386 的寄存器

ucore 部分编程技巧

ucore 主要基于 C 语言设计,采用了一定面向对象编程

MacOS 配置实验环境

1.install homebrew

2.install binutils, gcc, gdb targeting i386-elf

3. install qemu-system-i386

方法来自:https://github.com/dongyp13/os_lab