잔글 →PC
잔글 →구조
 
8번째 줄: 8번째 줄:
커널은 프로그램이 실행되는 단위인 프로세스의 실행 시간 비중을 결정하는 [[프로세스 스케줄링]], [[가상 메모리]] 등의 메모리(RAM) 관리, 연산 자원 공유 관리 체계 및 입출력 제어로 구성되어 있다.
커널은 프로그램이 실행되는 단위인 프로세스의 실행 시간 비중을 결정하는 [[프로세스 스케줄링]], [[가상 메모리]] 등의 메모리(RAM) 관리, 연산 자원 공유 관리 체계 및 입출력 제어로 구성되어 있다.


커널 외에 사용자와 상호작용을 하고 사람이 내린 명령을 커널로 전달하는 쉘(Shell), 장치의 제어를 담당하는 디바이스 드라이버 및 파일 관리용 파일 시스템 구현 코드 등이 있다. 이것들이 쉘 정도를 제외하고 통째로 합본 형태로 존재하면 모놀리식 커널(Monolithic kernel), 디바이스 드라이버 등이 커널과 완전히 분리된 프로세스로 존재하면 마이크로커널(Micro-kenel)이라고 한다. 극단적으로는 프로세스, 메모리 영역, 파일 데이터 등을 전부 공유 가능한 객체로 보고 자원 관리 기능만 남긴 엑소커널(Exo-kernel) 같은 괴상한 분류도 있으나, 실험적인 부류의 커널이라 대중적으로 쓰이지 않는다. [[리눅스]]가 대표적인 모놀리식 커널이며, 마이크로커널은 QNX 같이 덜 유명한 조립식 구조의 운영체제에서 쓰이는 편이다. 윈도우즈와 macOS의 경우에는 일부 드라이버 정도만 분리한 혼합형 커널이다.
커널 외에 사용자와 상호작용을 하고 사람이 내린 명령을 커널로 전달하는 쉘(Shell), 장치의 제어를 담당하는 디바이스 드라이버 및 파일 관리용 파일 시스템 구현 코드 등이 있다. 이것들이 쉘 정도를 제외하고 통째로 합본 형태로 존재하면 모놀리식 커널(Monolithic kernel), 디바이스 드라이버 등이 커널과 완전히 분리된 프로세스로 존재하면 마이크로커널(Micro-kenel)이라고 한다. 극단적으로는 프로세스, 메모리 영역, 파일 데이터 등을 전부 공유 가능한 객체로 보고 자원 관리 기능만 남긴 엑소커널(Exo-kernel) 같은 괴상한 분류도 있으나, 실험적인 부류의 커널이라 대중적으로 쓰이지 않는다. [[리눅스]]가 대표적인 모놀리식 커널이며, 마이크로커널은 QNX 같이 덜 유명한 조립식 구조의 운영체제에서 쓰이는 편이다. 윈도우즈와 macOS의 경우에는 일부 디바이스 드라이버 정도만 커널에서 분리한 혼합형 커널이다.


== 종류 ==
== 종류 ==