深入理解Linux内核 - 第二章 内存寻址 01

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解Linux内核 - 第二章 内存寻址 01相关的知识,希望对你有一定的参考价值。

1,三个地址

逻辑地址,机器语言指令中用来指定一个操作数或一条指令的地址。

线性地址:32位无符号整数,高达4GB。64位的cpu就是64位的线性地址

物理地址:内存芯片级内存单元寻址。老式x86由32位或36位无符号整数表示。 

2,MMU内存控制单元

存在一个分段单元的硬件电路将一个逻辑地址转换为线性地址

存在一个分页单元的硬件电路将线性地址转换成一个物理地址。

问题:

1,为什么物理地址能够用36位的地址来表示?

2,为什么是逻辑地址转换成线性地址,再由线性地址转换为物理地址,这3个地址是什么关系?

3,一个程序被objdump后的地址是什么地址?如下片段

0000000000400526 <main>:
400526: 55 push %rbp
400527: 48 89 e5 mov %rsp,%rbp
40052a: 48 83 ec 10 sub $0x10,%rsp
40052e: 89 7d fc mov %edi,-0x4(%rbp)
400531: 48 89 75 f0 mov %rsi,-0x10(%rbp)
400535: bf d4 05 40 00 mov $0x4005d4,%edi
40053a: e8 c1 fe ff ff callq 400400 <[email protected]>
40053f: b8 00 00 00 00 mov $0x0,%eax
400544: c9 leaveq 
400545: c3 retq 
400546: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
40054d: 00 00 00

 













以上是关于深入理解Linux内核 - 第二章 内存寻址 01的主要内容,如果未能解决你的问题,请参考以下文章

深入理解Linux内核 - 第二章 内存寻址 03

深入理解Linux内核 - 第二章 内存寻址 04

准备把深入理解Linux内核这本书细看一遍

深入理解Linux内核笔记—第02章:内存寻址.md

深入理解计算机系统-之-内存寻址--linux中分段机制的实现方式

深入理解Linux内存管理-之-目录导航