⌨️ 第一章 编程的基础知识
📄 一句话概括

程序住在硬件里、跑在操作系统上、以软件的形态来到你面前——这六个词不是并列关系,是层层包裹的六层皮,本节把这张"全家福"画出来。

📝 本节和前面几节的关系

这是全课第一篇,也是整门课的地基:学过 C++ 与 Java 之后,你已经会写程序了,但【程序到底住在哪、靠谁才能跑起来】这条链路还没有完整走过一遍。本节先从最外面的一层(硬件)摸到最里面的一层(程序),后面十一节全部站在这张图上说话。它与 计算机基础课的 CPU 篇 是同一张图的两种画法——那边从电路往上看,这边从程序往下看。

一、六层皮:从外面摸到里面

拿你最熟悉的手机或电脑,从外往里剥:

层 名字 它是什么 生活比喻
① 硬件 你摸得着的部分:屏幕、CPU、内存、硬盘 工厂的厂房和机器
② 操作系统 管理全部硬件的【大管家】 厂长
③ 应用程序 你点开用的每个工具:微信、CAD、浏览器 工厂里的各工位
④ 软件 程序 + 文档的总称 【工位】+【说明书】的统称
⑤ 程序 一串有条理的指令清单 岗位操作手册
⑥ 指令 硬件真正能听懂的最小单位 手册里的一句【按下按钮 A】

读法:你点开的【微信】是一个应用程序;应用程序的本体是一大段程序;程序由一条条指令组成;指令由硬件(CPU 等)执行;而硬件不会自己排队干活,全靠操作系统调度。编程,就是写那个⑤号东西——程序。

二、五大设备:硬件的五种分工

所有硬件,按功能只分五种(教材叫【五大设备】):

设备 职责 例子
输入设备 把你的意思送进机器 键盘、鼠标、麦克风、摄像头
输出设备 把结果送出来 屏幕、音箱、打印机
记忆设备 存数据(分【正在用】和【长期存】两种) 内存、硬盘、U 盘
运算设备 做加减乘除和判断 CPU 里的运算器
控制设备 指挥其他设备什么时候干什么 CPU 里的控制器

注意:运算和控制经常合在一起叫 CPU——所以有时说【四大件+CPU】。这张表在 计算机基础课 06 里已经见过一次,那边讲【CPU 内部怎么跑一条指令】,本节只要记住【硬件 = 五种分工】即可。

树莓派课的 认识树莓派 说过:一块小板子是一台【完整的电脑】——判断标准正是它凑齐了这五种设备。

三、操作系统:住在硬件上的大管家

硬件是【哑巴】:内存有 100 块地谁用哪块?硬盘上的文件放哪?两个程序都要用音箱怎么办?

这些事没人管就全乱套,于是需要操作系统(OS,Operating System)当管家:

常见的操作系统:电脑上的 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 版?因为②层不同,⑤层程序就得分别写。

常见误区

  1. 【程序 = 软件】——不完全对。软件=程序+文档;只交付程序不留文档,算不上完整的软件产品。
  2. 【手机上没有操作系统】——Android 和 iOS 都是操作系统,Android 底层甚至就是 Linux 内核。手机和电脑在六层皮结构上一模一样。
  3. 【应用程序就是软件的全部】——软件还包括系统软件(操作系统、驱动程序)。你装系统、装驱动时【装的也是软件】,但那不是应用程序。
  4. 【硬件越强程序越快,与操作系统无关】——同样的硬件,管家调度效率不同,整体表现差得很远;这也是为什么同样的配置有人觉得流畅有人觉得卡。
  5. 【编程就是写应用程序】——编程写的是【程序】这个大类:可以是应用程序、也可以是系统模块、固件、脚本。第 1-3 节会看到更多【写程序的人】。
自测三问(点开对答案) 1. **五大设备是哪五种?CPU 覆盖其中哪两种?** 输入、输出、记忆、运算、控制;CPU=运算+控制(所以有时说【四大件+CPU】)。 2. **为什么同一个软件常有 Windows 版和 Mac 版两份?** 操作系统层(②层)不同,程序最终执行的指令和调用的系统服务不同,必须分别写(或用跨平台技术生成两份)。 3. **软件和程序谁包含谁?文档算不算软件的一部分?** 软件 ⊇ 程序;算——软件=程序+文档,没有文档的产品在行业里算【不完整交付】。

相关笔记