【问题标题】:Is memory segmentation implemented in the latest version of 64-bit Linux kernel?内存分段是否在最新版本的 64 位 Linux 内核中实现?
【发布时间】:2014-11-12 22:43:02
【问题描述】:

AMD64 架构程序员手册第 2 卷说,大多数现代系统软件都绕过了内存分段的硬件功能,因为通过结合软件和硬件分页支持来处理内存隔离和重定位通常更有效(修订版 3.23,第 65 页) ,第 3 段)。接下来,手册说在 64 位(长)模式下,仍然使用一些段寄存器(系统段寄存器)。

这让我想到了两个问题。是否有最新版本的 64 位 Linux 内核:

1) 在 AMD64 的 64 位(长)模式下运行?

2) 实现内存分段?这些系统段寄存器有什么用途吗?

【问题讨论】:

    标签: linux memory-management 64-bit


    【解决方案1】:

    64 位模式不支持分段。段寄存器仍然存在以保持兼容性,但在 64 位模式下不做任何事情。

    很遗憾,段消亡花了这么长时间才消失。

    【讨论】:

    • 我的教授坚持认为现代操作系统的内存管理是通过分页分段来实现的……实际上只使用了分页,对吧?
    • en.wikipedia.org/wiki/Memory_segmentation "x86-64架构在长模式(64位模式)下不使用分段。其中四个段寄存器:CS、SS、DS、ES强制为0,并且限制为 264。段寄存器 FS 和 GS 仍然可以有一个非零基地址。这允许操作系统将这些段用于特殊目的。"
    • 分段是为克服旧处理器的寻址限制而发明的可憎之物。我断言没有现代操作系统曾经使用过分段,而是英特尔强迫操作系统使用逆行分段。 :-)
    • 我希望我能说服我的教授她错了=(感谢您帮助我清除良心!
    • 在过去的 16 位处理器时代,需要超过 16 位的内存变得很普遍。细分市场是一种解决方案。以 IBM 谴责业界使用的芯片上的 8086 组件为例,与更好的摩托罗拉芯片相比,分段被认为是减少代码大小的一种手段。这些段应该在 32 位处理中消失,但仍然存在。现在用 64 位处理器段已经没有功能了。使用页面可以更轻松地完成您可以对细分执行的所有操作。
    猜你喜欢
    • 1970-01-01
    • 2015-05-19
    • 2012-08-01
    • 1970-01-01
    • 2023-03-27
    • 2012-07-06
    • 2010-09-07
    • 2011-05-27
    • 2012-11-30
    相关资源
    最近更新 更多