程序住在硬件里、跑在操作系统上、以软件的形态来到你面前——这六个词不是并列关系,是层层包裹的六层皮,本节把这张"全家福"画出来。
这是全课第一篇,也是整门课的地基:学过 C++ 与 Java 之后,你已经会写程序了,但【程序到底住在哪、靠谁才能跑起来】这条链路还没有完整走过一遍。本节先从最外面的一层(硬件)摸到最里面的一层(程序),后面十一节全部站在这张图上说话。它与 计算机基础课的 CPU 篇 是同一张图的两种画法——那边从电路往上看,这边从程序往下看。
一、六层皮:从外面摸到里面
拿你最熟悉的手机或电脑,从外往里剥:
| 层 | 名字 | 它是什么 | 生活比喻 |
|---|---|---|---|
| ① | 硬件 | 你摸得着的部分:屏幕、CPU、内存、硬盘 | 工厂的厂房和机器 |
| ② | 操作系统 | 管理全部硬件的【大管家】 | 厂长 |
| ③ | 应用程序 | 你点开用的每个工具:微信、CAD、浏览器 | 工厂里的各工位 |
| ④ | 软件 | 程序 + 文档的总称 | 【工位】+【说明书】的统称 |
| ⑤ | 程序 | 一串有条理的指令清单 | 岗位操作手册 |
| ⑥ | 指令 | 硬件真正能听懂的最小单位 | 手册里的一句【按下按钮 A】 |
读法:你点开的【微信】是一个应用程序;应用程序的本体是一大段程序;程序由一条条指令组成;指令由硬件(CPU 等)执行;而硬件不会自己排队干活,全靠操作系统调度。编程,就是写那个⑤号东西——程序。
二、五大设备:硬件的五种分工
所有硬件,按功能只分五种(教材叫【五大设备】):
| 设备 | 职责 | 例子 |
|---|---|---|
| 输入设备 | 把你的意思送进机器 | 键盘、鼠标、麦克风、摄像头 |
| 输出设备 | 把结果送出来 | 屏幕、音箱、打印机 |
| 记忆设备 | 存数据(分【正在用】和【长期存】两种) | 内存、硬盘、U 盘 |
| 运算设备 | 做加减乘除和判断 | CPU 里的运算器 |
| 控制设备 | 指挥其他设备什么时候干什么 | CPU 里的控制器 |
注意:运算和控制经常合在一起叫 CPU——所以有时说【四大件+CPU】。这张表在 计算机基础课 06 里已经见过一次,那边讲【CPU 内部怎么跑一条指令】,本节只要记住【硬件 = 五种分工】即可。
树莓派课的 认识树莓派 说过:一块小板子是一台【完整的电脑】——判断标准正是它凑齐了这五种设备。
三、操作系统:住在硬件上的大管家
硬件是【哑巴】:内存有 100 块地谁用哪块?硬盘上的文件放哪?两个程序都要用音箱怎么办?
这些事没人管就全乱套,于是需要操作系统(OS,Operating System)当管家:
- 管内存:给每个程序分配地盘,防止互相踩踏;
- 管文件:硬盘上的东西按文件夹组织,名字对得上内容;
- 管排队:CPU 在几十个程序之间高速轮换,看起来像【同时】在跑;
- 管设备:应用程序不直接碰键盘和屏幕,托管家转交。
常见的操作系统:电脑上的 Windows、macOS、Linux;手机上的 Android(底层就是 Linux)、iOS/iPadOS。树莓派课里装的 Raspberry Pi OS,也是 Linux 家族的。
一条重要推论:同一个程序想在不同操作系统上跑,往往要分别做一份(或用跨平台语言)——这就是为什么有的软件只有 Windows 版。第二、三章会展开。
四、程序、软件、应用程序:三个词的包含关系
这三个词日常混着用,严格画个包含图:
软件(程序 + 文档)
└── 程序:一串指令清单(软件的身体)
└── 应用程序:面向【使用者】的程序(微信、CAD、浏览器)
(相对地,操作系统是面向【机器】的程序)
- 程序=指令清单本身,是【作品】;
- 软件=程序+配套文档(说明书、帮助文件),是【产品】——卖给你的是软件,你安装时写进硬盘的那一坨指令是程序;
- 应用程序=软件中面向用户的那一类,与【系统软件】(操作系统、驱动)相对。
日常口语里【装个软件】【写个程序】说的是同一件事的两面,不必较真;但考试和行业语境里要分得清:软件 ≥ 程序,应用程序 ⊆ 软件。
五、动手 Demo:给你自己的电脑拍一张六层皮全家福
打开 Windows 的任务管理器(Ctrl + Shift + Esc),切到【进程】标签:
看到什么算成功:列表里同时躺着上百个进程,其中既有【微信】【CAD】这类你自己装的应用程序,也有大量叫不出名字的系统进程——那些就是操作系统自带的程序在运行。
读结果: 1. 随便挑 3 个你认得的应用程序(比如 dwg 图纸对应的 Acad.exe)——它们是③层; 2. 看到【Windows 资源管理器】——它是②层操作系统的一部分(桌面本身就是它画的); 3. 底部状态栏看【CPU 占用 x%】——五大设备里的运算与控制设备正在被分时占用。
结论一句话:你没有任何操作,就有上百个程序躺在硬件上排队——操作系统管着的程序世界,比你看见的桌面热闹得多。
30 秒实验
按 Win + R,输入 winver 回车。
弹出的小窗口显示你的 Windows 版本和版本号——这就是【操作系统层】的身份证。再想想:同一个微信,为什么官网让你下载时选择 Windows 版或 Mac 版?因为②层不同,⑤层程序就得分别写。
常见误区
- 【程序 = 软件】——不完全对。软件=程序+文档;只交付程序不留文档,算不上完整的软件产品。
- 【手机上没有操作系统】——Android 和 iOS 都是操作系统,Android 底层甚至就是 Linux 内核。手机和电脑在六层皮结构上一模一样。
- 【应用程序就是软件的全部】——软件还包括系统软件(操作系统、驱动程序)。你装系统、装驱动时【装的也是软件】,但那不是应用程序。
- 【硬件越强程序越快,与操作系统无关】——同样的硬件,管家调度效率不同,整体表现差得很远;这也是为什么同样的配置有人觉得流畅有人觉得卡。
- 【编程就是写应用程序】——编程写的是【程序】这个大类:可以是应用程序、也可以是系统模块、固件、脚本。第 1-3 节会看到更多【写程序的人】。
自测三问(点开对答案)
1. **五大设备是哪五种?CPU 覆盖其中哪两种?** 输入、输出、记忆、运算、控制;CPU=运算+控制(所以有时说【四大件+CPU】)。 2. **为什么同一个软件常有 Windows 版和 Mac 版两份?** 操作系统层(②层)不同,程序最终执行的指令和调用的系统服务不同,必须分别写(或用跨平台技术生成两份)。 3. **软件和程序谁包含谁?文档算不算软件的一部分?** 软件 ⊇ 程序;算——软件=程序+文档,没有文档的产品在行业里算【不完整交付】。- ☐ 下一节(1-2 桌面应用、网页应用、手机App)
相关笔记
- 计算机基础 06 · 接收指令的装置-CPU —— 五大设备与指令执行的电路视角
- 计算机基础 05 · 编程是什么-给计算机下指令 —— 【程序=指令清单】第一次出现的地方
- 树莓派 1-1 · 认识树莓派 —— 【凑齐五大设备就是一台完整电脑】的实物版
- C++ 基础 · 索引 —— 你写过的第一个程序住在⑥层
- ⌨️ 编程原理 · 索引 —— 全课路线图