OS Kernel
커널과 시스템 콜
운영체제의 핵심. CPU·메모리·디스크 같은 자원을 관리하고, 응용 프로그램이 안전하게 하드웨어를 쓰도록 중재한다.
커널(Kernel)은 운영체제의 핵심으로, 부팅 후 항상 메모리에 상주하며 하드웨어와 응용 프로그램 사이에서 자원을 중재하는 최상위 특권 소프트웨어다. CPU는 사용자 모드(user mode, ring 3)와 커널 모드(kernel mode, ring 0)라는 두 특권 수준을 하드웨어적으로 구분하며, 응용 프로그램은 파일 입출력이나 메모리 할당처럼 특권이 필요한 작업을 직접 수행할 수 없고 반드시 시스템 콜(system call)을 통해 커널에 요청해야 한다. 시스템 콜은 소프트웨어 인터럽트(trap)나 x86의 SYSCALL/SYSENTER 같은 전용 명령으로 모드 전환(mode switch)을 일으키며, 커널은 시스템 콜 번호를 시스템 콜 테이블에서 조회해 해당 핸들러로 디스패치한 뒤 권한을 검사하고 서비스를 수행한다. 커널은 프로세스 스케줄링, 가상 메모리 관리, 파일 시스템, 장치 드라이버, IPC, 인터럽트 처리 등 여러 서브시스템으로 구성되며, 이 서브시스템들을 어떤 주소 공간에 배치하느냐에 따라 모놀리식(monolithic)과 마이크로커널(microkernel)로 나뉜다. 모놀리식 커널은 모든 서비스를 단일 커널 주소 공간에서 실행해 함수 호출 수준의 빠른 성능을 얻지만 하나의 드라이버 버그가 시스템 전체를 무너뜨릴 수 있고, 마이크로커널은 IPC·기본 스케줄링·기본 메모리 관리만 커널에 두고 드라이버·파일 시스템을 사용자 공간 프로세스로 분리해 안정성과 모듈성을 얻는 대신 메시지 전달 오버헤드를 감수한다. Linux·전통적 Unix는 모놀리식, MINIX·QNX·seL4는 마이크로커널, Windows NT·macOS(XNU)는 두 방식을 절충한 하이브리드(hybrid) 커널이다.
내부 구성
핵심 포인트
- 커널은 항상 메모리에 상주하는 최상위 특권 소프트웨어로 하드웨어 자원을 중재한다
- CPU가 사용자 모드(ring 3)와 커널 모드(ring 0)를 하드웨어로 구분해 특권 명령을 보호한다
- 응용 프로그램은 시스템 콜로만 커널 서비스에 접근하며, trap/SYSCALL 명령으로 모드 전환이 일어난다
- 시스템 콜 번호를 시스템 콜 테이블에서 조회해 핸들러로 디스패치하고 권한을 검사한다
- 모놀리식 커널: 모든 서비스가 단일 커널 주소 공간 → 빠르지만 결함 전파 위험 (Linux, Unix)
- 마이크로커널: 최소 기능만 커널에, 나머지는 사용자 공간 → 안정·모듈성, IPC 오버헤드 (QNX, seL4)
- 하이브리드 커널은 둘의 절충안 (Windows NT, macOS XNU)
심화
면접에서 자주 나오는 포인트는 '모드 전환(mode switch)'과 '컨텍스트 스위칭(context switch)'의 구분이다. 시스템 콜이 발생하면 사용자 모드→커널 모드로의 모드 전환은 일어나지만, 여전히 같은 프로세스이므로 반드시 컨텍스트 스위칭이 일어나는 것은 아니다. 반대로 스케줄러가 다른 프로세스를 선택하면 페이지 테이블(주소 공간) 교체를 동반하는 훨씬 비싼 컨텍스트 스위칭이 발생한다 — 고전적으로는 TLB 플러시까지 수반하지만, 태그드 TLB(x86의 PCID, ARM의 ASID)를 쓰는 현대 CPU는 주소공간 ID로 엔트리를 구분해 전체 플러시를 상당 부분 회피한다. 또한 인터럽트(하드웨어가 비동기로 발생)와 트랩/예외(소프트웨어 실행 중 동기적으로 발생, 시스템 콜과 0으로 나누기 등)를 혼동하지 않아야 한다. 또 하나 깊은 논점은 마이크로커널의 성능 논쟁이다. 1980~90년대 초기 마이크로커널(Mach)은 IPC 비용 때문에 느리다는 비판을 받았고, 이것이 Torvalds vs Tanenbaum 논쟁의 배경이 되었다. 그러나 seL4처럼 IPC를 극한으로 최적화하고 수학적으로 정확성을 검증(formal verification)한 3세대 마이크로커널이 등장하며 항공·자율주행 등 고신뢰 분야에서 부활했다. 실무적으로 순수 이론대로 구현된 OS는 드물며, Linux는 모놀리식이지만 로더블 커널 모듈(LKM)로 확장성을 확보했고 Windows NT·macOS는 하이브리드로 두 진영의 장점을 취한다는 점을 이해하는 것이 중요하다.
쉽게 말하면 관리사무소(커널)에 요청서(시스템 콜)를 내야 전기·수도를 쓸 수 있는 것.