Allen's 데이터 맛집
커널(Kernel)이란 ? 본문
이전 포스팅에서 도커에 대해 알아보았으니 이번엔 커널에 대해 알아보겠습니다
커널(Kernel)이란?
아래 이미지는 일반적인 커널의 형태입니다. 맨 위의 Applications이 응용 프로그램이고 그 밑에 존재하는 것이 커널입니다. 커널 밑에 각종 하드웨어(CPU, Memory, Devices)들이 있는 것을 알 수 있습니다
이 처럼 커널은 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하여 응용 프로그램이 하드웨어에서부터 오는 자원을 관리하고 사용할 수 있게 해 줍니다.
커널의 기능
[커널의 주요 기능은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 것입니다.]
커널은 운영 체제의 핵심 부분이므로, 커널의 역할 역시 운영 체제의 핵심 역할이라 할 수 있습니다.
구체적으로 말하면, 커널이란 운영체제(OS)에서 가장 중요한 구성요소로서, 입출력을 관리하고 소프트웨어로부터 요청 (System Call)을 컴퓨터에 있는 하드웨어(CPU, 메모리, 저장장치, 모니터)가 처리할 수 있도록 요청(System Call)을 변환하는 역할을 합니다.
(User는 Shell을 이용하여 Kernel을 통해 하드웨어를 사용할 수 있다.)
CPU
- 쉽게 생각하면 커널은 CPU를 제어하는 S/W입니다.
- 컴퓨터 시스템의 중앙 부품들은 프로그램을 작동시키거나 실행시키는 역할을 담당합니다.
- 커널은 많은 프로그램들 중 어느 것이 프로세서에 할당되어야 하는지 결정할 책임이 있습니다.(아마도 스케쥴링에 관한 설명 같습니다.)