프로세스 관리
프로세스에 CPU를 배분하고 작업에 필요한 제반환경 제공
메모리 관리
프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간 제공
파일 시스템 관리
데이터를 저장하고 접근할 수 있는 인터페이스 제공
입출력 관리
필요한 입력과 출력 서비스 제공
프로세스간 통신 관리
공동 작업을 위한 각 프로세스간 통신(IPC) 환경 제공
운영체제의 모든 기능 및 구성요소를 커널에 포함하여 커널의 다양한 서비스 및 높은 수준의 하드웨어 추상화를 하나의 덩어리(주소 공간)로 묶은 것이다.
단일커널 기반 운영체제는 프로세스 관리, 메모리 관리, 인터럽트 처리, 입출력 통신, 파일 시스템 등과 같은 모든 기본적인 시스템 서비스를 실행하는 커널 공간과 운영체제의 나머지 부분(라이브러리, 응용프로그램)의 사용자 공간을 계층 방식으로 구성
VFS, IPC, 디바이스 드라이버 등의 시스템 기능들은 커널위의 서버 형태로 존재
성능이 좋으며 모델간 통신비용 감소된다.
하지만 인터페이스와 기능의 분리가 어렵다.
운영체제가 기능의 추가로 점점 확대되면서 복잡한 설계를 간결하게 해결하고자 유사한 기능을 묶어 계층화하여 모듈구조로 변화되었다.
예를 들어, 하향식 접근 방식으로 전반적인 기능과 특징의 구성 요소로 나누어지면서 시스템은 여러가지 모듈(방법)을 만들 수 있다.
구조와 디버깅의 간단
사용자 프로세스 요청을 실행하는데 많은 계층을 통과해야 하는 문제가 있음
잘 정의된 작은 모듈로 분할하여 운영체제의 높은 신뢰성을 달성하려는 구조
입출력 제어와 기본 프로세스 통신 커널을 줄이고 다른 시스템 서비스는 정상적인 프로세스의 형태 즉, 서버로 불리는 사용자 공간에 있도록 한다.
따라서 메모리를 관리하는 서버, 프로세스 관리 서버, 파일 시스템이나 드라이버 서버가 모두 사용자 공간에 들어간다.
서버가 더 이상 커널 공간에서 실행되지 않기 때문에 사용자 프로세스가 특권 모드(다시 종료)가 될 수 있도록 문맥교환이 필요.
하지만 이러한 구조덕분에 하나의 서비스가 죽더라도 커널 전체가 패닉되지 않는다
e.g. MacOS X, Windows NT