操作系统学习笔记3 | 操作系统简史
读史使人明智。通过操作系统的历史,了解操作系统是怎么编出来的,为什么要有那些模块,哪些东西才是核心。
参考资料:
- 课程:哈工大操作系统(本部分对应 L6 && L7)
- 实验:操作系统原理与实践_Linux - 蓝桥云课 (lanqiao.cn)
- 笔记:操作系统学习导引 · 语雀 (yuque.com)
1. 多进程发展漫步
由于裸机使用十分不便,操作系统自计算机诞生就开始出现了。
-
1955年~1965年,上古神机 IBM7094 与批处理操作系统 IBSYS
- 一个接一个的执行Job,一旦某个Job执行结束或者执行出错,就去执行下一个Job;
- 这时配置的批操作系统更像一个监控程序,用于顺序切换任务,并将出错信息输出到磁带;
-
1965年~1980年,出现操作系统 OS/360(360表示全方位服务),计算机进入多个行业
-
很多故事都是从这个操作系统发展的
-
多任务的需求催生了 多道程序 multiprogramming 的诞生
-
OS/360 的设计中开始出现多进程结构和进程管理的相似概念
多进程结构是操作系统最核心的图像。
-
-
1965年~1980年,MULTICS(来自MIT),计算机进入多个行业,每台计算机的使用人数增加
- 引入 分时系统timesharing 的概念
- 给计算机的每个用户一定的时间来执行,定期进行切换,这样每个人的任务都是一段段向前推进的,不会出现搁置太久情况
- 分时 主要用于server,而 PC 中也有这样的思想
-
1980年~1990年,UNIX,小型化计算机开始出现,越来越多的个人可以使用计算机
- UNIX是一个简化的MULTICS,核心概念差不多,但更灵活和成功
-
1990年~2000年,Linux,个人计算机开始普及,很多人可以用计算机并接触Unix
2. 总结
从 IBSYS -> OS\360 -> MULTICS -> Unix -> Linux,核心其实是多进程管理的思想。
- 核心思想、技术:
- 冯·诺依曼思想:用户通过执行程序来使用计算机;
- 进程管理:要让多个程序合理推进
- 多进程、多用户推进任务需考虑内存复用
- 软件实现:
- 对于操作系统,真正实现它很重要
- 需要合作、需要群体协作。
- 学习重点:
- 掌握操作系统的多进程图谱并实现
3. 文件系统发展漫步
历史总是多线条的,下面从另一条再看历史。
-
PC与DOS
-
PC的推广更是推动了计算机及操作系统的发展,1975年 Digital Research 为 Altair 8800 开发了操作系统 CP/M
-
CP/M 为用户提供了命令,能够执行命令对应的程序,并且给用户通过命令行操作文件的可能。
-
1980年,CP/M 的基础上开发 QDOS
这里 QDOS 意指 Quick and Dirty OS,还不是 Disk Operation System
如果QDOS继续发展,可能没有Bill Gates的故事。
-
-
从QDOS到MS-DOS
-
1975年,BASIC语言解释器,后续磁盘文件管理系统 FAT
-
而编程环境和文件管理,都是用户实在关心的
-
QDOS 成功在把 FAT 和 BASIC解释器 包含进来
-
改名MS-DOS 和 IBM PC 一起出售
Disk OS.
微软的第一个操作系统即MS-DOS。
-
-
从 MS-DOS 到 Windows
- 计算机开始商业化,通过文件、成熟的开发环境、图形界面使用计算机更加方便。
-
Mac OS && iOS
- 思路与 Windows 相似,更关注人机交互的界面、文件、媒体。
4. 再总结
从CP/M -> QDOS -> MS-DOS -> Windows 以及 Unix -> System -> Mac OS -> iOS:
-
核心思想、技术:
-
仍然以多进程管理为基本结构
-
加入了图形界面、编程环境和文件管理等内容,更重视用户的体验
-
-
软件实现:
- 如何通过文件存储代码、执行代码、操作屏幕
- 如何让文件和操作变成图标,点击或者触碰?
-
学习重点:
- 掌握、实现操作系统的多进程图谱
- 掌握、实现操作系统的文件操作视图
-
多进程(CPU与内存)与文件(IO、磁盘、文件)是本课程剩余内容的两大主题
5. 后面的学习
接下来具体就会
-
多进程图谱
管理进程:
fork
-
CPU管理
-
内存管理
地址,为什么
*p=7
可以访问内存。
-
-
文件视图
-
磁盘管理
-
终端设备管理
操作设备也是操作文件 ,比如:
# 操作显示器 dev tty0
-