目录

  • 第零讲 在线教学环境准备
    • step 1
    • step 2
    • step 3
  • 第一讲 操作系统概述
    • 1.1 课程概述
    • 1.2 教学安排
    • 1.3 什么是操作系统
  • 1.4 为什么学习操作系统
    • 1.5 操作系统实例
  • 1.6 操作系统演变
  • 1.7 操作系统结构
  • 第二讲 实验零 操作系统实验环境准备
    • 2.1 前言和国内外现状
    • 2.2 OS实验目标
  • 2.3 8个OS实验概述
  • 2.4 实验环境搭建
    • 2.5 x86-32硬件介绍
    • 2.6 ucore部分编程技巧
    • 2.7 演示实验操作过程
      • 在Ecliose中 debug
      • 使用Understand来看函数调用图
      • 使用meld 来看两个项目的差别
  • 第三讲 启动、中断、异常和系统调用
    • 3.1 BIOS

课程地址: 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

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

make clean

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

make qemu


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中开始读指令

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



清华大学 - 操作系统 课程笔记相关推荐

  1. 北交 操作系统 课程笔记(一)

    北交 操作系统 课程笔记(一) 根据王垠的博文,关于微内核的对话,可将 Linux 看作 C 语言的运行时系统.也有很多对这个观点的批评,让人分不清对错.让我们借着课程再思考一次吧! 文章目录 北交 ...

  2. 清华教授的操作系统-----课程笔记

    文章目录 操作系统 准备 系统调用 计算机体系结构及内存分层体系 地址空间 & 地址空间是如何生成的 MMU 连续内存分配 内存碎片问题 分区的动态分配 压缩式碎片整理 交换时碎片整理 **非 ...

  3. 清华大学操作系统课程实验

    课程 链接: https://www.bilibili.com/video/av94122925/?spm_id_from=333.788.videocard.0

  4. 西电李航 操作系统课程笔记 day11 IO softwarelayer

    文章目录 Principles of IO software IO软件目标 设备独立性(device independence) 统一命名(uniform naming) 错误处理(error han ...

  5. 西电李航 操作系统课程笔记 day8 Implementation of File system

    文章目录 File system Implementation 文件系统(file system) 布局 普通文件(file) 分配(allocation) 连续存储 指针存储 追踪(tracking ...

  6. 西电李航 操作系统课程笔记 day10 IO hardware principles

    文章目录 Principles of IO hardware IO设备 块设备(block device) 字符设备(character device) 设备控制器(device controller ...

  7. 操作系统——bilibili王道考研操作系统课程笔记

    第一章:操作系统概述 1.操作系统的概念(定义).功能和目标. 知识总览 计算机系统的层次结构:逻辑(纯硬件)->操作系统->应用程序->用户. 操作系统: 1.负责管理协调硬件.软 ...

  8. 大学操作系统课程笔记

    第一章 操作系统引论 1.什么是操作系统? 操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他 ...

  9. EDA实验课课程笔记(一)——linux操作系统及linux下的基本指令

    EDA实验课课程笔记(一)--linux操作系统及linux下的基本指令 实验目标 1,了解Linux系统的基本特点 2,掌握Linux的常用命令 3,掌握Linux的命令输入技巧 实验内容 1,基本 ...

最新文章

  1. joc杂志影响因子2019_2019年放射学领域SCI主要杂志影响因子汇总
  2. TCP、IP协议族之数字签名与HTTPS详解
  3. python 字符串分割和拼接_python分割和拼接字符串
  4. PowerDesigner导入MySQL数据库表
  5. 在数据库恢复之前将数据库置为单用户模式
  6. 分布式理论:CAP是三选二吗?
  7. 基于主观感兴趣区域的视频编码实践
  8. 【Spring 5】响应式Web框架前瞻
  9. Ubuntu14.04系统下安装配置OpenCV 4.0.0开发环境全过程
  10. Java字符串与包装类
  11. mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决
  12. 漫画:Java如何实现热更新?
  13. Python多线程同步、互斥锁、死锁
  14. 数据结构--循环队列
  15. 华为高管预告手机鸿蒙OS下月上线,华为手机部:我们没说过
  16. Mac平台的MySQL管理工具
  17. FreeMarker模板制作
  18. python窗口截图快捷键_python 自定义截图快捷键
  19. css中导入自定义字体库
  20. 小提琴统计图_小提琴图解读 - 统计学

热门文章

  1. 深度学习没落了。你不知道的认知智能机器人大脑道API接口道翰天琼-3。
  2. 【100%通过率】华为OD机试真题 Python 实现【信号发射和接收】【2022.11 Q4 新题】
  3. Spring注解@Scope---SessionScope和RequestScope
  4. 创业开始_我的锦誉德工作室成立
  5. Windows10关闭任务栏【新闻和兴趣】功能
  6. 库和包集合(VHDL语言)
  7. 短诗零词 | 评价项羽的三首诗
  8. python矩阵乘法
  9. 对象不支持此属性或方法 ie8
  10. springcloud熔断机制