清华大学操作系统【mark下】

清华大学 - 操作系统 课程笔记


课程地址http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about
piazza注册入口http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X_2015_T2+2015_T2/xblock/block-v1:TsinghuaX+30240243X_2015_T2+2015_T2+type@lti+block@7d025ede0dfe484da35b09a863a50507/handler/preview_handler
课程的piazza论坛https://piazza.com/class/i5j09fnsl7k5x0?cid=1262
在线实验环境https://www.shiyanlou.com/courses/221
问题汇总https://xuyongjiande.gitbooks.io/os-qa/index.html
https://chyyuu.gitbooks.io/os_course_qa/content/
ucore实验指导书(2015版)https://objectkuan.gitbooks.io/ucore-docs/
ucore实验指导书(2019版)https://chyyuu.gitbooks.io/ucore_os_docs/content/
源码和参考答案https://github.com/chyyuu/ucore_os_lab
课程相关资料(包括讲义等)http://os.cs.tsinghua.edu.cn/oscourse/OS2019spring

第零讲 在线教学环境准备

可以在上面给出的在线实验环境中进行实验,也可以在自己的电脑上安装虚拟机:

step 1

从VirtualBox官网下载软件:https://www.virtualbox.org/wiki/Downloads
安装

step 2

下载该课程提供的VirtualBox虚拟硬盘文件(mooc-os-2015.vdi.xz):
https://pan.baidu.com/s/11zjRK
这是一个已经安装好各种所需编辑/开发/调试/运行软件的Linux实验环境。解压后得到mooc-os-2015.vdi

step 3

打开VirtualBox - 新建:
在这里插入图片描述
下一步 - 选择分配的内存大小 - 下一步 :
在这里插入图片描述
点击右下方的按钮,然后在弹出的界面中选择刚刚解压的vdi文件,确定之后,点击创建,就OK了,然后可以开心的打开虚拟机了。
(root用户的密码为一个空格键)

第一讲 操作系统概述

1.1 课程概述

在这里插入图片描述
在这里插入图片描述

1.2 教学安排

在这里插入图片描述
在这里插入图片描述

1.3 什么是操作系统

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 为什么学习操作系统

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.5 操作系统实例

Unix
Linux
Windows
 
在这里插入图片描述
这一系列都是从 Unix 演变出来的
 
在这里插入图片描述
在这里插入图片描述

1.6 操作系统演变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为了提高执行时间占的比例,将输入输出交给其他设备去做。
这是程序是顺序执行。
 
在这里插入图片描述
程序1 进行 IO操作时,切到程序2, IO完成后,再切回程序1。从而提高CPU利用率
 
在这里插入图片描述
每个程序轮流执行一定的时间(如果没有中断、异常、IO等情况的话)
 
在这里插入图片描述
由于计算机价格下降,提高CPU利用率不再是重点。
 
在这里插入图片描述
在这里插入图片描述

1.7 操作系统结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
VMM 负责把真实的硬件虚拟成若干个虚拟硬件。
在这里插入图片描述
在这里插入图片描述

第二讲 实验零 操作系统实验环境准备

2.1 前言和国内外现状

在这里插入图片描述
在这里插入图片描述

2.2 OS实验目标

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 8个OS实验概述

在这里插入图片描述
(各个lab的简介可以去看这一节的pdf)
在这里插入图片描述
在这里插入图片描述

2.4 实验环境搭建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 x86-32硬件介绍

在这里插入图片描述
实模式:只有16位寻址空间,且没有保护机制,这是为了兼容8086而设计的。通过两个16位的寄存器CS和IP,可以组合出长度为20位的地址,从而访问 1 M大小的内存。
保护模式:有32位寻址空间,且有保护机制
 

在这里插入图片描述
段机制和页机制只是一种映射关系,把一个地址从A地址映射到B地址,(然后再B地址映射到C地址,A, B, C的地址内容是不一样的)


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 ucore部分编程技巧

在这里插入图片描述
通过在结构中包含函数指针,保证对外的接口相同,但是对应的函数可以有不同的实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.7 演示实验操作过程

编译:(在lab1中会生成 bin 和 obj 两个文件夹)

make
  • 1

删除编译出来的执行文件:

make clean
  • 1

查看文件类型:file 文件或文件夹
 
执行

make qemu
  • 1

在这里插入图片描述
ctrl + c停止程序

在Ecliose中 debug

首先,安装一个plugin,点击菜单 - Help - Install new software
在work with 中输入zylin - http://opensource.zylin.com/zylincdt,然后安装出现的plugin
 
在 Help - About Eclipse Platform - 左下角的Installation Details 可以看到已经安装好的软件
在这里插入图片描述
然后,要进行一些配置,在 Eclipse 中,找到 debug 图标的下拉菜单 - 点击debug configuration - 在 Zylin Embedded debug(Native)中 New 一个配置信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用Understand来看函数调用图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用meld 来看两个项目的差别

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

第三讲 启动、中断、异常和系统调用

3.1 BIOS

在这里插入图片描述
在这里插入图片描述
内存分为:

  1. RAM:随机访问存储
  2. ROM:只读存储
     

计算机加电的时候,从ROM中开始读指令
在这里插入图片描述

  • 基本输入输出:从磁盘读数据,从键盘上读用户的输入,在显示器输出
  • 系统配置信息:例如决定从硬盘,网络,光盘启动

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

                                </div><div><div></div></div><div><div></div></div><div><div></div></div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                            </div>
</article>
原文地址:https://www.cnblogs.com/tangliMeiMei/p/13053053.html