我正在尝试理解64位体系结构中进程段的实现。我遇到了这两个讨论:
64 bit application: layout in memory
Process segments(stack,heap,data and code) are contiguous in memory?
然而,我仍然不清楚。在英特尔80286/80386年间,引入分段是为了克服使用具有16位地址的64K内存的限制。在那之后,出于兼容性的原因,32位的Intel机器仍然继续使用它。
现在转到64位:手册上说这里很少实现分段(参考:http://en.wikipedia.org/wiki/X86_memory_segmentation)。虚拟内存和分页可以提供对整个地址空间的访问以及保护。
所以我的问题是:64位编译器是如何编译64位程序的?他们是否仍然像以前一样使用“段”的概念(因为我仍然看到提到数据段、堆栈段等),但使用了更高的#位段指针?或者,“段”这个词指的是64位架构中完全不同的东西吗?
任何帮助都是非常感谢的。
发布于 2015-04-20 23:02:29
在64位模式下没有段(谢天谢地!)
在英特尔的领域中,细分一直是一项繁琐的工作。
https://stackoverflow.com/questions/29740357
复制相似问题