안녕하세요 현재 기본도 모르면서 하이퍼바이저를 만들고 있는데요.
질문의 목적은 세그먼트 레지스터 초기화 및 로드 질문입니다.
구조는 UEFI 앱 - return 주소 저장 후 vmm.bin으로 jmp
현재 GDTR, 페이지 테이블은 교체를 완료한 상태입니다.
GDT 내용은
gdt[0] = X86_NULL_DESCRIPTOR;
gdt[1] = X86_KERNEL_CODE_SEGMENT;
gdt[2] = X86_KERNEL_DATA_SEGMENT;
gdt[3] = X86_USER_CODE_SEGMENT;
gdt[4] = X86_USER_DATA_SEGMENT;
gdt[5] = 0;
gdt[6] = X64_NULL_DESCRIPTOR;
gdt[7] = X64_KERNEL_CODE_SEGMENT;
gdt[8] = X64_KERNEL_DATA_SEGMENT;
gdt[9] = X64_USER_CODE_SEGMENT;