1.1.4 커널과 시스템 콜 중요도 ★★★
커널(kernel)은 OS의 핵심 요소로, 컴퓨터 하드웨어와 프로세스의 보안, 자원 관리, 하드웨어 추상화 같은 중요한 역할을 수행한다. 특히 자원 관리를 위해 CPU 스케줄링, 메모리 관리, 입출력 관리, 파일 시스템 관리 등을 담당한다.
▲ 그림 1-3 커널의 위치
운영체제는 커널에서 관리하는 중요 자원에 사용자가 쉽게 접근하지 못하도록 커널 모드(kernel mode)와 사용자 모드(user mode)로 모드를 나눈다. 커널 모드에서는 하드웨어에 직접 접근해 메모리, CPU와 같은 자원을 사용할 수 있다. 사용자 모드에서는 커널 모드의 자원에 접근할 수 없게 제한을 둔다.
사용자 모드에서 실행된 프로세스가 자원에 접근하려면 시스템 콜을 호출해 커널에 요청해야 한다. 여기서 시스템 콜(system call)은 사용자 모드에서 커널 모드에 접근해 필요한 기능을 수행할 수 있게 하는 시스템 함수다. 커널은 시스템 콜로 받은 요청을 처리한 후 다시 시스템 콜로 결과 값을 반환한다.