操作系统学习笔记3 | 操作系统简史

读史使人明智。通过操作系统的历史,了解操作系统是怎么编出来的,为什么要有那些模块,哪些东西才是核心。


参考资料:


1. 多进程发展漫步

由于裸机使用十分不便,操作系统自计算机诞生就开始出现了。

  • 1955年~1965年,上古神机 IBM7094 与批处理操作系统 IBSYS

    image

    • 一个接一个的执行Job,一旦某个Job执行结束或者执行出错,就去执行下一个Job;
    • 这时配置的批操作系统更像一个监控程序,用于顺序切换任务,并将出错信息输出到磁带;
  • 1965年~1980年,出现操作系统 OS/360(360表示全方位服务),计算机进入多个行业

    image

    • 很多故事都是从这个操作系统发展的

    • 多任务的需求催生了 多道程序 multiprogramming 的诞生

    • OS/360 的设计中开始出现多进程结构和进程管理的相似概念

      多进程结构是操作系统最核心的图像。

  • 1965年~1980年,MULTICS(来自MIT),计算机进入多个行业,每台计算机的使用人数增加

    image

    • 引入 分时系统timesharing 的概念
    • 给计算机的每个用户一定的时间来执行,定期进行切换,这样每个人的任务都是一段段向前推进的,不会出现搁置太久情况
    • 分时 主要用于server,而 PC 中也有这样的思想
  • 1980年~1990年,UNIX,小型化计算机开始出现,越来越多的个人可以使用计算机

    image

    • UNIX是一个简化的MULTICS,核心概念差不多,但更灵活和成功
  • 1990年~2000年,Linux,个人计算机开始普及,很多人可以用计算机并接触Unix

    image

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的故事。

    • image

  • 从QDOS到MS-DOS

    • 1975年,BASIC语言解释器,后续磁盘文件管理系统 FAT

    • 而编程环境和文件管理,都是用户实在关心的

    • QDOS 成功在把 FAT 和 BASIC解释器 包含进来

    • 改名MS-DOS 和 IBM PC 一起出售

      Disk OS.

      微软的第一个操作系统即MS-DOS。

    image.png

  • 从 MS-DOS 到 Windows

    • 计算机开始商业化,通过文件、成熟的开发环境、图形界面使用计算机更加方便。
    • image.png
  • Mac OS && iOS

    • 思路与 Windows 相似,更关注人机交互的界面、文件、媒体。
    • image.png

4. 再总结

从CP/M -> QDOS -> MS-DOS -> Windows 以及 Unix -> System -> Mac OS -> iOS:

  • 核心思想、技术:

    • 仍然以多进程管理为基本结构

    • 加入了图形界面、编程环境和文件管理等内容,更重视用户的体验

  • 软件实现:

    • 如何通过文件存储代码、执行代码、操作屏幕
    • 如何让文件和操作变成图标,点击或者触碰?
  • 学习重点:

    • 掌握、实现操作系统的多进程图谱
    • 掌握、实现操作系统的文件操作视图
  • 多进程(CPU与内存)与文件(IO、磁盘、文件)是本课程剩余内容的两大主题

    image

5. 后面的学习

接下来具体就会

  • 多进程图谱

    管理进程:fork

    • CPU管理

    • 内存管理

      地址,为什么*p=7可以访问内存。

  • 文件视图

    • 磁盘管理

    • 终端设备管理

      操作设备也是操作文件 ,比如:

      # 操作显示器
      dev tty0
      

image