码迷,mamicode.com
首页 > 系统相关 > 详细

【笔记】深入理解Linux内核--内存寻址(一)

时间:2015-03-15 19:45:36      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

《深入理解Linux内核》中关于内存管理一共有三章,这是其中的一章,还有第八章,讨论内核怎样给自己分配主存,以及第九章,考虑怎样给进程分配线性地址。

  1. 内存地址 -- (P40)

以下三种地址是相对与8086处理器来说的。

    • 逻辑地址(logical address)

包含在机器语言指令中用来指定一个操作数或一条指令的地址。比如下面反汇编代码中最左边的地址即逻辑地址。

技术分享
 1   40052d:    55                       push   %rbp
 2   40052e:    48 89 e5                 mov    %rsp,%rbp
 3   400531:    48 83 ec 10              sub    $0x10,%rsp
 4   400535:    89 7d fc                 mov    %edi,-0x4(%rbp)
 5   400538:    48 89 75 f0              mov    %rsi,-0x10(%rbp)
 6   40053c:    bf d4 05 40 00           mov    $0x4005d4,%edi
 7   400541:    e8 ca fe ff ff           callq  400410 <puts@plt>
 8   400546:    b8 00 00 00 00           mov    $0x0,%eax
 9   40054b:    c9                       leaveq 
10   40054c:    c3                       retq   
11   40054d:    0f 1f 00                 nopl   (%rax)
disassemble hello.c

8086处理器采用分段结构,每一个逻辑地址都由一个段(segment)和偏移量(offset)组成;即 逻辑地址=段地址+偏移量。

    • 线性地址
    • 物理地址
  1. 硬件中的分段 -- (P41)
    • 段选择符&段寄存器
    • 段描述符
    • 快速访问段描述符
    • 分段单元
  2. Linux中的分段 -- (P46)
    • Linux GDT
    • Linux LDT
  3. 硬件中的分页 -- (P50)
    • 常规分页
    • 扩展分页
    • 硬件保护方案
    • 常规分页举例
    • 物理地址扩展(PAE)分页机制
    • 64位系统中的分页
    • 硬件高速缓存
    • 转换后援缓冲器(TLB)
  4. Linux中的分页 -- (P62)
    • 线性地址字段
    • 页表处理
    • 物理内存布局
    • 进程页表内核页表
    • 固定映射的线性地址
    • 处理高速缓存&TLB

【笔记】深入理解Linux内核--内存寻址(一)

标签:

原文地址:http://www.cnblogs.com/shibo1802/p/4340109.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!