01 - 没有操作系统会怎样
我们先不急着定义「操作系统是什么」。换个更好的问法:如果没有操作系统,你写程序会有多惨? 把这个想明白了,操作系统的价值自然就出来了。
假设你要直接操控裸机
想象你面前是一台刚通电、什么软件都没装的电脑。你想写个程序,把一句话打印到屏幕上。听起来简单,但没有操作系统的话,你得亲自搞定这些事:
- CPU:你得知道 CPU 的指令格式,手动安排你的代码在什么位置、怎么被执行。
- 内存:内存有多大?哪块能用、哪块已经被占了?你得自己记账,用错一块就崩。
- 显示器:屏幕是靠往某个特定硬件地址写数据来显示的,型号不同地址还不一样,你得针对每种显卡写一遍。
- 键盘、硬盘、网卡:每一个都是不同厂商、不同规格,各有各的「说话方式」。
结论:只是想「打印一句话」,你却被迫先变成一个精通所有硬件的专家。
更要命的是:程序之间会互相踩踏
就算你忍了,把一个程序跑起来了。现在你想同时跑两个程序,灾难来了:
- 两个程序都往内存的同一块地方写数据,互相覆盖,双双崩溃。
- 一个程序进了死循环,霸占 CPU 不撒手,另一个程序永远没机会运行。
- 一个写得烂的程序,能随意改掉另一个程序的数据,甚至把整台机器搞死。
早期的计算机就是这样:一次只能跑一个程序,程序员还得亲自管硬件,效率极低,也极其容易出错。
于是人们想:能不能请个「管家」
大家很快意识到:这些又脏又累又危险的活儿——管硬件、分内存、排 CPU、防止程序互相打架——不应该让每个程序员都重新做一遍。
能不能有这么一个「管家」软件,它:
- 把各种五花八门的硬件藏起来,只给我们一套统一、好用的接口;
- 帮我们分配资源(CPU、内存、硬盘),谁用多少它说了算;
- 当好保安,不让程序之间互相破坏。
这个「管家」,就是操作系统(Operating System,简称 OS)。
你现在用的 Windows、macOS、Linux、Android、iOS,全都是操作系统。你平时写的程序之所以那么省心,是因为操作系统在底下默默扛下了所有脏活。
小结
- 没有操作系统,程序员要亲自伺候每一种硬件,还得防着程序之间互相破坏,苦不堪言。
- 这些「又脏又累又危险」的活儿是共性需求,不该每个程序重复做。
- 于是有了操作系统这个「管家」:隐藏硬件差异、分配资源、充当保安。
- 下一章我们给这个「管家」下一个更清晰的定义。
下一章 → 02 - 操作系统到底是什么 | 回到 README 目录