01软件平时住在哪里?

软件没有运行的时候, 它通常以一组文件的形式保存在 SSD、硬盘或其他存储设备里。

这些文件可能包括程序文件、图片、声音、配置、动态库和数据文件。

SSD / 硬盘

长期保存软件文件

程序文件 图片资源 配置文件 数据文件

02文件夹怎样把软件组织起来?

一个软件往往有很多文件, 所以操作系统会用目录结构把它们组织起来。

MyApp
app.exe images config data.db

目录并不是把所有文件数据“装进自己里面”, 而是帮助文件系统建立名称、路径和层级关系。

03双击软件后,谁先开始工作?

双击图标时, 并不是 CPU 直接“看见图标然后运行它”。

首先是操作系统接收到你的输入, 再根据快捷方式、文件关联或应用信息, 找到真正要启动的程序文件。

1

双击图标

用户发出启动请求

2

操作系统处理

找到对应程序和启动信息

3

定位程序文件

从文件系统中找到真正的程序

04为什么程序要进入内存?

SSD 和硬盘适合长期保存数据, 但 CPU 运行程序时,需要更快地取得指令和数据。

所以操作系统会把程序运行需要的代码和数据, 映射或加载到内存中。

存储设备

长期保存程序文件

内存 RAM

保存运行时需要的代码和数据

05CPU 真正在执行什么?

CPU 真正执行的不是“软件图标”, 也不是“文件夹”。

CPU 最终执行的是机器指令。 这些指令来自程序的可执行代码,并在运行时被取到 CPU 中一步一步执行。

内存中的代码

指令 1 · 指令 2 · 指令 3

CPU

取指、译码、执行

产生结果

计算、显示、读取或保存数据

06程序运行时为什么还要读写文件?

程序运行后,并不是就和文件没有关系了。

很多软件在运行过程中还会不断读取和保存文件。

读取资源

加载图片、字体、声音等

读取配置

恢复用户设置

保存数据

保存文档、存档、缓存等

使用数据库

读取和写入结构化数据

07把整个过程串起来

现在我们把前面学过的知识连成一条完整链路:

1

软件保存在存储设备

以很多文件的形式存在

2

文件系统负责组织

通过目录和路径找到文件

3

操作系统负责启动

创建进程并准备运行环境

4

代码和数据进入内存

按需要准备运行内容

5

CPU 执行指令

程序真正开始工作

运行过程中 程序还会继续读取文件、处理输入、更新内存、调用系统服务、输出结果、保存新文件

08几个最容易混淆的地方

错误 1

“文件就是程序”

不对。程序可以以文件形式保存,但很多文件并不是程序。

错误 2

“软件就是一个 exe”

不一定。软件可能由程序、资源、配置、数据和多个组件组成。

错误 3

“程序直接在硬盘里运行”

不准确。程序运行需要内存参与,CPU 从运行环境中取得并执行指令。

错误 4

“双击图标就是 CPU 直接运行图标”

不对。操作系统会先根据图标或快捷方式找到真正的程序。

错误 5

“程序一启动就和文件无关了”

不对。很多程序运行时仍会不断读取和保存文件。

错误 6

“所有程序都一次完整装入内存”

不一定。现代系统通常会使用虚拟内存和按需加载机制。

你已经知道了什么

  • 软件没有运行时,通常以一组文件的形式保存在 SSD 或硬盘等存储设备里。
  • 文件夹 / 目录负责组织文件的名称、路径和层级关系。
  • 双击软件时,操作系统会根据入口找到真正的程序文件,并准备启动。
  • 程序运行时,所需代码和数据会被加载或映射到内存,现代系统通常还会按需分页。
  • CPU 最终执行的是机器指令,而不是图标、文件夹或文件名。
  • 程序运行过程中还会继续读取资源、配置、数据库和其他文件,并可能生成新的文件。
  • 文件负责长期保存,内存负责运行时工作,CPU 负责执行指令,操作系统负责协调它们。
  • 理解这些关系后,就能把“文件、软件、程序、内存、CPU”看成一个完整的计算机工作系统。