1. 커널 (Kernel)
※ 여러 분야에서, 핵심/근원을 이루는 부분을 가리킬 때 쓰이는 용어로써, 널리 사용됨
ㅇ [일반]
- 사상,주제의 핵심, 속씨/씨알 등
ㅇ [수학]
- 커널은, 동차 선형 연립방정식(A x = 0)의 해 집합 (때론,해 공간 라고도 함)
. 즉, 선형변환 T:V→W 에서 0으로 사상하는 V의 벡터 집합을 변환 T의 핵(Kernel)이라 함
ㅇ [운영체제]
- 커널은, 운영체제의 가장 핵심적인 역할을 하는 부분
. CPU,메모리,프로세스,파일시스템,입출력 등 주요 자원을 관리
. 최초 기동시(부팅) 메모리에 로드 됨
. 항상 메모리 안에 거주하며, 하드웨어 및 실행중인 프로그램을 관리하는 소프트웨어
- 또한, 시스템 보호를 위해 영역 분리하여 관리
. 커널 공간은, 커널 만이 접근할 수 있는 메모리 및 하드웨어 모든 영역
. 사용자 공간은, 메모리 일부,안전한 CPU 작업 일부,하드웨어 일부 등 제한적임
2. [운영체제] 커널
ㅇ 커널은, 메모리에 항상 존재하며, 모든 프로세스가 사용할 수 있는 핵심 루틴들의 집합
ㅇ 주요 기능
- 모든 프로세스의 상위에 존재하며, 이들을 보호,제어 함
. 실행중인 모든 프로세스에 대한 정보를 갖는 데이터구조를 유지관리
. 프로세스의 생성,변경,종료 때마다 정보 갱신
- 제한된 메모리의 효율적 관리
. 가상 메모리 관리
- 스케쥴링 (Scheduling)
. 각종 실행중인 프로세스 또는 CPU 순서배정
- 인터럽트 요청의 처리
. Interrupt Handler
- 파일시스템의 제어 관리
. 화일의 생성,검색,갱신,삭제 등
- 네트워킹
. 패킷의 송수신, 경로 설정 등
- 주변장치와 해당 프로그램의 입출력 처리
. 디바이스 드라이버를 통해 장치 관리
- 시스템 콜 제공
ㅇ 주요 커널 이미지명
- 초기 유닉스 버젼 : unix
- BSD 기반의 유닉스 : 가상메모리 구현 버젼 vmunix
- 리눅스 : vmlinuz (/boot/vmlinuz)
- MS사의 NT/2000/XP 등 : ntoskrnl.exe