关于地址空间的问题

发布于 2022-09-26 12:33:21 字数 151 浏览 20 评论 0

最近开始在看 < <Linux内核源代码情景分析> > ,在第一章看到写到 "256M正是24位地址空间的大小 ".如果我没弄错的话24位地址空间的大小应该为16M,但这种书应该不会犯这种低级的错误的.我想问一下究竟是我错了还是书中的错了?请各位指教,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

知你几分 2022-10-03 12:33:21

LZ~ 既然悬赏了,就应该找一个你认为合适的答案兑现,还有什么不明白的? PS 这种行为

[ 本帖最后由 mik 于 2007-11-27 22:50 编辑 ]

晚风撩人 2022-10-03 12:33:21

任何人都会犯错误滴哦

衣神在巴黎 2022-10-03 12:33:21

你把上下文都贴出来吧。

昵称有卵用 2022-10-03 12:33:21

情景分析 P9
好像是有问题

梦途 2022-10-03 12:33:21

P10:
     "例如:为什么基地址的高8位和低24位不连在一起?最自然也最合理的解释就是:开始时Intel的意图是24位地址空间,后来又改成32位地址空间.这也可以从段长度字段也是拆成两节得到印证:当g标志位为1时,长度的单位为4KB,而段长度的低16位的容量是64K,所以一个段的最大可能长度为  64Kx4K=256M,而这正是24位地址空间的大小."

原文就是这样的,望各位指教.

哥,最终变帅啦 2022-10-03 12:33:21

原帖由 dyts 于 2007-11-17 21:21 发表
P10:
     "例如:为什么基地址的高8位和低24位不连在一起?最自然也最合理的解释就是:开始时Intel的意图是24位地址空间,后来又改成32位地址空间.这也可以从段长度字段也是拆成两节得到印证:当g标志位为1时,长度 ...

要结合 segment descriptor 的结构图来理解呀,如图:

segment base address 的低 24 位和高 8 位分别在 segment descriptor 的 2 个位域中,合并起来等于 32 位
segment limit 的低 16 位与高 4 也分别在 segment descriptor 的 2 个位域中,合共 20 位。
G 位表示 limit 的单位粒度,G = 0 时,单位为 byte, G = 1 时,单位为 4K byte

按此书的解释是: 原本 intel 用低 24 来表示地址空间的 base address。 用 16 位的 limit 来表示 segment 长。当 G = 1 时,单位为 4K byte, FFFF × FFF = FFFFFFF (256M),用这种方法来表示 24 位地址空间,后来才扩展到 32 位

偶对这种说法持保留意见:
程序地址经过 segmentation(分段机制下)转化的是 linear address (线性地址),线性地址范围是 CPU 可最大寻址的范围,从 386 开始就是 32 位,线性地址范围为 32 位宽 0 ~ 0xFFFFFFFF,无法支持此书所说的“24 位地址空间”的说法。 如果,当初设计为 24 位地址空间,为何不直接设 limit 域为 28 位,不用 G 位这么麻烦。

掩耳倾听 2022-10-03 12:33:21

原帖由 mik 于 2007-11-17 22:43 发表

偶对这种说法持保留意见:
程序地址经过 segmentation(分段机制下)转化的是 linear address (线性地址),线性地址范围是 CPU 可最大寻址的范围,从 386 开始就是 32 位,线性地址范围为 32 位宽 0 ~ 0xFFFFFFFF,无法支持此书所说的“24 位地址空间”的说法。

P6上已经说得很清楚了,从286到386过渡,可能Intel开始并没有想从16位过渡到32位,而是过渡到24位

眼藏柔 2022-10-03 12:33:21

原帖由 Wind-Son 于 2007-11-18 14:18 发表

P6上已经说得很清楚了,从286到386过渡,可能Intel开始并没有想从16位过渡到32位,而是过渡到24位

嗯,忽略了286,改天了解一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文