IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux x86-64 64位操作系统的虚拟地址空间布局 -> 正文阅读

[系统运维]Linux x86-64 64位操作系统的虚拟地址空间布局

程序一开始执行,操作系统为其分配“虚拟地址空间”,对于x-86架构的32bit操作系统,会分配2^32 = 4G Byte的虚拟地址空间,对于64bit系统,理论上会分配2^64 Byte大小的虚拟内存,但目前没有这么大的需要,所以一般只分配2^48 Byte

#include <cstdio>
#include <thread>

const char c = 'c';
const char * str{"abc"};
int g_i = 0;

int main()
{
	const int a = 100;
	auto b = new int[20]{0};
	
	::printf("全局初始化const对象 -> %p\n", std::addressof(c));
	::printf("全局常量指针对象 -> %p\n", std::addressof(str));
	::printf("字符字面量 -> %p\n", std::addressof("abc"));
	::printf("全局未初始化对象 -> %p\n", std::addressof(g_i));
	::printf("局部对象 -> %p\n", std::addressof(a));
	::printf("动态分配空间 -> %p\n", std::addressof(*b));
	
	std::this_thread::sleep_for(std::chrono::seconds(100));
	
	delete[] b;
	return 0;
}
全局初始化const对象 -> 0x55bfad049012
全局常量指针对象 -> 0x55bfad04b010
字符字面量 -> 0x55bfad049013
全局未初始化整形对象 -> 0x55bfad04b01c
局部变量 -> 0x7fffed525af0
动态分配空间 -> 0x55bfadb84eb0

g++ test.cpp; ./a.out; ps -ef | grep a.out
cat /proc/[pid]/maps

55bfad047000-55bfad048000 r--p 00000000 08:05 2494317                    /home/yz/share/c++memerylearn/a.out
55bfad048000-55bfad049000 r-xp 00001000 08:05 2494317                    /home/yz/share/c++memerylearn/a.out
55bfad049000-55bfad04a000 r--p 00002000 08:05 2494317                    /home/yz/share/c++memerylearn/a.out
55bfad04a000-55bfad04b000 r--p 00002000 08:05 2494317                    /home/yz/share/c++memerylearn/a.out
55bfad04b000-55bfad04c000 rw-p 00003000 08:05 2494317                    /home/yz/share/c++memerylearn/a.out
55bfadb73000-55bfadb94000 rw-p 00000000 00:00 0                          [heap]
7f7131915000-7f7131919000 rw-p 00000000 00:00 0 
7f7131919000-7f713191c000 r--p 00000000 08:05 656457                     /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f713191c000-7f713192e000 r-xp 00003000 08:05 656457                     /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f713192e000-7f7131932000 r--p 00015000 08:05 656457                     /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f7131932000-7f7131933000 r--p 00018000 08:05 656457                     /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f7131933000-7f7131934000 rw-p 00019000 08:05 656457                     /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7f7131934000-7f7131943000 r--p 00000000 08:05 662665                     /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f7131943000-7f71319ea000 r-xp 0000f000 08:05 662665                     /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f71319ea000-7f7131a81000 r--p 000b6000 08:05 662665                     /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f7131a81000-7f7131a82000 r--p 0014c000 08:05 662665                     /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f7131a82000-7f7131a83000 rw-p 0014d000 08:05 662665                     /usr/lib/x86_64-linux-gnu/libm-2.31.so
7f7131a83000-7f7131aa8000 r--p 00000000 08:05 662023                     /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f7131aa8000-7f7131c20000 r-xp 00025000 08:05 662023                     /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f7131c20000-7f7131c6a000 r--p 0019d000 08:05 662023                     /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f7131c6a000-7f7131c6b000 ---p 001e7000 08:05 662023                     /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f7131c6b000-7f7131c6e000 r--p 001e7000 08:05 662023                     /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f7131c6e000-7f7131c71000 rw-p 001ea000 08:05 662023                     /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f7131c71000-7f7131c75000 rw-p 00000000 00:00 0 
7f7131c75000-7f7131d0b000 r--p 00000000 08:05 660665                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
7f7131d0b000-7f7131dfc000 r-xp 00096000 08:05 660665                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
7f7131dfc000-7f7131e45000 r--p 00187000 08:05 660665                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
7f7131e45000-7f7131e46000 ---p 001d0000 08:05 660665                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
7f7131e46000-7f7131e51000 r--p 001d0000 08:05 660665                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
7f7131e51000-7f7131e54000 rw-p 001db000 08:05 660665                     /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
7f7131e54000-7f7131e59000 rw-p 00000000 00:00 0 
7f7131e6b000-7f7131e6c000 r--p 00000000 08:05 661807                     /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f7131e6c000-7f7131e8f000 r-xp 00001000 08:05 661807                     /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f7131e8f000-7f7131e97000 r--p 00024000 08:05 661807                     /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f7131e98000-7f7131e99000 r--p 0002c000 08:05 661807                     /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f7131e99000-7f7131e9a000 rw-p 0002d000 08:05 661807                     /usr/lib/x86_64-linux-gnu/ld-2.31.so
7f7131e9a000-7f7131e9b000 rw-p 00000000 00:00 0 
7fffed506000-7fffed527000 rw-p 00000000 00:00 0                          [stack]
7fffed5f8000-7fffed5fc000 r--p 00000000 00:00 0                          [vvar]
7fffed5fc000-7fffed5fe000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]
全局初始化const对象 -> .rodata
全局常量指针对象 -> .data
字符字面量 -> .rodata
全局未初始化对象 -> .bss
局部对象 -> stack
动态分配空间 -> heap
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:49:07  更:2021-10-21 12:50:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:29:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码