특정 OS에 대한 질문은 아니지만 Windows를 예로 들어 보겠습니다. 사용자 공간 프로그램은 Windows API를 사용하여 커널 공간과 통신합니다. 그러나 나는 그것이 어떻게 가능한지 이해하지 못합니다. MS 웹 사이트에 따르면 API는 사용자 공간에 있습니다. 커널 공간에 액세스하려면 내가 올바르게 이해한다면 커널 공간에 있어야합니다. 그렇다면 Windows API가 커널 공간과 대화 할 수있는 추가 권한을 얻는 메커니즘은 무엇입니까? 그 메커니즘은 어느 공간에서 작동합니까? 이런 일이 모든 최신 PC OS에 보편적일까요?
CPU 레지스터를 통해 사용자 메모리 공간 (사용자 모드에서 액세스 가능)과 보호 된 메모리 공간 (커널 모드에서 액세스 가능) 사이의 정보 전송을위한 중간 역할을하는 CPU입니다.
다음은 예입니다.
사용자가 더 높은 수준의 언어로 프로그램을 작성한다고 가정합니다. 이제 프로그램이 실행되면 CPU가 가상 주소를 생성합니다.
이제 읽기 / 쓰기 작업이 발생하기 전에 가상 주소가 물리적 주소로 변환됩니다. 변환 메커니즘 (메모리 관리 장치)은 커널 모드에서만 액세스 할 수 있기 때문에 보호 된 메모리에 저장되기 때문에 변환은 커널 모드에서 발생하고 물리적 주소는 최종적으로 CPU의 일부 레지스터에 저장되고 읽기 / 쓰기 작업이 발생합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다