Open aesophor opened 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段被其他程序写入?
如果想明确的把他们分开,有没有什么比较好的办法呢?还是大佬觉得初学时先别在意这问题?
谢谢大佬
具体细节记不太清了……如果你说的「其他程序」是指其他用户进程的话,不同用户进程之间不共享页表,一个进程尝试 读/写 其他进程地址的时候是会触发异常中断的。
了解,谢谢大佬
大佬您好,我想请问下为什么 gdt.c 里面 kernel/user 的 code/data segment 都是 0~0xfffff 呢? https://github.com/SilverRainZ/OS67/blob/master/kern/gdt.c#L56
这样的话 code 和 data segement 重叠了,是不是就没办法防止code段被其他程序写入?
如果想明确的把他们分开,有没有什么比较好的办法呢?还是大佬觉得初学时先别在意这问题?
谢谢大佬