学习 MIT 6.828
  • 学习 MIT 6.828: 操作系统工程
  • LEC 说明
    • Introduction and examples
      • 6.S081/6.828 2019 Lecture 1: O/S overview
    • Dynamic memory allocation (allocators)
      • 6.S081/6.828 2019 Lecture 2: Memory allocation
    • C and gdb (pointers example)
    • 简介与示例
  • 项目进度
  • LAB
    • Lab01
    • 构建工具链
Powered by GitBook
On this page
  • 预习
  • 课堂材料
  • 作业
  • 预习笔记
  • 进程与内存
  • I/O 和文件描述
  • 管道
  • 文件系统
  • 现实世界

Was this helpful?

  1. LEC 说明

Introduction and examples

PreviousLEC 说明Next6.S081/6.828 2019 Lecture 1: O/S overview

Last updated 5 years ago

Was this helpful?

预习

阅读 第一章

观看这个关于 unix 的视频。

课堂材料

作业

预习笔记

关键词:

  • 操作系统

  • 应用程序

  • 进程

  • xv6

  • kernel 与 interface

  • system call

  • user space and kernel space

  • shell

进程与内存

xv6 是一个分时操作系统。一次只有一个 process 被执行。没有被执行的 process ,其 CPU 寄存器等相关信息,会被 xv6 保存,等到需要执行的时候,再复原。

  • fork: 会创建一个副本进程

  • exit: 结束执行并释放资源

  • wait: 等待子进程执行完毕

  • exec: 加载文件,并执行

以 shell 为例子,讲解了上面 4 个 system call 的用法。

xv6 中所有的进程都以 root 方式执行。

I/O 和文件描述

文件描述符 file descriptor 的特点:

  • unix 中万物都被看成是文件

  • 每个文件都有一个数字的索引号作为代号。

  • 每个 process 都有一个表,用于保存 open 过的文件的 fd

  • 同一个文件在不同的 process 的表中的代码,可能不一样。

  • fork 后,子 process 同样会拷贝父 process 的表。

  • close 后,fd 被释放。能够被别的文件占用

  • open 时,总是挑选最小的可用 fd

  • read: 读取内容

  • write: 写入内容

file descriptor 是一个非常强大的抽象,因为它屏蔽了所有的具体细节。

管道

管道是一对 fd,一个用于入,一个用于出。

文件系统

文件系统由文件和文件夹组成。

  • chdir:改变当前目录

  • mkdir:创建目录

  • mknod:创建设备文件

现实世界

预习
课堂材料
作业
预习笔记
进程与内存
I/O 和文件描述
管道
文件系统
现实世界
xv6 讲义
https://www.youtube.com/watch?v=tc4ROCJYbm0
简介(introduction)
示例(examples)
xv6 讲义
Lab: Xv6 与 Unix 工具