计算系统组成
是由硬件和软件系统组成,共同工作来运行应用程序。
源程序组成
是由0和1组成的位(bit)序列,8个位为一个字节。每个字节(使用ASCII码)表示程序中的某些文本。
一个hello.c程序的运行过程:
被转化成低级的机器语言指令 --》打包成可执行目标程序格式--》以二进制磁盘文件形式存储。
打包成可执行目标程序过程:

- 预处理阶段:头文件展开,处理以字符#开头的命令,修改原始C程序。
- 编译阶段:将文本文件以.i结尾的翻译成.s结尾的文本文件,转化成汇编语言程序。
- 汇编阶段:汇编器将汇编语言程序转化成机器语言指令,并打包成可重定位目标程序,生成目标文件.o。
- 链接阶段:将调用到的库函数目标文件合并到目标文件.o中,得到可执行目标文件,简称可执行文件。
计算机系统硬件的组成:

总线
- 贯穿整个系统的一组电子管道。
- 携带信息并在各个部件中传递。
- 传输定长的字节快,也就是字(word)。
I/O设备
- I/O输入输出设备是系统与外界的联系通道。
- 每个IO设备都通过一个控制器或者适配器与IO总线相连。
主存
- 临时存储设备。
- 在执行程序时,用来存放程序和程序处理的数据。
- 从物理角度:由一组动态随机存储器DRAM芯片组成。
- 从逻辑角度:是一个线性的字节数组,每个字节都有其唯一的地址,地址从0开始。
处理器
- 中央处理单元CPU。
- 执行存储在主存中的指令。
- 处理器的核心是一个大小为一个子的存储设备寄存器,称为程序计数器。
- 程序计数器指向主存中的某条机器语言指令。处理器不断执行程序计数器,并不断向内存中读取指令。
Linux一些概念介绍
linux是一个虚拟内存系统,用户程序所使用的地址和硬件物理地址不等同。因此引入虚拟内存。
用户虚拟地址:
用户空间所能看到的常规地址。每个进程都有自己的虚拟地址空间。
物理地址:
该地址在处理器和系统内存之间使用。
总线地址:
该地址在外围总线和内存之间使用。通常它们与处理器使用的物理地址相同。
页:
物理地址被分成离散的单元,成为页。系统中许多内存的操作都是基于单个页的,linux一个页表大小为4KB。
页表(存储在内存中):
将虚拟地址转化成对应的物理地址,这种机制被称作页表。页表是存放在内存中的一种数据结构,linux系统维护了一系列的页表。
核心作用:记录虚拟页到物理页的映射关系
虚拟内存区(VMA):
用于管理进程地址空间中不同区域的内核数据结构。
一个VMA表示在进程的虚拟内存中的一个同类区域:拥有同样权限标志位和被同样对象(一个文件或者交换空间)备份的一个连续的虚拟内存地址范围。
核心作用:实现了进程间的隔离与安全(一个进程崩溃不会影响其他进程),并且支持程序使用比实际物理内存更大的空间(通过 Swap 交换分区)。
| 核心概念 | 本质 | 核心作用 |
|---|---|---|
| 虚拟内存 | 抽象的地址空间 | 提供隔离、连续且巨大的内存假象 |
| 页 (Page) | 内存管理最小单位 | 将虚拟和物理内存切分为固定大小的块(通常4KB) |
| 页表 | 映射关系的数据结构 | 充当"翻译官",将虚拟页映射到真实的物理页 |
| 上下文 | 进程的运行环境与状态 | 确保进程在被暂停和恢复时,能无缝衔接之前的进度 |