Operating System: A body of software, in fact, that is responsible for making it easy to run programs (even allowing you to seemingly run many at the same time), allowing programs to share memory, enabling programs to interact with devices, and other fun stuff like that. (OSTEP)
很多疑点
“管理软/硬件资源、为程序提供服务” 的程序?
“精准” 的教科书定义毫无意义 (但作者得被迫去写)
操作系统 “全部” 的 overview:
前导知识:数字逻辑电路/计算机系统基础
数字电路模拟器
会编程,你就拥有全世界!
前导课程:C 程序设计/计算机系统基础
如果你的指令和设备实现得够完善,就能直接启动 Linux
本课程讨论
理解操作系统
“图灵机” 的数字电路实现
打印平方数、素数表、计算弹道……
没有操作系统。
能把程序放上去就很了不起了
更快更小的逻辑门 (晶体管)、更大的内存 (磁芯)、丰富的 I/O 设备
更复杂的通用的数值计算
Fortran 已经 “足够好用”
C---- THIS PROGRAM READS INPUT FROM THE CARD READER,
C---- 3 INTEGERS IN EACH CARD, CALCULATE AND OUTPUT
C---- THE SUM OF THEM.
100 READ(5,10) I1, I2, I3
10 FORMAT(3I5)
IF (I1.EQ.0 .AND. I2.EQ.0 .AND. I3.EQ.0) GOTO 200
ISUM = I1 + I2 + I3
WRITE(6,20) I1, I2, I3, ISUM
20 FORMAT(7HSUM OF , I5, 2H, , I5, 5H AND , I5,
* 4H IS , I6)
GOTO 100
200 STOP
END
库函数 + 管理程序排队运行的调度代码。
写程序 (戳纸带)、跑程序都是非常费事的
集成电路、总线出现
更多的高级语言和编译器出现
计算机科学家们已经在今天难以想象的计算力下开发惊奇的程序
能载入多个程序到内存且调度它们的管理程序。
为防止程序之间形成干扰,操作系统自然地将共享资源 (如设备) 以 API 形式管理起来
操作系统中自然地增加进程管理 API
集成电路空前发展,个人电脑兴起,“计算机” 已与今日无大异
PASCAL (1970), C (1972), …
分时系统走向成熟,UNIX 诞生并走向完善,奠定了现代操作系统的形态。
通过 “虚拟化” 硬件资源为程序运行提供服务的软件。
空前复杂的系统之一
操作系统:软件硬件之间的桥梁
(设计/应用视角) 操作系统为应用提供什么服务?
(实现/硬件视角) 如何实现操作系统提供的服务?