사용자 공간

전통적인 컴퓨터 운영 체제는 일반적으로 가상 메모리를 커널 공간과 사용자 공간으로 분리시킨다. 커널 공간은 커널, 커널 확장 기능, 대부분의 장치 드라이버를 실행하기 위한 예비 공간이다. 반면 사용자 공간은 모든 사용자 모드 응용 프로그램들이 동작하는 메모리 영역으로, 이 메모리는 필요할 때 페이징 처리될 수 있다.

이와 비슷한 용어로 유저랜드(userland)가 있는데 이는 사용자 공간에서 실행하는 모든 응용 소프트웨어를 가리킨다. 유저랜드는 일반적으로 운영 체제가 커널과 상호 작용하기 위해 사용하는 다양한 프로그램과 라이브러리를 가리킨다. 여기에는 입출력을 수행하고 파일 시스템 오브젝트를 처리하는 소프트웨어를 아우른다.

개별 사용자 공간 프로세스는 일반적으로 저만의 가상 메모리 공간에서 실행되며, 분명히 요청되지 않을 경우 다른 프로세스의 메모리에 접근할 수 없다. 이는 오늘날의 주류 운영 체제에서 제공되는 메모리 보호 기능의 토대이자 권한 분리를 위한 구성 요소이다. 권한에 따라 프로세스들은 디버거와 같이 커널에 다른 프로세스의 메모리 공간의 일부를 커널 자체에 매핑하도록 요청할 수 있다. 프로그램들은 다른 프로세스와의 공유 메모리 공간을 요청할 수도 있다.

실험적인 운영 체제에서 제공되는 또 다른 접근 방식으로는 모든 소프트웨어 대해 단일 주소 공간을 소유하는 것으로, 프로그래밍 언어의 기계어에 의지함으로써 메모리가 독단적으로 접근하지 못하게 미연에 방지한다. 이는 응용 프로그램들이 단순히 접근이 허가되지 않은 오브젝트에 대한 어떠한 참조를 회득할 수 없게 한다. 이러한 접근 방식은 JXOS, Unununium, 마이크로소프트의 싱귤래리티 연구 프로젝트에 추가되어 있다.

같이 보기 
 바이오스
 CPU 모드
 메모리 보호
 보호 링

참조 

운영체제 기술
장치 드라이버