续:段权限保护

今天继续往下看,大概是这样,freebsd/windows/linux/solaris都没有使用intel的分段保护功能,因为分段是必须的(while paging is optional),于是采用的是intel手册中所说的"all the code, data, and stack modules can be mapped to one"的方式,且完全不使用LDT或者所有的进程(甚至包括kernel)使用同一个LDT。在intel的手册中给出了一种建议的模式是让每一个段对应一个page table,不知道为什么没有人采纳。我想,如果是这样的话,那么在传统的32位模式下(4k per page),每个page table最多容纳512个page也就是2M内存,每个地址空间将会由很多很多个段组成。
但是不知道paging为什么没有采用rwx这样的权限保护模式,而仅仅是rw,直到最近几年的产品才加了“EXECUTE-DISABLE BIT”
好多不明白的地方。求路过的高人指点

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥