누구나 세그먼트 설명 자와 게이트 설명 자 사이의 정확한 차이점을 설명해 주시겠습니까? 인텔 설명서를 통과하려하지만 정확히 왜 게이트 설명자가 필요한지 알아낼 수 없습니까? 세그먼트 기술 어 이외의 다른 시설 또는 지원 메커니즘은 무엇입니까? 세그먼트 설명자에 액세스하려고 할 때 권한 수준 검사를 수행 할 수 있습니까? 또한 리눅스와 Windows는 Call Gate Descriptor를 사용하지 않습니다. 아니면 세그먼트 디스크립터에 액세스하기 전에 하나 이상의 보호 레이어가 입니까? 게이트 디스크립터의 정확한 차이점과 필요성을 알고 싶습니다.세그먼트 설명자 대 게이트 설명자
답변
세그먼트 설명자는 주소 지정에 사용할 세그먼트를 지정합니다. 세그먼트는 명령 양식 (예 : bp
어드레싱은 ss
을 기반으로 함)에 의해 미리 정의되거나 세그먼트 오버라이드 접두어으로 재정의 된 지침서 (movsb
, scasb
)로 미리 정의됩니다. 세그먼트 설명자는 (G|L)DT
에 저장됩니다.
게이트 디스크립터는 일반적으로 IDT의 문제입니다. 우리는 인터럽트 게이트 (HW에 사용됨), 트랩 게이트 (프로세서 예외 및 소프트웨어 인터럽트 용) 및 태스크 게이트 (HW 태스크 전환에 사용됨)를 알고 있습니다. 그들 사이의 차이는 매우 작습니다 (인터럽트 게이트는 실제가 완료 될 때까지 다른 인터럽트를 금지합니다). 그러나 IDT에서는 비트 표현이 다릅니다.
콜 게이트는 다른 장입니다. 이들은 LDT
/GDT
에 있으며 IDT
에는 존재하지 않습니다. 유형 비트 필드는 1100b
으로 설정해야하며 base
및 limit
은 아니지만 코드에 사용해야하는 다른 세그먼트 선택기와 해당 세그먼트에 offset
이 있어야합니다. 콜 게이트 기본 기능 : 최소한의 특권 코드에 의해 이용 될 수있는 절차
- 대상 코드 세그먼트 (다른 디스크립터 테이블에 저장된 세그먼트 기술자의 인덱스) ... 지정 (
offset
필드를 사용하여) 단계는 선택적 파라미터 - 번호가 스택에 값
- 사이즈 (16/(5 비트 값이 31 인 맥스.이 목적을 위해 예약 된) 태스크 스위치가 발생할 때 스택 사이 복사 할 32 비트)
기능 목록은 here입니다.
최신 운영 체제는 일반적으로 호출 게이트를 사용하지 않지만 IDT
에 저장된 트랩 게이트는 속도가 빠르기 때문에 사용합니다. 이러한 "트랩"은 int
또는 sysenter
을 사용하여 호출되며 iret/iretd
또는 sysexit
을 사용하여 반환됩니다. 콜 게이트를 사용하려면 GDT
/LDT
, jump far
에 게이트 설명자가 필요하며 콜 게이트에 들어가려면 ret far
으로 돌아 가야합니다. sysenter
및 sysexit
명령어는 커널 링 (0)과 사용자 링 (3) 사이의 전송 제어 만 수행하지만 호출 게이트에는 이러한 제한이 없습니다.
- 1. 세그먼트 오프셋 쌍 bs 세그먼트 설명자
- 2. C.의 파일 설명자 대 정적 전역 대
- 3. 속성 대 설명자 대 __getattribute__ 사용 사례
- 4. 셰이프 설명자
- 5. Java EE 보안 : 주석 대 배포 설명자
- 6. 프로세스 제어 블록 대 프로세스 설명자
- 7. 인터럽트 설명자 테이블 변경
- 8. C의 파일 설명자 할당
- 9. InstallShield : Darwin 설명자
- 10. 설명자 __get__ 메서드
- 11. 출력 파일 설명자 리디렉션
- 12. KeyPoint 설명자 OpenCV
- 13. 웹 서비스 배포 설명자
- 14. 설명자 클래스에 액세스하기
- 15. NSFetchedResultsController - Swift로 설명자 정렬
- 16. Ext2 : 그룹 설명자
- 17. SIFT/VLFEAT의 이미지 설명자
- 18. OpenCV 병렬 컴퓨팅 설명자?
- 19. C의 파일 설명자
- 20. 글로벌 범위의 설명자?
- 21. 리눅스 파일 설명자 혼동
- 22. SelectById2에 대한 포인터 설명자
- 23. 구식 클래스의 파이썬 설명자
- 24. VMDK 설명자 파일 형식
- 25. Toplink XML 설명자 참조
- 26. Nginx 파일 설명자 제한
- 27. 파일 설명자 리디렉션이 멈춤
- 28. 서블릿의 배포 설명자
- 29. SIFT 설명자 뒤에있는 개념
- 30. epoll 파일 설명자 작업