我试图了解 64 位架构中进程段的实现。我遇到了这两个讨论:
但是,我仍然不清楚。在 Intel 80286/80386 时代,引入分段是为了克服使用 16 位地址的 64K 内存的限制。此后,出于兼容性原因,32 位 Intel 机器仍继续使用它。
现在转向 64 位:手册说这里很少实现分段(参考:http ://en.wikipedia.org/wiki/X86_memory_segmentation )。虚拟内存和分页可以提供对整个地址空间的访问以及保护。
所以我的问题是:64 位编译器如何编译 64 位程序?他们是否仍然像以前一样使用“段”的概念(因为我仍然看到提到数据段、堆栈段等),但使用更高的#位段指针?或者,“段”这个词是否指的是完全不同的 64 位架构?
任何帮助表示赞赏。