커널은 운영 체제의 핵심으로, 애플리케이션과 하드웨어 사이에 존재하는 부분입니다. 컴퓨터의 자원(CPU, 메모리, 저장 장치, 주변기기)을 관리하며 소프트웨어가 이를 안전하고 일관된 방식으로 사용할 수 있도록 합니다. 충돌 없이 모든 것이 원활하게 움직이도록 하는 교통 경찰이자 통역사로 생각하면 됩니다.
핵심적인 수준에서 커널은:
그렇지는 않습니다. "운영 체제"는 일반적으로 커널과 사용자 공간 도구 및 서비스(셸, 라이브러리, 데스크톱 환경, 백그라운드 서비스 등)를 포함합니다. 일상 대화에서는 사람들이 이 용어들을 혼용하지만, 엄밀히 말하면 커널은 그저 다른 모든 것이 의존하는 특권적인 핵심 부분일 뿐입니다.
앱이 파일을 저장하거나 네트워크 패킷을 전송해야 할 때, 시스템 호출을 수행합니다. 이는 사용자 모드에서 커널 모드로 넘어가는 통제된 요청입니다. 커널은 권한을 확인하고 요청을 적절한 하위 시스템이나 드라이버로 전달한 후 결과를 앱에 반환합니다. 이 경계는 앱들이 서로 간에, 그리고 하드웨어의 날카로운 부분으로부터 안전하게 보호되도록 합니다.
네. 몇 가지 광범위한 설계가 논의되는 것을 보게 될 것입니다:
이 모든 것은 동일한 목표를 지향합니다: 하드웨어에 대한 안정적이고 신속한 제어입니다. (예를 들어 애플의 XNU는 Mach 마이크로커널과 BSD 레이어를 결합하며, 윈도우는 계층적 커널 아키텍처를 문서화합니다.)
사용 중인 플랫폼에 따라 다릅니다:
업데이트는 하드웨어 지원, 성능 조정 및 보안 수정 사항을 제공하지만, 운영 환경에서는 일반적으로 먼저 테스트를 수행합니다.
매우 간략한 버전: 펌웨어/UEFI가 먼저 실행되며, 부트로더가 커널을 메모리에 로드합니다. 커널은 하드웨어와 드라이버를 초기화하고 저장 장치를 마운트한 후, 나머지 시스템을 가동하는 첫 번째 사용자 공간 프로세스를 실행합니다. 이후 커널은 지속적으로 작업을 스케줄링하고 백그라운드에서 I/O를 처리합니다.
물론입니다. 안드로이드 폰, 게임 콘솔, 라우터, 스마트 TV 대부분은 내부적으로 커널을 기반으로 한 OS의 일종을 실행합니다. 이 개념은 데스크톱과 노트북에만 국한된 것이 아닙니다.
커널 내부에서 문제가 발생하면(예: 중대한 드라이버 오류), 운영체제는 데이터 손상 위험을 감수하기보다 종종 작동을 중단합니다. 유닉스 계열 시스템은 커널 패닉을 보고하며, 윈도우는 스톱 에러(일명 "블루 스크린")를 표시합니다. 극적인 모습이지만, 이는 파일을 보호하기 위한 최후의 안전 장치입니다.