Windows 실행 파일이 SYSENTER를 사용하고 AMD64 ISA를 구현하는 프로세서에서 실행되는 경우 어떻게됩니까? 나는이 주제 (OSes, 하드웨어/소프트웨어 상호 작용)에 새롭고 초보자 다. 그러나 내가 읽었던 것에서 SYSCALL이 Intel의 SYSENTER와 동등한 AMD64라는 것을 이해했다. 바라건대이 질문은 의미가 있습니다.사소한 SYSENTER/SYSCALL 질문
답변
지원되지 않는 SYSENTER를 사용하려고하면 "잘못된 opcode"예외가 발생할 수 있습니다. 이 상황은 드문 경우입니다. 일반적으로 Windows 실행 파일에는 커널 모드로 들어가기위한 지침이 직접 포함되어 있지 않습니다.
예, Windows에서 일반적으로하는 일은 커널을 호출하는 코드가있는 DLL을 호출하는 것입니다. –
실제로 직접 시스템 호출을하면 exe가 바이러스로 탐지되는 경우가 많습니다. –
AM64 프로세서는 이러한 문제를 처리하기 위해 다른 유형의 모드를 사용합니다.
SYSENTER는 정상적으로 작동하지만 그렇게 빠르지는 않습니다.
매우 유용한 사이트
는 다른 모드에 대해 시작합니다 : 그들은 AMD64 확장을 개발 할 때 사용되지 않는 기능의 무리를 제거있어 Wikipedia. 주요한 것들 중 하나는 cs, ds, es, ss 세그먼트 레지스터의 제거입니다. 일반적으로 세그먼트 레지스터를로드하는 작업은 매우 비쌉니다 (CPU는 권한 검사를 수행해야하며 여러 메모리 액세스가 포함될 수 있습니다). 커널 모드에 들어가려면 새 세그먼트 레지스터 값을로드해야합니다.
SYSENTER 명령은 권한 검사를 수행하지 않고 (내부, 숨겨진) 세그먼트 설명자에 직접 복사 할 수있는 "섀도우 레지스터"집합을 사용하여이 작업을 가속화합니다. 대부분의 이점은 세그먼트 레지스터 두 개만으로 손실되므로 명령에 대한 지원을 제거하는 이유는 모드 스위치에 대한 일반 지침을 사용하는 것이 더 빠르다는 것입니다.
- 1. 사소한 리눅스 사운드 재생
- 2. 사소한 메시지를위한 중재자 패턴?
- 3. 현대적이고 사소한 파이 게임 튜토리얼?
- 4. Fortran90 OpenMP의 사소한 개인 데이터
- 5. 사소한 클래스를 상속하는 사례가 있습니까?
- 6. 그래서 사소한 것 : Java에서 ""쓰기
- 7. Dhtmlx Gantt Chart - 사소한 문제
- 8. Quicky : VB, XML 및 SOAP. 사소한 오류입니까?
- 9. fork() 및 pipe()에 대한 사소한 문제
- 10. JUnit 4.8.1/Maven 사소한 테스트가 작동하지 않음
- 11. 이야기 기반 민첩/반복 개발의 사소한 비틀기
- 12. JPA에서 사소한 제약 조건을 표현하지 마십시오.
- 13. 아파치 : (비) 사소한 서브 도메인의 재 작성
- 14. 배포 - 웹 응용 프로그램의 사소한 변경
- 15. (사소한?) C# 네임 스페이스/클래스 계층 문제
- 16. 사소한 변경 후 Dataview 웹 파트가 실패합니다.
- 17. 코드의 각 사소한 변경 후에 링크하지 마십시오
- 18. CSS 드롭 다운 메뉴 사소한 문제
- 19. 사소한 초기 값으로 벡터를 채우는 방법은 무엇입니까?
- 20. iPhone + 사소한 메모리 누수 + 응용 프로그램 충돌
- 21. 사소한 차이를 허용하는 해싱 알고리즘이 있습니까?
- 22. Github : 관련없는 사소한 변경을 별도로 요청하십시오?
- 23. 레일 마이그레이션 발전기 ... 아마 사소한 뭔가가
- 24. svn dev주기. howto lots 사소한 "기능"승인 대기 중
- 25. 저장 프로 시저 성능이 임의로 감소합니다. 사소한 ALTER가 수정했습니다. 왜?
- 26. 공백에서 사소한 차이를 구분하지 않고 (무시하는) 문자열을 비교하려면 어떻게합니까?
- 27. 사소한 일 : 안드로이드에서 보낸 이메일에 대한 확인을 얻으십시오
- 28. 특수 문자를 처리하기 위해 정규식에서 사소한 변경이 발생했습니다.
- 29. 사소한 HTML 마크 업과 함께 jQuery 이벤트 위임?
- 30. 사소한 반환 유형에 대한 인터페이스를 만드는 것이 가치가 있습니까?
그다지 사소한 것이 아닙니다 ... "무슨 일이 일어나는가?"라는 말은 무엇을 의미합니까? 그것이 어떻게 처리되는지 또는 그것이 작동 하는지를 알고 싶습니까? 추가 정보는 좋을 것입니다 – bastianneu
주로 작동하는지 알고 싶었습니다. 그러나 실제로 무슨 일이 일어나는지 아는 것도 상처를주지 않을 것입니다. 답변 중 하나에 제공된 wiki-article은 "AMD64에는 긴 모드의 두 하위 모드 모두에서 SYSENTER와 SYSEXIT가 없습니다."라고 나와 있습니다. INT 0x2E, SYSENTER 및 SYSCALL을 사용하는 3 개의 x86-64 PE가있는 경우 모두 커널 공간으로 점프하기 위해 프로세서를 구현하는 x86-64에서 작동합니까? – qpp
http://www.nynaeve.net/?p=48이 블로그 게시물은 Windows에서 시스템 호출 발송자가 입력 방법을 선택하는 방법에 대해 최소한 저에게 대답했습니다. – qpp