Home Linux AWS Cloud Docker Python AI
클릭하여 터미널 활성화

리눅스 커널(Linux Kernel)이란? 구조와 핵심 기능 완전 정리

// Linux · Kernel · 리눅스커널 · OS · 하드웨어 · 운영체제
리눅스를 제대로 쓰려면 커널을 알아야 한다 — 구조부터 핵심 기능까지 한 번에 정리

리눅스를 쓴다면 커널을 알아야 한다

리눅스를 처음 배울 때 커널이라는 단어는 자주 등장하지만 실제로 어떤 역할을 하는지 설명하기 어렵다. 그냥 "OS의 핵심"이라고 외워두기엔 너무 추상적이다.

이 글에서는 Linux 커널이 무엇인지, 시스템 안에서 어떤 일을 하는지, 핵심 기능은 무엇인지를 처음 보는 사람도 이해할 수 있도록 정리한다.

1. 리눅스 커널(Linux Kernel)이란?

커널(Kernel)은 운영체제의 핵심 구성 요소다. 하드웨어와 소프트웨어 사이에서 다리 역할을 하며, 시스템 리소스를 관리하고 다른 소프트웨어에 필수 서비스를 제공한다.

💡
한 줄 정의
커널은 하드웨어와 소프트웨어 계층 사이의 다리 역할을 하며, 필수 서비스와 리소스 관리를 제공하고 시스템의 각 부분 간 통신을 담당한다.
Linux 시스템 계층 구조
사용자 애플리케이션 (User Space)
Linux Kernel (커널 공간)
Hardware (CPU · RAM · Disk · Network)

Linux 시스템이 부팅될 때 커널은 가장 먼저 실행되는 프로그램이다. 하드웨어를 초기화하고, 필수 시스템 구성 요소를 설정한 뒤, 나머지 서비스들이 동작할 수 있는 환경을 만든다.

2. Linux 커널의 핵심 기능

01 하드웨어 상호 작용

커널은 CPU, 메모리, 저장 장치, 네트워크 인터페이스 등 모든 하드웨어와 직접 통신한다. 응용 프로그램은 하드웨어를 직접 다루지 않고, 커널을 통해서만 접근한다. 하드웨어 상호 작용은 크게 6가지로 나뉜다.

분류 설명
장치 드라이버 OS가 하드웨어 장치와 통신할 수 있게 해주는 소프트웨어 모듈. 중개자 역할을 한다.
하드웨어 추상화 상위 소프트웨어에서 하드웨어 세부 정보를 숨기는 추상화 계층. 앱이 하드웨어 종류에 상관없이 일관되게 동작할 수 있도록 한다.
인터럽트 처리 하드웨어 장치가 보내는 인터럽트 신호를 받아 적절한 핸들러를 실행. 네트워크 패킷 수신, 디스크 I/O 완료, 키보드 입력 등에 즉시 반응한다.
I/O 작업 디스크 읽기/쓰기, 네트워크 패킷 송수신, 주변 장치 통신 등 모든 입출력을 API로 제공한다.
전원 관리 CPU 주파수 스케일링, 시스템 절전 상태, 장치 전원 제어 등을 통해 에너지 소비를 최적화한다.
버스 통신 PCI, USB, SATA 등 다양한 버스를 통해 연결된 장치를 식별하고 데이터 흐름을 관리한다.
02 프로세스 관리

커널은 실행 중인 프로세스들을 관리한다. 어떤 프로세스가 언제 CPU를 사용할지 스케줄링하고, 메모리와 장치 접근 권한을 부여한다. 프로세스 간 통신(IPC)도 커널이 중재한다.

스케줄링여러 프로세스가 CPU를 공평하게 나눠 쓸 수 있도록 실행 순서를 결정
리소스 할당각 프로세스에 CPU 시간, 메모리, 장치 접근 권한을 분배
IPC프로세스 간 데이터 공유와 통신을 안전하게 중재
03 메모리 관리

커널은 시스템 메모리를 각 프로세스에 할당하고 관리한다. 물리 메모리가 부족하면 디스크를 메모리처럼 활용하는 스왑(Swap)을 이용해 더 많은 프로세스가 동작할 수 있게 한다.

가상 메모리각 프로세스에 독립된 메모리 공간을 제공. 서로 간섭하지 않는다.
메모리 페이징메모리를 일정 크기(페이지) 단위로 나눠 효율적으로 관리
메모리 스와핑물리 메모리 부족 시 디스크 공간을 임시 메모리로 활용
💡
서버에서 swap이 중요한 이유
메모리가 가득 차면 커널은 OOM Killer를 실행해 프로세스를 강제 종료한다. 스왑 공간을 적절히 설정해두면 메모리 부족 상황에서 시스템이 좀 더 안정적으로 버틸 수 있다. LVM으로 스왑 파티션을 나중에 늘리는 것도 가능하다.
04 파일시스템 지원

커널은 다양한 파일시스템을 지원해서 저장 장치에서 파일을 읽고 쓸 수 있게 한다. 파일 권한, 디렉터리 구조, 시스템 호출을 통한 파일 접근을 모두 커널이 처리한다.

지원 파일시스템 예시
리눅스 계열ext4, xfs, btrfs, f2fs
네트워크 FSNFS, CIFS/SMB, SSHFS
윈도우 호환FAT32, NTFS, exFAT
가상 FSproc, sysfs, tmpfs (메모리 기반)
05 시스템 호출 (System Call)

사용자 공간의 애플리케이션이 커널 기능을 요청하는 인터페이스다. 파일 읽기, 프로세스 생성, 네트워크 통신 등 모든 하드웨어 관련 작업은 시스템 호출을 통해 커널에 위임된다.

💡
왜 시스템 호출이 필요한가?
애플리케이션이 하드웨어에 직접 접근하면 다른 프로세스의 메모리를 침범하거나 시스템이 불안정해질 수 있다. 시스템 호출은 커널이 검증한 경로만 허용해서 보안과 안정성을 보장한다. strace 명령어로 프로세스가 어떤 시스템 호출을 사용하는지 추적할 수 있다.
06 네트워킹

커널은 TCP/IP, UDP, IPv4/IPv6 등 다양한 네트워크 프로토콜을 내장한 네트워킹 스택을 포함한다. 네트워크 연결, 라우팅, 패킷 필터링(netfilter/iptables)까지 전부 커널이 처리한다.

프로토콜 스택TCP/IP, UDP, ICMP, IPv4/IPv6 등
소켓애플리케이션이 네트워크 통신을 할 수 있는 인터페이스 제공
netfilter패킷 필터링 프레임워크, iptables/nftables의 기반
07 보안

커널은 시스템 보안의 핵심 게이트키퍼다. 사용자 권한을 관리하고, 접근 제어 정책을 시행하며, 안전한 통신을 위한 메커니즘을 제공한다.

DAC임의적 접근 제어. 파일 소유자가 권한(chmod, chown)을 설정
SELinux/AppArmor강제적 접근 제어(MAC). 정책 기반으로 프로세스 권한을 제한
Namespace프로세스 격리. Docker 컨테이너 기술의 기반
cgroups프로세스별 리소스(CPU, 메모리) 사용량 제한
08 커널 개발 — 오픈소스 프로젝트

Linux 커널은 전 세계 수천 명의 개발자가 참여하는 오픈소스 프로젝트다. 1991년 Linus Torvalds가 처음 공개한 이후 지금까지 이어지고 있다.

🌐
소스 코드는 kernel.org에서 누구나 받아볼 수 있다. GPL v2 라이선스로 배포되며, 누구든 코드를 읽고 수정하고 개선 사항을 기여할 수 있다. Intel, Google, Red Hat 등 주요 기업들도 커널 개발에 적극 참여하고 있다.

3. 정리 — 커널이 하는 일 한눈에

기능 한 줄 요약
하드웨어 상호 작용 드라이버·추상화·인터럽트·I/O·전원·버스 통신 전담
프로세스 관리 CPU 스케줄링, 리소스 할당, 프로세스 간 통신 중재
메모리 관리 가상 메모리, 페이징, 스와핑으로 메모리 효율 최적화
파일시스템 ext4/xfs 등 다양한 파일시스템 지원, 파일 권한 관리
시스템 호출 앱과 커널 사이의 안전한 인터페이스 (read, write, fork 등)
네트워킹 TCP/IP 스택, 소켓, 패킷 필터링(iptables) 내장
보안 접근 제어(DAC/MAC), Namespace, cgroups 기반 격리
// 정리
커널은 단순히 "OS의 핵심"이 아니다.
하드웨어와 소프트웨어 사이의 모든 것을 관장하는 중재자다.
다음 글에서는 커널 버전 확인 방법과 커널 업데이트 방법을 다룰 예정입니다.
Tags: #Linux #Kernel #LinuxKernel #BasicLinux #운영체제 #HW #리눅스입문