linux0.12内核---关于内存寻址与4k边界对齐

  1. 以4G大小的物理内存为例,其可以存储4G(4,294,967,296)个字节(每个字节8bit(位)),每个字节在内存中可以看做是按照数组样式向下排列,因此要想对所有字节进行寻址,那么就需要对每个字节进行编址,类似于数组的下标,通过下标来对内存的每个字节进行访问,这就是寻址。
  2. 由于2^32=4,294,967,296,所以想要寻址4G的内存,就需要一个32位的二进制数来对内存就行寻址,通常用16进制数来表示地址,1位十六进制数需要4位二进制数表示,因此32位的二进制数就可以转化为8位的十六进制来表示,也即下图的0x00000000、0x00000001。
    在这里插入图片描述
  3. 再来看4k对齐,内存进行分页机制时,会找到每一个4k地址的边界处,进行分页操作,一页的大小是4k,页表中的页表项存储的是每一页物理内存的起始地址,占4个字节,共32位,如下图所示。
    在这里插入图片描述
    但是实际使用中32位的物理页基址的低12位全为0,所以会将其挪作他用,作为地址使用时再与上0xfffff000即可。那为什么物理页基址的低12位会为0呢?我们再来看下图。
    在这里插入图片描述
    看明白了吗,如果我们继续往下对内存进行编址,在第4096个字节处,正好是4k的页面大小,其对应的地址是0x00000FFF,在此处进行4k分页,第4097个字节作为下一个4k页的起始处,其地址恰为0x00001000,低12位正好为0,是不是很奇妙,这样再往下分4k的页面到第8192个字节,其地址是0x00001FFF,第8193个字节对应的地址正好是0x00002000。这样只要是4k页面的分界处,其32位地址的低12总是0,以此类推下去。因此在进行内存分页时,系统会自动检测4k页面的边界处,进行分页,实现边界对齐。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于《Linux内核完全剖析基于0.12内核.pdf》,如果想要给其添加目录索引书签,可以通过以下步骤实现。 1. 打开Adobe Acrobat Reader:首先,确保你已经安装了Adobe Acrobat Reader这个PDF阅读器软件,如果没有,可以通过官方网站进行下载和安装。 2. 打开PDF文件:在Adobe Acrobat Reader中,选择“文件”菜单,然后选择“打开”,找到并选择《Linux内核完全剖析基于0.12内核.pdf》文件,点击“打开”。 3. 找到文档结构:在Adobe Acrobat Reader的右侧,你会看到一个名为“文档结构”的窗口。如果未打开,可以在菜单中选择“视图”并启用“文档结构”选项。 4. 添加目录:在“文档结构”窗口中,你可以看到文档中的各个章节和标题。选择某个章节或标题,然后在“文档结构”窗口上的小工具栏中,点击“添加新目录项”。 5. 编辑目录:在弹出的对话框中,输入适当的标题和页码。如果需要,可以使用缩进来建立层次结构。点击“确定”后,你会发现目录已经成功添加到“文档结构”窗口中,并且相应的页面会自动链接到目录项。 6. 保存文件:在完成所有目录的添加后,你可以选择“文件”菜单中的“保存”,保存带有目录索引书签的PDF文档。以后每次打开该文档时,都可以通过点击目录中的条目快速导航到相应的页面。 通过以上步骤,你可以为《Linux内核完全剖析基于0.12内核.pdf》添加目录索引书签,使阅读更加方便和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值