Linux内核学习第3天

举报
远航 | FIBOS 发表于 2020/12/01 00:18:50 2020/12/01
【摘要】 保护模式内存管理 内存寻址:对存储在内存中的某个数据对象的地址进行定位        80X86CPU中,一条操作由操作码和操作数组成 段:一种内存寻址技术把内存分为一个或多个线性区域(段)        80X86有6个存放段选择符的段寄存器:CS、DS、ES、SS、FS、GS        CS:总是用于寻址代码段,由CS 寻址代码段称为当前代码段       ...
保护模式内存管理
  1. 内存寻址:对存储在内存中的某个数据对象的地址进行定位
           80X86CPU中,一条操作由操作码和操作数组成
    段:一种内存寻址技术把内存分为一个或多个线性区域(段)
           80X86有6个存放段选择符的段寄存器:CS、DS、ES、SS、FS、GS

           CS:总是用于寻址代码段,由CS 寻址代码段称为当前代码段
           SS:堆栈段使用SS寄存器,栈顶由ESP寄存器内容内容指定,堆栈顶的地址为SS:[ESP]
           指令的偏移由三部分相加组成:基地址寄存器、变址寄存器和偏移常量
                                                     即:偏移地址 = 基地址 + (变址 * 比例因子) + 偏移量
  2. 地址变换:将程序的逻辑地址变换或映射到物理内存地址上
            两种主要技术:分段机制、分页机制
            过程:
                     
                      (1)使用分段机制将逻辑地址转换为处理器能够寻址的内存空间(线性地址空间)
                      (2)使用分页机制将线性地址转换为物理地址(可选)
                               *如果没有启用分页机制,那么线性地址将会直接映射到处理器的物理地址空间上

                     

  3. 分段机制:提供了隔绝各个代码、数据和堆栈区域的机制
           (1)提供了一种机制将线性地址空间划分为一些称为段的受保护的区域
           (2)段可以用来存储代码、数据、堆栈和系统数据结构(TSS、LDT)
           (3)可以对段进行分类,对特定段的操作可以被限制
           (4)逻辑地址 = 段选择符 + 偏移量
                          段选择符:是一个段的唯一标识,提供了段描述表中的一个数据结构的偏移量,并指明段的大小,访问权限和段的特权级、段类型和段的基地址
                          逻辑地址的偏移量加上段的基地址就可以定位段的某个字节的位置(即为处理器线性空间地址)

文章来源: blog.csdn.net,作者:冰水比水冰,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/luoyhang003/article/details/24590385

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。