어휘

커널이란 무엇인가

  이 페이지는 DeepL 에서 자동으로 번역되었습니다. Switch to English

커널은 운영 체제의 핵심으로, 애플리케이션과 하드웨어 사이에 존재하는 부분입니다. 컴퓨터의 자원(CPU, 메모리, 저장 장치, 주변기기)을 관리하며 소프트웨어가 이를 안전하고 일관된 방식으로 사용할 수 있도록 합니다. 충돌 없이 모든 것이 원활하게 움직이도록 하는 교통 경찰이자 통역사로 생각하면 됩니다.

Kernel_Layout.svg

커널은 실제로 무엇을 하는가?

핵심적인 수준에서 커널은:

  • 스케줄러는 작동합니다. 어떤 프로그램이 언제 CPU 시간을 할당받을지 결정합니다.
  • 메모리를 관리합니다. 각 앱의 데이터를 분리하여 보관하고 필요에 따라 RAM을 할당합니다.
  • 장치 및 파일을 처리합니다. GPU, SSD, 네트워크 카드 및 파일 시스템용 드라이버와 통신합니다.
  • I/O를 중재합니다. 앱을 대신하여 파일 및 네트워크 데이터를 읽고 씁니다.
  • 안전성을 보장합니다. 사용자 모드 (앱)와 커널 모드 (OS 핵심)를 분리하여 버그가 있는 앱이 전체 시스템을 다운시키지 못하도록 합니다.
image-406

커널이 운영 체제와 같은 것인가요?

그렇지는 않습니다. "운영 체제"는 일반적으로 커널과 사용자 공간 도구 및 서비스(셸, 라이브러리, 데스크톱 환경, 백그라운드 서비스 등)를 포함합니다. 일상 대화에서는 사람들이 이 용어들을 혼용하지만, 엄밀히 말하면 커널은 그저 다른 모든 것이 의존하는 특권적인 핵심 부분일 뿐입니다.

앱은 어떻게 커널과 "소통"하나요?

앱이 파일을 저장하거나 네트워크 패킷을 전송해야 할 때, 시스템 호출을 수행합니다. 이는 사용자 모드에서 커널 모드로 넘어가는 통제된 요청입니다. 커널은 권한을 확인하고 요청을 적절한 하위 시스템이나 드라이버로 전달한 후 결과를 앱에 반환합니다. 이 경계는 앱들이 서로 간에, 그리고 하드웨어의 날카로운 부분으로부터 안전하게 보호되도록 합니다.

infra-sync

커널에는 여러 종류가 있나요?

네. 몇 가지 광범위한 설계가 논의되는 것을 보게 될 것입니다:

  • 모놀리식 커널은 핵심 서비스와 다수의 드라이버를 함께 묶습니다. (예: 리눅스 커널)
  • 마이크로커널은 핵심을 작게 유지하고 더 많은 서비스를 커널 외부로 밀어내어 격리합니다.
  • 하이브리드 또는 모듈식 접근법은 실용적인 시스템의 아이디어를 혼합하며, 성능이나 안전성을 위해 구성 요소를 커널 경계 안팎으로 이동시키는 경우가 많다.

이 모든 것은 동일한 목표를 지향합니다: 하드웨어에 대한 안정적이고 신속한 제어입니다. (예를 들어 애플의 XNU는 Mach 마이크로커널과 BSD 레이어를 결합하며, 윈도우는 계층적 커널 아키텍처를 문서화합니다.)

내가 직접 "커널"을 업데이트한 적이 있나요?

사용 중인 플랫폼에 따라 다릅니다:

  • Windows/macOS: 커널 업데이트는 일반적인 OS 업데이트의 일부로 제공됩니다.
  • 리눅스 및 다수의 서버/장치: 커널은 배포판이나 공급업체를 통해 업데이트할 수 있는 별도의 패키지입니다. 장기 지원(LTS) 커널은 안정성을 위해 새로운 기능을 희생합니다.

업데이트는 하드웨어 지원, 성능 조정 및 보안 수정 사항을 제공하지만, 운영 환경에서는 일반적으로 먼저 테스트를 수행합니다.

부팅 중에 무슨 일이 일어나는가?

매우 간략한 버전: 펌웨어/UEFI가 먼저 실행되며, 부트로더가 커널을 메모리에 로드합니다. 커널은 하드웨어와 드라이버를 초기화하고 저장 장치를 마운트한 후, 나머지 시스템을 가동하는 첫 번째 사용자 공간 프로세스를 실행합니다. 이후 커널은 지속적으로 작업을 스케줄링하고 백그라운드에서 I/O를 처리합니다.

내 휴대폰에 커널이 있나요?

물론입니다. 안드로이드 폰, 게임 콘솔, 라우터, 스마트 TV 대부분은 내부적으로 커널을 기반으로 한 OS의 일종을 실행합니다. 이 개념은 데스크톱과 노트북에만 국한된 것이 아닙니다.

android kernel

왜 시스템 충돌을 "커널 패닉"(또는 "블루 스크린")이라고 부를까요?

커널 내부에서 문제가 발생하면(예: 중대한 드라이버 오류), 운영체제는 데이터 손상 위험을 감수하기보다 종종 작동을 중단합니다. 유닉스 계열 시스템은 커널 패닉을 보고하며, 윈도우는 스톱 에러(일명 "블루 스크린")를 표시합니다. 극적인 모습이지만, 이는 파일을 보호하기 위한 최후의 안전 장치입니다.

간단한 요약

  • 커널은 CPU, 메모리, 장치 및 입출력을 관리하는 운영 체제의 특권 핵심 부분입니다.
  • 앱은 사용자 모드/커널 모드 경계를 가로지르는 시스템 호출을 통해 이와 상호작용합니다.
  • 다양한 커널 설계 (모놀리식, 마이크로커널, 하이브리드)는 성능, 격리성, 유지보수성 사이의 균형을 맞춘다.

관련 용어

  • 사용자 공간 / 커널 공간: 일반 애플리케이션과 커널이 각각 실행되는 영역.
  • 시스템 호출(syscall): 애플리케이션에서 커널 서비스로의 통제된 진입점.
  • 드라이버: 특정 장치를 작동하는 방법을 알고 있는 커널 또는 사용자 공간 구성 요소.
  • 스케줄러: 다음에 실행할 스레드를 결정하는 커널 구성 요소.
  • 가상 메모리: 각 프로세스에 고유한 주소 공간을 제공하는 커널 기능.
  • 부트 로더: 시스템 시작 시 커널을 메모리에 로드하는 프로그램.
  • 커널 패닉 / 중지 오류: 시스템 손상을 방지하기 위해 시스템을 중단시키는 치명적인 커널 모드 오류.

관련 콘텐츠