본문 바로가기
Linux/CentOS 07

[CentOS 7] 커널(Kernel) 이란?

by AFD 2021. 2. 16.

커널(Kernel) 이란?


리눅스에서 커널(Kernel)은 사람의 심장 또는 자동차의 엔진과도 같은 중요한 부위 입니다.

하드웨어와 소프트웨어를 연결해 주는 다리 역할을 하며, 프로그램을 실행 하면 쉘(shell)이 이를 기계어로 번역 합니다. 커널은 기계어로 번역된 명령을 인식하여 하드웨어를 알맞게 동작하는 역할을 수행 합니다.

쉽게 말해 보편적으로 우리가 아는 운영체제(os)의 역할을 하는것이 커널 입니다.

 

커널과 시스템의 연결 관계

커널은 이처럼 리눅스 시스템의 핵심 컴포넌트 입니다. 커널 외에도 리눅스 시스템의 핵심 컴포넌트는 크게 3가지로 분류 할 수 있습니다. 간단하게 설명하면 아래와 같습니다.

 

리눅스(유닉스) 시스템의 핵심 컴포넌트 3가지

 

구분 설명
커널(Kernel) 1)의미
 - 메인 메모리에 상주하여 컴퓨터 자원을 관리한다.
 - 하드웨어 특성으로 부터 프로그램들을 격리 시키고, 하드웨어와 직접 상호작용을 함으로써 프로그램들에게 일관된 서비스를 제공한다.

2)기능
 - 시스템 내의 메모리 관리, 입/출력 관리, 프로세스 및 파일 관리, 시스템 호출(call) 인터페이스 등
 - 유틸리티 또는 응용 프로그램들은 정의된 시스템 콜을 통해 커널과 통신한다.
 - 하드웨어 커널은 리눅스 계열의 시스템이 부팅 될 때 가장 먼저 읽혀지는 운영체제의 핵심부분으로 주 기적 장치에 상주하여 프로세스 스케쥴링, 기억장치 관리, 파일 시스템 관리, 운영체제의 고유 기능을 제공한다.
쉘(Shell) - 커널과 직접적으로 연결되어 있으며, kernel과 사용자 간의 인터페이스를 담당한다.
- 사용자 명령의 입출력을 수행, 프로그램을 실행 시킨다.
- 쉘은 커널과 같이 주기억 장치에 상주하는 것이 아닌 보조기억장치에서 교체 될 수 있다.
파일 시스템
(File system)
- 디렉토리, 서브디렉토리, 파일 등 계층적인 트리 구조를 제공한다.