커널이란 무엇이고, 어떤 처리를 할까?
스터디 Stacked-Book에서 실습과 그림으로 배우는 리눅스 구조 책을 참고하여 학습 후 정리한 글입니다.
커널이란 무엇이고, 어떤 처리를 할까?
커널이란?
- 메모리에 상주하며 CPU에 명령을 내리는 소프트웨어이다.
- 운영체제의 핵심부분으로 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
- 일관성 있는 인터페이스를 하드웨어에 제공하기위해 하드웨어 추상화가 구현되어 있다.
커널 로드 과정
- 컴퓨터를 켜면 부트스트랩 프로그램이라는 초기화 프로그램이 실행된다.
- 이 프로그램은 컴퓨터의 ROM이나 EEPROM에 저장되어 있으며 Firmware라고 불린다.
- 부트스트랩 프로그램은 시스템을 초기화하고 부트로더를 실행시키는데 부트로더는 최종적으로 운영체제를 실행한다.
- 운영체제는 컴퓨터의 하드웨어를 관리하고, 하드웨어와 소프트웨어, 사용자를 매개하는 프로그램이며 커널과 커널 모듈들로 구성이 되어있다.
- 운영체제를 실행하므로써 커널이 로드, 실행된다.
커널의 기능
- 메모리 관리 : 메모리가 어디에서 무엇을 저장하는 데 얼마나 사용되는지를 추적한다.
- 프로세스 관리 : 어느 프로세스가 중앙 처리 장치(CPU)를 언제 얼마나 오랫동안 사용할지를 결정한다
- 장치 드라이버 : 하드웨어와 프로세스 사이에서 중재자/인터프리터의 역할을 수행한다.
- 시스템 호출 및 보안 : 프로세스의 서비스 요청을 수신한다.
커널의 종류
- 커널은 다양한 형태와 아키텍처로 개발될 수 있으며, 주요 커널 유형은 다음과 같다.
단일 모노리틱 커널 (Monolithic Kernel)
- 운영체제의 핵심 기능과 드라이버, 시스템 호출 인터페이스, 파일 시스템 등을 모두 하나의 커널 모듈로 구성한다.
- 커널의 크기가 상대적으로 크고 복잡할 수 있지만, 커널 내의 모든 기능에 쉽게 액세스할 수 있으며 효율적인 통신과 빠른 성능을 제공한다.
마이크로 커널 (Microkernel)
- 커널은 최소한의 기능만을 내장하고 있으며, 다른 서비스 및 드라이버는 커널 외부에서 실행된다.
- 커널은 핵심 서비스를 제공하고 다른 서비스들은 커널이 실행 되는 동안 동적으로 구현하는 것이다.
- 이렇게 모듈화된 아키텍처는 운영체제의 안정성과 확장성을 높일 수 있으며, 시스템의 변경이나 업그레이드를 쉽게 수행할 수 있다.
하이브리드 커널 (Hybrid Kernel)
- 모노리틱 커널과 마이크로 커널의 특징을 혼합한 형태이다.
- 일부 기능을 커널 내부에 내장하면서도 다른 기능을 사용자 공간 프로세스로 분리하여 실행한다.
This post is licensed under CC BY 4.0 by the author.