Allen's 데이터 맛집

커널(Kernel)이란 ? 본문

Programming/Docker

커널(Kernel)이란 ?

Allen93 2023. 8. 15. 19:16

이전 포스팅에서 도커에 대해 알아보았으니 이번엔 커널에 대해 알아보겠습니다

 

커널(Kernel)이란?

 

아래 이미지는 일반적인 커널의 형태입니다. 맨 위의 Applications이 응용 프로그램이고 그 밑에 존재하는 것이 커널입니다. 커널 밑에 각종 하드웨어(CPU, Memory, Devices)들이 있는 것을 알 수 있습니다

이 처럼 커널은 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하여 응용 프로그램이 하드웨어에서부터 오는 자원을 관리하고 사용할 수 있게 해 줍니다.

 

kernerl map

 

 

커널의 기능

 

[커널의 주요 기능은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 것입니다.]

커널은 운영 체제의 핵심 부분이므로, 커널의 역할 역시 운영 체제의 핵심 역할이라 할 수 있습니다.

구체적으로 말하면, 커널이란 운영체제(OS)에서 가장 중요한 구성요소로서, 입출력을 관리하고 소프트웨어로부터 요청 (System Call)을 컴퓨터에 있는 하드웨어(CPU, 메모리, 저장장치, 모니터)가 처리할 수 있도록 요청(System Call)을 변환하는 역할을 합니다.

(User는 Shell을 이용하여 Kernel을 통해 하드웨어를 사용할 수 있다.)

 

CPU

  • 쉽게 생각하면 커널은 CPU를 제어하는 S/W입니다.
  • 컴퓨터 시스템의 중앙 부품들은 프로그램을 작동시키거나 실행시키는 역할을 담당합니다.
  • 커널은 많은 프로그램들 중 어느 것이 프로세서에 할당되어야 하는지 결정할 책임이 있습니다.(아마도 스케쥴링에 관한 설명 같습니다.)