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

操作系统的演进
1、单任务模式
- 大型机器、笨重(晶体管),计算功能单一
- 用于军事或科研领域
- 此时并没有真正意义的操作系统,只是协助计算机运行的辅助软件
2、多任务模式
- 多个任务如何同时运行?
- 多个任务如何共同使用内存、外存、输入输出设备?
- 任务之间如何通信?
- 如何处理恶意软件(如病毒、破坏硬件设备的程序)?
- 计算机如何与外部进行通信(网络)?
计算机有了这些软件治理需求,用于约束和协调各个软件,出现了操作系统的鼻祖:
- DOS -> Windows -> 个人PC市场
- Unix ->*Nix(包括Linux)企业市场
3、现代操作系统
操作系统不再是狭义的OS,而是一个软件生态,典型的有:
- 浏览器:信息流量入口
- 搜索引擎:互联网世界门户
- IOS/Android:移动终端设备
- 小程序:实现账号、支付、应用市场的商业闭环
传统操作系统和现代操作系统的关系:
- 传统:管理本地软件
- 现代:管理互联网内容
- 传统和现代的边界将会越来越模糊,传统操作系统也可能直接涉及互联网世界内容(例如现在出现了用于直接运行容器的CoreOS)
操作系统如何开始运作
1、BIOS主板固定一小段程序,通电后自动运行
2、跳转到外部存储(磁盘、光盘等)一个固定存储地址,外部的操作系统获取执行权限
3、BIOS地址段非常有限,因此只能做很少很有限的事情
4、当计算机安装多个操作系统,启动时让我们选择启动哪个系统,本质就是指定由BIOS跳转到外存的哪个位置