第一课 操作系统概览

概览

6.828的目标

  1. 理解操作系统设计与实现
  2. 动手完成小型OS

操作系统的目标

  1. 支持应用
  2. 抽象硬件
  3. 不同应用复用硬件
  4. 隔离应用
  5. 应用间共享
  6. 高性能

操作系统的设计方法

操作系统分层

操作系统通常提供的服务

  1. 进程
  2. 内存分配
  3. 文件管理,包括:内容,路径,文件名
  4. 安全
  5. 其他,包括:用户,进程间通信,网络,时间,shell

操作系统的抽象

操作系统实现的挑战

  1. 环境
    涉及到的硬件复杂,调试不如用户空间方便,比较复杂.

  2. 高效
    系统可移植良好,且抽象良好

  3. 特性丰富
    实现简单

课程目标人群

课程结构

课程

通过课程,我们主要围绕着xv6来进行学习:

  1. 操作系统概念
  2. 深入学习xv6这样一个传统的操作系统
  3. 完成xv6相关的编程作业,以加深理解
  4. 阅读相关topic的文章

实验

动手实践部分,我们主要围绕着jos来进行学习,jos是一个基于x86的小型操作系统

  1. 我们一共用6节实践课来完成jos
  2. 在内核接口上,jos并未完全抽象硬件,而是暴露了硬件,但是加入了对硬件的保护.
  3. 实现了用户非特权等级的系统库,如: fork, exec, pipe
  4. 应用: 文件系统, shell
  5. 开发环境: gcc, qemu

系统调用简述

linux

strace ls

results matching ""

    No results matching ""