1. 操作系统诞生背景
-
1940,1950 年代的电脑,每次只能运行一个程序,程序员在打孔卡纸上写程序
-
然后拿到一个计算机房间,交给操作员,计算机空闲下来的时候,操作员会把程序放入,然后运行,输出结果,停机
-
运行一个程序通常需要几个小时,几天甚至几周
-
以前计算机慢的时候,手动放程序的做法可以接受,但是随着计算机越来越快,放程序的时间比运行程序的时间更长
-
我们需要一种方式,让计算机自动运作,于是「操作系统」诞生了。
2. 操作系统介绍
-
简称 OS,其实也是程序
-
有操作硬件的特殊权限,可以运行和管理其他程序
-
一般是开机第一个启动的程序。其他所有程序都由操作系统启动
-
开始于 1950 年代
-
第一个操作系统,加强了程序加载方式(指批处理)。
-
批处理(batch processing):之前只能一次给一个程序,现在可以一次多个。当计算机运行完一个程序,会自动运行下一个程序,这样就不会浪费时间,找下一个程序的纸卡
-
外部设备:和计算机连着的其他设备。(因此程序员有的时候需要了解设备的硬件细节,一般是阅读手册来写代码)。现在是「即插即用」,以前是「祈祷能用」
-
为了程序员写软件更容易,操作系统充当软件和硬件之间的媒介:提供 API 来抽象硬件,叫「设备驱动程序」,程序员可以用标准化机制和输入输出硬件交互
3. 1950年代尾声
- 这个时候,电脑已经非常快,经常是处理器闲着,等着外部慢的机械设备,比如打印机和读卡器
4. 1950 年代后期,
-
Atlas:世界上第一台超级计算机,由英国曼彻斯特大学开始研发
-
1962 年,出现 Atlas Supervisor
-
不仅可以自动加载程序
-
还可以在单个 CPU 上同时运行几个程序(通过调度来实现这一点)
-
最终达到:多个程序可以同时运行,在单个 CPU 上共享时间,这种能力被称为「多任务处理」multitasking
-
给每个程序分配专属内容,
-
解决程序切换的时候的数据丢失问题
-
隔离后更好,可以实现「内存保护」,同时可以防止病毒程序
-
-
虚拟内存
-
程序可以假定内存总是从地址 0 开始
-
内存地址「虚拟化」
-
实际物理位置被操作系统隐藏和抽象了
-
动态内存分配:
-
使程序的内存大小可以灵活增减
-
简化了一切,为操作系统同时运行多个程序提供了极大的灵活性
-
-
-
分时操作系统
-
每个用户只能用一小部分处理器、内存等
-
最有影响力的是 Multics :多任务信息与计算系统,
-
于 1969 年发布
-
是第一个从设计时就考虑到安全的操作系统
-
复杂度超过当时的平均水准
-
操作系统占 1MB 内存,这在当时很多,可能是内存的一半
-
被 Unix 的设计者称为没有获得商业成功是因为「过度设计」,功能太多
-
Unix
-
操作系统分为两部分
-
1 操作系统的核心功能
- 内核:内存管理、多任务、输入/输出处理
-
2 一堆有用的工具
-
-
由于其具有的简单性,可以在更便宜更多的硬件上运行
-
1970-1980 年代最流行的操作系统之一
Windows
-
风行开始于 90 年代
-
磁盘操作系统(MS-DOS)只有 160KB,一张磁盘就可以容纳
-
1981 年发布,成为早起家用电脑最受环境的操作系统
-
虽然系统崩溃很讨厌但还可以接受,因为用户可以重启
-
1985年,发布早期 Windows,也会出现蓝屏
-
蓝屏代表程序崩溃的非常严重,把系统也带崩溃了
-
新版的 Windows 有更好的保护,不会经常崩溃
-
今日操作系统
-
Mac OS, Windows, Linux, iOS, Android
-
虽然一般只有一个用户,就是正在使用设备的你,但是操作系统依然有「多任务」、「虚拟内存」、「内存保护」,因此可以同时运行多个程序
-
一边在浏览器看视频,一边使用修图软件,播放音乐等
-
如果没有操作系统这几十年的发展,这些都不可能
2022.4.23