操作系统笔记

以Linux系统为例,2000w+行代码,浩如烟海,是世界最复杂的软件。

操作系统的演进

1、单任务模式

  • 大型机器、笨重(晶体管),计算功能单一
  • 用于军事或科研领域
  • 此时并没有真正意义的操作系统,只是协助计算机运行的辅助软件

2、多任务模式

  • 多个任务如何同时运行?
  • 多个任务如何共同使用内存、外存、输入输出设备?
  • 任务之间如何通信?
  • 如何处理恶意软件(如病毒、破坏硬件设备的程序)?
  • 计算机如何与外部进行通信(网络)?

计算机有了这些软件治理需求,用于约束和协调各个软件,出现了操作系统的鼻祖:

  • DOS -> Windows -> 个人PC市场
  • Unix ->*Nix(包括Linux)企业市场

3、现代操作系统

操作系统不再是狭义的OS,而是一个软件生态,典型的有:

  • 浏览器:信息流量入口
  • 搜索引擎:互联网世界门户
  • IOS/Android:移动终端设备
  • 小程序:实现账号、支付、应用市场的商业闭环

传统操作系统和现代操作系统的关系:

  • 传统:管理本地软件
  • 现代:管理互联网内容
  • 传统和现代的边界将会越来越模糊,传统操作系统也可能直接涉及互联网世界内容(例如现在出现了用于直接运行容器的CoreOS)

操作系统如何开始运作

1、BIOS主板固定一小段程序,通电后自动运行

2、跳转到外部存储(磁盘、光盘等)一个固定存储地址,外部的操作系统获取执行权限

3、BIOS地址段非常有限,因此只能做很少很有限的事情

4、当计算机安装多个操作系统,启动时让我们选择启动哪个系统,本质就是指定由BIOS跳转到外存的哪个位置