cdsfiui 发表于 2017-01-02 10:51

"内存分段"只是intel架构(windows)的一个概念吗?

好像说linux的内存管理只是基于分页的,根本就没有分段的这个概念?

那么,在汇编语言里面,at&t的section概念,和intel的segment概念,似乎是同一个东西,都是代码段,数据段等等。

请问,"section"概念等同于"segment"的概念吗? 这两个我有点搞混了,不知道linux下的内存管理是否也有分段的说法呢?

garyv 发表于 2017-01-17 21:29

你提及的section是纯软件角度提出的一个概念,是跨平台的(arm,x86,ppc里面都能看到这玩意),跟x86 isa里面的segment没有任何关系

chaoswind 发表于 2017-04-08 01:03

本帖最后由 chaoswind 于 2017-04-08 01:09 编辑

segment 对应 8086 模式下,采用段页式访问不同空间,因此有了 cs, ds , 等寄存器用来存储 段地址 , 加上偏移量形成目标地址, 因此是 对应一种寻址方式。 当前处理器中已经没有这个了。

section 是一个纯软件的概念,或者在编译和 binary中存在的, 最典型的是可以定义多个section , 每个section不同用途。

linux 或者现代os 中都使用处理器支持的page 方式进行虚实地址变换,这个和 section 又没有什么关系。 page 大小和使用方式和处理器密切相关。 通常都支持标准的 4KB page大小。
注意这个的主要目的是为了多进程数据安全,每个进程的虚拟地址空间独立,os管理如何映射到物理地址空间。

在page映射过程中,能够玩出很多花样。 具体可以参考进程间通讯等的实现。
页: [1]
查看完整版本: "内存分段"只是intel架构(windows)的一个概念吗?