我目前在操作系统讲座上,他们谈论进程的内存管理。现在,可以对流程进行不同的管理,尤其是段寻址使我头疼。
我提供了一个段寄存器(CPU显然提供了它),我可以从中得出进程的基地址。段寄存器的结构如下:
CS 0x01
SS 0x03
...等等。
基地址如下所示,并在全局描述符表中给出:
0x10000
0x30000
...等等。
GDT 还保存有关……的长度的内容。
如何计算具有给定基址的基址?
特别是,如何计算在 x86 系统中要转换为 0x41000 的 gs:0x3000 上的访问权限?
然后是最后一个问题:GDT包含访问权限,例如用户或内核。如果在具有内核访问权限的地址上执行写请求,那将不可能,对吗?
感谢您的帮助!