C++笔记_01深入编译链接和运行

本文详细探讨了C++程序从编译、链接到运行的全过程,涉及预编译、编译、汇编和链接步骤。讲解了虚拟内存、内存布局、数据段(.text, .data, .bss, heap, stack)以及动态、静态重定位。此外,还阐述了符号解析和可执行文件结构,包括程序启动时的地址映射和入口点设置。" 119668886,10542172, Citrix XenServer 7.0: 虚拟化服务器详装指南,"['虚拟化技术', '服务器管理', '云计算', 'XenServer安装', '企业级虚拟化']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用任何语言写代码,无非产生两种东西,,,指令+数据

CPU的位数,指的是:一次性,能加以运算的最长的正数的宽度。   

ALU 算数逻辑单元的宽度

 

虚拟内存的大小与CPU的位数有关系  SIZE== 2^32 == 4G

 

0x0000 0000    ------  0x FFFF FFFF

 

0x00000000 -> 0x C000 0000   用户空间(低3G)

0x C0000 0000 -> 0x FFFF FFFF    内核空间(高1G)

0x0000 0000 -> 0x 0804 8000     128M的禁止访问区域

 

.text     代码段   存放指令

.data    数据段 存放数据  (已经初始化的数据)

.bss     数据段 存放数据  (未初始化或初始化为0的变量)占用虚拟地址空间

heap    堆

共享库    如果当前程序用到库中的函数

.stack    栈

命令行参数

环境变量

(以上是用户空间)

-----------(分界线)

(以下是内核空间)

ZONE_DMA         低16M      直接内存访问(加速内存和磁盘之间访问数据用的)

ZONE_NORMAL     中间892M    内核常用

ZONE_HIGHMEN     高128M     高端内存(主要在内核映射高于1G的物理内存)

 

内存布局以及相互之间的关系

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值