Update 计算机操作系统 - 链接.md

重新绘制配图。
This commit is contained in:
CyC2018
2026-10-26 22:04:18 +08:00
parent f77a380a04
commit 2a364648c9
4 changed files with 3 additions and 3 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

+3 -3
View File
@@ -31,7 +31,7 @@ gcc -o hello hello.c
这个过程大致如下:
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg" width="800"/> </div><br>
<div align="center"> <img src="pics/compile-pipeline.png" width="760px"/> </div><br>
- 预处理阶段:处理以 # 开头的预处理命令;
- 编译阶段:翻译成汇编文件;
@@ -45,7 +45,7 @@ gcc -o hello hello.c
- 符号解析:每个符号对应于一个函数、一个全局变量或一个静态变量,符号解析的目的是将每个符号引用与一个符号定义关联起来。
- 重定位:链接器通过把每个符号定义与一个内存位置关联起来,然后修改所有对这些符号的引用,使得它们指向这个内存位置。
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/47d98583-8bb0-45cc-812d-47eefa0a4a40.jpg"/> </div><br>
<div align="center"> <img src="pics/static-link.png" width="760px"/> </div><br>
## 目标文件
@@ -65,4 +65,4 @@ gcc -o hello hello.c
- 在给定的文件系统中一个库只有一个文件,所有引用该库的可执行目标文件都共享这个文件,它不会被复制到引用它的可执行文件中;
- 在内存中,一个共享库的 .text 节(已编译程序的机器代码)的一个副本可以被不同的正在运行的进程共享。
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/76dc7769-1aac-4888-9bea-064f1caa8e77.jpg"/> </div><br>
<div align="center"> <img src="pics/dynamic-link.png" width="760px"/> </div><br>