第3部分 装载与链接

第6章 可执行文件的装载与进程

第1节 进程的虚拟地址空间

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

linux下虚拟地址空间的分配

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第2节. 程序装载方式

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

1. 覆盖装入

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

2. 页映射

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

 

第3节 从操作系统角度看可执行文件的装载

1. 进程的建立过程

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

2. 页错误

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第4节 进程虚存空间分布

1. ELF文件链接视图和执行视图

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

下面通过一个小例子查看实际的内存分配

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

2. 堆和栈

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

3. 堆的最大申请数量

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

5. 进程栈初始化

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第5节 Linux 内核装载ELF过程简介

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第6节 Windows PE的装载

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第7章 动态链接

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第8章 共享库的组织

 

第9章 Windows下的动态链接

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第10章 内存

第1节 程序的内存布局

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第2节 栈与调用惯例

1. 什么是栈

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

实例

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

2. 调用惯例

调用惯例主要涉及到3个方面

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

以上代码段实际操作过程如下:

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

一个多级调用栈的布局如下:

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

常见的函数调用惯例

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

3. 函数返回值传递

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第3节 堆与内存管理

1. 什么是堆

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

2. Linux进程堆管理

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

3. Windows 进程堆管理

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

4. 堆分配算法

(1) 空闲链表法

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

(2) 位图的方法

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

(3) 对象池

 

 

第11章 运行时库

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第12章 系统调用与API

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

第13章 运行库实现

读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)

 

 

 

相关文章:

  • 2021-07-05
  • 2022-12-23
  • 2022-12-23
  • 2021-08-06
  • 2021-08-13
  • 2021-05-22
  • 2021-11-09
  • 2021-10-26
猜你喜欢
  • 2021-10-23
  • 2021-10-26
  • 2021-07-08
  • 2021-08-02
  • 2021-09-25
  • 2021-06-13
  • 2021-08-20
相关资源
相似解决方案