MIT 6.S081: Operating System Engineering

Catalog description: Design and implementation of operating systems, and their use as a foundation for systems programming. Topics include virtual memory; file systems; threads; context switches; kernels; interrupts; system calls; interprocess communication; coordination, and interaction between software and hardware. A multi-processor operating system for RISC-V, xv6, is used to illustrate these topics. Individual laboratory assignments involve extending the xv6 operating system, for example to support sophisticated virtual memory features and networking.

Feeling

操作系统层的编程以它注重硬件直接交互,兼顾性能与安全的特征而为人所知。操作系统和机器架构方面的问题,时常让我在想,先有鸡还是先有蛋。所谓的Shell是内核之外的用户程序,它执行不同种类的系统调用以让我觉得,Shell就是内核的包装和外壳(Shell)。但是在Shell之前的事情呢,机器如何摆放它在屏幕上的文字,以让我觉得我在使用Shell?如果没有Shell,事情又会变得怎样呢?网络是一种I/O设备,它在操作系统下的接口是怎样的?我们所熟悉的C语言中那些理所应当的函数和数据结构,是怎样由操作系统封装提供的?操作系统是硬件与用户层之间的重要桥梁,它不仅仅是某种"Cache",不仅仅是某种GUI,它是很多东西的集合和封装,但幸运的是,它是运行中的程序,它不由谁提供环境,它要自己适应环境。

(Updating…)