0
내가 리눅스에서 다음 값을 각각 커널과 사용자 공간 세그먼트에 할당 된 것을 확인했다 :Linux는 커널 및 사용자 공간 세그먼트 선택기 값을 설정합니까?
__KERNEL_CS = 0x60
__KERNEL_DS = 0x68
__USER_CS = 0x73
__USER_DS = 0x7b
리눅스 소스를 검사 한 후, 나는 리눅스에 위의 값을 설정 위치를 식별 할 수 없습니다 이 세그먼트.
#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 */
이의 이해를 향한 어떤 도움을 이해할 수있을 것이다 : 사실, 나는 다음과 같은 assigments (/arch/x86/include/asm/segment.h)를 발견했습니다.
내 실수 ... X86_64 대신 X86_64를 정의하고 있습니다. 이제는 단락되었습니다. – limp