【NJU OS】00 课程简介

【课程简介】

什么是操作系统?

操作系统是一个典型的 “system”——它完成对计算机硬件系统的抽象,提供应用程序的运行环境:

  • 从应用程序的视角看,操作系统定义了一系列的对象 (进程/线程、地址空间、文件、设备……) 和操纵它们的 API (系统调用)。这组强大的 API 把计算机的硬件资源有序地管理起来,它不仅能实现应用程序 (浏览器、游戏……),还支持着各类神奇的系统程序 (容器、虚拟机、调试器、游戏外挂……)

我们会使用操作系统 API 实现一系列 “黑科技”,包括在 Linux 中复刻三类经典游戏外挂:金山游侠、按键精灵、变速齿轮,并用它们修改真正的游戏

  • 从硬件的视角看,操作系统是一个拥有访问全部硬件功能的程序 (操作系统就是个 C 程序,不用怕)。硬件会帮助操作系统完成最初的初始化和加载,之后,操作系统加载完第一个程序后,从此作为 “中断处理程序” 在后台管理整个计算机系统

我们会在课堂上调试 xv6 和 Linux 内核,理解真实操作系统的执行

课程组织

操作系统使用正确的抽象使构造庞大的计算机软件/硬件生态从不可能变为可能。这门课围绕操作系统是如何设计 (应用程序视角)、怎样实现 (硬件视角) 两个角度展开,分为两个主要部分:

  • 原理课 (并发/虚拟化/持久化):

    • 以教科书内容为主,介绍操作系统的原理性内容。课程同时注重讲解操作系统相关的代码实现和编程技巧,包括操作系统中常用的命令行/代码工具、教学操作系统 xv6 的代码讲解等
  • 理解操作系统最重要的实验部分:

    • Mini labs (应用程序视角;设计):通过实现一系列有趣的 (黑科技) 代码理解操作系统中对象存在的意义和操作系统 API 的使用方法、设计理念
    • OS labs (计算机硬件视角;实现):基于一个简化的硬件抽象层实现多处理器操作系统内核,向应用程序提供一些基础操作系统 API

【授课老师】

蒋炎岩

【课程主页】

操作系统:设计与实现 (2022 春季学期)

【Tips】

课程已更新到2024,但2023、2024的课程视频是线下实录的,2022的课程视频是线上录的,观感更好。

引用《上海交通大学生存手册》的一段话:“国内绝大部分大学的本科教学,不是濒临崩溃,而是早已崩溃。” 那么蒋老师就是在这样的环境下,少有的对本科CS教学怀有使命感的好老师,这门OS课的质量也绝对可以对标到世界顶尖高校。


摘自Slides

  • Copyrights © 2019-2024 Hxy
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信