답변1
커널은 프로세스를 대신하여 이를 처리합니다. 실제로 커널의 주소 공간은 CPU가 권한 모드(x86의 링 0)에 있을 때만 액세스할 수 있습니다.
당신은 또한 볼 수 있습니다모든 프로세스의 가상 주소 공간이 "커널" 부분에 동일한 내용을 가지고 있습니까?,Linux 프로세스의 가상 메모리 공간의 커널 부분을 갖는 용도는 무엇입니까?,64비트 Linux 프로세스의 가상 메모리 커널 부분에는 무엇이 있습니까?, 그리고시스템 호출을 사용하는 대신 언제 프로세스 가상 메모리의 커널 부분으로 점프합니까? (리눅스에서).
답변2
이 (매우 단순화된) 메모리 맵은 오래 전, 먼 운영 체제에서 나온 것입니다. 요즘에는 조각이 주소 공간에 무작위로 매핑될 수 있으며(흥미로운 예는 매우 자주 요청하는 프로그램의 성능에 사용되는 현재 시간을 포함하는 Linux 커널 변수입니다) 프로그램의 주소 공간은 여러 조각으로 흩어져 있습니다. 모든 곳의 (논리적) 주소 공간. 예를 들어, 각 공유 라이브러리에는 자체 메모리 영역이 할당됩니다.