友链

在64位操作系统中,虚拟地址宽度为64bits,但是大多数的处理器都不支持64位宽的虚拟地址空间

当前的Intel/AMD处理器只使用48bits来表示虚拟地址空间

所有的虚拟地址必须是Canonical Address

那么什么样的地址才是Canonical Address呢?

Intel开发者手册是这么写的

这里bits 63指的是最高位

0xfffff801c9c11000的二进制形式为

11111111 11111111 11111000 00000001 11001001 11000001 00010000 00000000

那么最前面这16个1就是bits 63-48

其实是做了一个符号扩充操作

因为一共只用了48bit,那么bits47就是最高有效位了,48-63是没有用的,如果把最高有效位看做符号位,那么48-63就是符号扩充

因为48-63全是1,而最好有效位,也就是bits47也是1

这样的就是Canonical Address

0xffff080000000000的二进制形式:

11111111 11111111 00001000 00000000 00000000 00000000 00000000 00000000

这里48-63和47不一致,不符合符号扩充的规则,因此不是Canonical Address

Canonical Address相关推荐

  1. long mode 分页_x86 系列 CPU 内存寻址模式总结

    说明: S16 表示 16 位段寄存器 P16 表示 16 位的普通寄存器, 立即数, 结果为 16 位的表达式等等. P32 同上, 只是扩展到 32 位. 一. CPU 概况 1. 8086: 8 ...

  2. Linux内核深入理解系统调用(1):初始化-入口-处理-退出

    Linux内核深入理解系统调用(1):初始化-入口-处理-退出 rtoax 2021年3月 1. Linux 内核系统调用简介 这次提交为 linux内核解密 添加一个新的章节,从标题就可以知道, 这 ...

  3. 编程高手必学的内存知识01:深入理解虚拟内存

    目录 1 物理内存 1.1 物理内存概述 1.2 直接使用物理内存的问题 1.2.1 多进程地址布局困难 1.2.2 进程地址空间小 1.2.3 程序链接不统一 2 虚拟内存 2.1 引入虚拟内存的目 ...

  4. 一步一图带你深入理解 Linux 虚拟内存管理

    从本文开始我们就正式开启了 Linux 内核内存管理子系统源码解析系列,笔者还是会秉承之前系列文章的风格,采用一步一图的方式先是详细介绍相关原理,在保证大家清晰理解原理的基础上,我们再来一步一步的解析 ...

  5. SitePoint播客#34:对斜线表示抱歉

    Episode 34 of The SitePoint Podcast is now available! This week your hosts are Patrick O'Keefe (@ifr ...

  6. 【软件与系统安全笔记】三、基础技术

    [软件与系统安全]三.基础技术 这是<[软件与系统安全]笔记与期末复习>系列中的一篇 2022-02-21 第三次课后部分 2022-02-28 第四次课 2022-03-21 第四次课前 ...

  7. 64位Linux的内核和用户地址空间

    32位的Linux中,0x00000000-0xBFFFFFFFFF 这3GB是 用户空间 0xC00000000-0xFFFFFFFFFF 这1GB是 内核空间 ++++++++++++++++++ ...

  8. Linux内核之旅/张凯捷——系统调用分析(2)

    在<系统调用分析(1)>Linux内核之旅/张凯捷--系统调用分析(1)中,首先介绍了系统调用的概念,并对早期通过软中断(int 80)来进行系统调用的相关过程进行了分析,最后分析和介绍了 ...

  9. Linux 操作系统原理 — 内存管理 — 虚拟地址空间

    目录 文章目录 目录 虚拟内存技术 页式内存管理技术 虚拟地址格式与页表(32bit 系统) 虚拟地址格式与页表(64bit 系统) CPU MMU 虚实地址转换 TLS 快表转换 虚拟地址空间与 C ...

  10. loopback address 回送地址

    一.相关loopback address基本概念 路由器上设备的Loopback地址是什么意思? 本地环回接口(或地址),亦称回送地址(loopback address). 此类接口是应用最为广泛的一 ...

最新文章

  1. 【Linux】一步一步学Linux——apropos命令(230)
  2. 进入工程制图闪退_工程整体一
  3. linux guard什么进程,使用linux系统性能监控工具KSysguard监控远端主机介绍
  4. 查看linux的计划任务日志,查看计划任务日志(共5篇).docx
  5. iframe 子父窗口互掉 js
  6. c语言用什么操作系统,用C语言写关于操作系统的一个问题。
  7. hadoop中java部分练习_java私塾Hadoop实战-中高级部分 之 Hadoop RestFul
  8. 获取人脸图片和训练人脸
  9. 50台计算机教室怎样布线,电教室布线技巧有哪些?
  10. 第二十五天 正则表达式
  11. WordPress 5文章编辑真难用 换回老版经典编辑器教程
  12. Tensorboard远程连接
  13. 获取当天年月日,及开始结束时间
  14. kafka报错:The Cluster ID doesn‘t match stored clusterId Some in meta.properties
  15. NX二次开发-UFUN创建工程图注释UF_DRF_create_note
  16. 网站cookie和曲奇饼干_谷歌扔饼干和营销人员感到恶心
  17. extjs调试错误 TypeError:p is null 或 TypeError: el is null
  18. 树莓派4B通过16路PWM输出的PCA9685模块控制舵机(机械臂)附完整代码
  19. 北京-绕五环骑行(完美环绕)2017-03-11
  20. 在linux中at 调度出错,Linux 技巧: 用cron 和at 调度作业

热门文章

  1. 组织人事领域信息化探索:开启编制、干部、人事一体化管理新模式
  2. 动环监控系统的监控对象有哪些?动环监控系统作用
  3. java自行车DH32,中国国际自行车嘉年华之Enduro、DH装备篇
  4. 有个程序媛上司是什么体验
  5. nodejs获取当前连接的网络ip
  6. 标准单元库的corner简述
  7. 服务器不改变系统怎么清理c盘,服务器c盘满了怎么清理(清理c盘最简单的方法)...
  8. 我编写的肺炎疫情数据API的实现过程
  9. 桂林电子科技大学校园网登录数据包抓取教程实现路由器每天自动登录
  10. 代码批量删除QQ日志和说说