SilverRainZ / OS67

An unix-like toy kernel
GNU General Public License v3.0
725 stars 124 forks source link

想请教关于 Segmentation 的问题(gdt.c) #18

Open aesophor opened 5 years ago

aesophor commented 5 years ago

大佬您好,我想请问下为什么 gdt.c 里面 kernel/user 的 code/data segment 都是 0~0xfffff 呢? https://github.com/SilverRainZ/OS67/blob/master/kern/gdt.c#L56

这样的话 code 和 data segement 重叠了,是不是就没办法防止code段被其他程序写入?

如果想明确的把他们分开,有没有什么比较好的办法呢?还是大佬觉得初学时先别在意这问题?

谢谢大佬

SilverRainZ commented 5 years ago

具体细节记不太清了……如果你说的「其他程序」是指其他用户进程的话,不同用户进程之间不共享页表,一个进程尝试 读/写 其他进程地址的时候是会触发异常中断的。

aesophor commented 5 years ago

了解,谢谢大佬