gpt4 book ai didi

linux - Linux 在哪里设置其内核和用户空间段选择器值?

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:33 26 4
gpt4 key购买 nike

我已验证在 Linux 中,以下值分别分配给内核和用户空间段:

__KERNEL_CS = 0x60
__KERNEL_DS = 0x68
__USER_CS = 0x73
__USER_DS = 0x7b

检查 Linux 源代码后,我无法确定 Linux 将上述值设置到这些段的位置。实际上,我发现了以下分配 (/arch/x86/include/asm/segment.h):

#define __KERNEL_CS (GDT_ENTRY_KERNEL_CS * 8)           /* 2*8 = 0x10 */
#define __KERNEL_DS (GDT_ENTRY_KERNEL_DS * 8) /* 3*8 = 0x18 */
#define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS* 8 + 3) /* (5*8)+3 = 0x2B */
#define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS* 8 + 3) /* (6*8)+3 = 0x33 */

任何有助于理解这一点的帮助将不胜感激。

最佳答案

$ egrep -srl '(KERNEL|USER)_[CD]S' arch/x86/kernel

我会查看 entry_32.S

关于linux - Linux 在哪里设置其内核和用户空间段选择器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com