程序的链接、装载和库——《程序员的自我修养》笔记

一.计算机软件系统体系结构

  计算机系统软件体系结构采用一种层的结构,有人说过一句名言:

计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。

  这句话几乎概括了计算机系统软件体系结构的设计要点,整个体系结构从上到下都是按照严格的层次结构设计的,不仅是计算机系统软件整个体系是这样的,体系里面的每个组件比如操作系统本书,很多应用程序、软件系统甚至很多硬件结构都是按照这种层次的结构组织和设计的,系统软件体系结构中,各种软件的位置如下图所示。

这里写图片描述

二.程序从源代码到运行起来的整个流程

1. 预编译(源代码-源代码)

这里写图片描述

2.编译(源代码——汇编文件)

这里写图片描述

  编译有分为很多步骤:扫描,语法分析,语义分析,源代码优化,代码生成和目标代码优化.最终产生的是汇编文件.

3.汇编(汇编文件——机器命令(目标文件)),属于汇编语言的知识

这里写图片描述

4.链接(目标文件+库——可执行文件)

有两种链接:静态链接和动态链接

5.装载(可执行文件的装载)

覆盖

页映射

这里写图片描述

6.运行

这里写图片描述
这里写图片描述

  程序运行,肯定要首先把程序装载到内存中去,然后才是物理地址和逻辑地址等等,也就是说涉及三层映射,具体可以看一看《详解LMA(装载内存地址)与VMA(虚拟内存地址)》这个文档。
  可执行文件映射到虚拟地址,虚拟地址映射到物理地址。

7.运行库

8.windows api和系统调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值