【NJU OS】01 操作系统概述

什么是操作系统?

  • 管理软件硬资源,为程序提供服务
  • 边界是模糊的,精确的定义无意义

今天的操作系统

空前复杂的系统之一

  • 更复杂的处理器和内存
    • 非对称多处理器 (ARM big.LITTLE; Intel P/E-cores)
    • Non-uniform Memory Access (NUMA)
    • 更多的硬件机制 Intel-VT/AMD-V, TrustZone/SGX, TSX, …
  • 更多的设备和资源
    • 网卡、SSD、GPU、FPGA…
  • 复杂的应用需求和应用环境
    • 服务器、个人电脑、智能手机、手表、手环、IoT/微控制器……

理解操作系统:三个根本问题

操作系统服务谁?

  • 程序 = 状态机
  • 课程涉及:多线程 Linux 应用程序

(设计/应用视角) 操作系统为程序提供什么服务?

  • 操作系统 = 对象 + API
  • 课程涉及:POSIX + 部分 Linux 特性

(实现/硬件视角) 如何实现操作系统提供的服务?

  • 操作系统 = C 程序
    • 完成初始化后就成为 interrupt/trap/fault handler
  • 课程涉及:xv6, 自制迷你操作系统

怎么学操作系统?

是一个合格的操作系统用户

  • 会 STFW/RTFM 自己动手解决问题
  • 不怕使用任何命令行工具
    • vim, tmux, grep, gcc, binutils, …
      不惧怕写代码
  • 能管理一定规模 (数千行) 的代码
  • 能在出 bug 时默念 “机器永远是对的、我肯定能调出来的”
    • 然后开始用正确的工具/方法调试
  • Copyrights © 2019-2024 Hxy
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信