리눅스 커널 정리 /with MINZKN
Linux 커널 개발자를 위한 종합 한글 레퍼런스
의견, 개선 제안, 오류 제보는 페이지 하단의 댓글을 이용해 주세요.
🔎 Calltrace 분석기 — 커널 dump를 붙여넣으면 Oops · Panic · Soft/Hard Lockup · NMI · WARN을 즉시 분석합니다.
리눅스 커널을 시작한다면
이 사이트는 리눅스 커널의 내부 구조와 동작 원리를 한국어로 정리한 기술 문서 모음입니다. 커널이 무엇이고 어떻게 구성되어 있는지 먼저 확인한 다음, 지금 필요한 길로 골라 들어가세요.
리눅스 커널이란?
- 커널은 하드웨어와 소프트웨어 사이의 중재자입니다. 프로그램이 하드웨어를 쓰려면 커널을 거쳐야 하며, 프로세스 관리 · 메모리 할당 · 디바이스 제어를 담당합니다.
- 리눅스 커널은 어플리케이션이 하드웨어에 직접 접근하지 못하도록 사용자 모드(user mode)와 특권 모드(Ring 0)를 분리합니다.
- 커널은 모놀리식(monolithic) 구조이지만, 기능별로 나눈 모듈(module)로 언제든 붙였다 떼며 확장합니다.
- 전 세계 수천 명의 개발자가 참여하는 오픈소스 프로젝트이며, C 언어와 일부 어셈블리로 작성됩니다.
- 서버, 데스크탑, 모바일(Android), 임베디드, 슈퍼컴퓨터까지 거의 모든 플랫폼에서 동작합니다.
본문에서 처음 나오는 기술 용어는 용어 요약에서 한 번에 확인할 수 있습니다.
커널 전체 구조
Linux 커널 종합 아키텍처 맵 — 사용자 공간부터 하드웨어까지, 대표 분류 축을 보여주는 한글 문서 지도
어디서부터 시작할까
처음 커널을 시작합니다
환경 준비부터 첫 모듈까지 — 여기만 따라가도 됩니다
- 개발 환경 설정 — 배포판 준비, 커널 소스 내려받기, 빌드 도구 설치
- 첫 번째 모듈 만들기 — Hello World 모듈을
insmod/rmmod로 로드하고 언로드 - 커널 아키텍처 — 사용자 공간부터 하드웨어까지 계층 구조를 먼저 파악
- 커널 개발 주의사항 — 처음 만나는 실수 모음 (한 번은 읽어 두세요)
여기까지가 최소 경로입니다. 그다음 주제는 아래 목표별 추천에서 골라서 이어서 읽으세요.
이미 커널을 다루고 있다면
알던 내용을 찾거나, 이미 있는 문제를 좁혀 갑니다
찾아가는 방법
- 상단 검색창에
slab,spinlock,ftrace처럼 핵심 키워드를 입력하면 제목·설명·태그를 함께 검색합니다 - 왼쪽 사이드바에서 전체 카테고리를 펼치거나 접으며 이동할 수 있습니다
- 전체 문서 목록에서 카테고리별로 펼치거나 키워드로 걸러 보세요
이미 좁혀 둔 문제라면
- 패닉·크래시 로그 → 크래시 분석, Calltrace 분석기
- Oops · WARN · 락업 → 디버깅 & 트러블슈팅
- 느려지는 성능 → 아래 성능 측정과 최적화에서 도구를 고르세요
무엇을 다룰지 먼저 고르세요
위 최소 경로를 마쳤다면, 지금 필요한 주제 하나만 골라서 이어서 읽으면 됩니다. 각 항목은 그 주제를 처음 접할 때 읽는 순서대로 나열했습니다.
- 커널 모듈 만들기 커널 모듈 · 첫 번째 모듈 만들기 · 문자 디바이스
- 빌드와 커널 설정 빌드 시스템 · GNU Make · 크로스 컴파일
- 서브시스템 동작 원리 프로세스 관리 · 메모리 관리 · 가상 파일시스템(VFS)
- 디바이스 드라이버 개발 디바이스 드라이버 · 플랫폼 드라이버 · 이더넷 PHY 드라이버 개발
- 동작 추적과 관측 ftrace / Tracepoints · eBPF 프레임워크 · XDP · LTTng
- 성능 측정과 최적화 perf 서브시스템 · 성능 최적화 · RTLA / timerlat · Intel PCM
- 부팅 과정과 임베디드 부팅 과정 · Device Tree · 임베디드 빌드 시스템 · UEFI
- 플랫폼 보안과 무결성 커널 보안 · LSM / Seccomp · 커널 하드닝 · 기밀 컴퓨팅
- 컨테이너와 가상화 Linux Containers & Docker · cgroups · 네임스페이스 · 가상화(KVM)
- 용어와 배경 지식 용어 요약 · 커널 역사 · 참고자료
이 사이트 이용 방법
- 문서 안의 각 장은 우측 목차로 빠르게 점프하고, 사이드바의 온라인 도구에서 브라우저 도구를 바로 쓸 수 있습니다.
- 상단 A 버튼으로 본문 서체를 Sans-serif · Serif 중에서 골라 쓰고, 다크 · 라이트 · 솔라라이즈 · 노르드 · 고대비 중 원하는 테마를 선택하세요. 선택한 설정은 브라우저에 기억됩니다.
전체 문서 목록
카테고리별로 걸친 모든 기술 문서와 도구입니다. 카테고리 이름을 눌러 해당 영역만 펼쳐 보거나, 아래 입력창에 키워드를 넣어 필요한 문서만 골라 보세요.
어디서 시작할지 모르겠으면 위의 시작하기를 먼저 보세요.
조건에 맞는 문서가 없습니다. 다른 키워드로 검색하거나, 위 검색창(상단)에서 제목을 찾아 보세요.
개발 환경 & 설정
커널 개발 실무
개발 도구 & 워크플로
프로그래밍 언어 & 툴체인
시스템 구성 & 배포
아키텍처 & 플랫폼
부팅 & 시스템 초기화
프로세스 & 실행 모델
IPC & 프로세스 간 통신
ABI & 시스템 인터페이스
스케줄링 & CPU 격리
메모리 관리
동기화 & 동시성
인터럽트 & 시간
자료구조
파일시스템
블록 스토리지 & I/O
네트워크 데이터 경로
네트워크 정책 & 트래픽 제어
가상 네트워크 & 터널링
네트워크 보안
고성능 네트워킹
디바이스 & 버스
주변장치 & 하드웨어 제어
Common Clock 프레임워크 (CCF)
clk_core, clk_hw, 클록 트리, rate 전파, assigned-clocks, prepare/enable 흐름을 다룹니다.
그래픽 & 가속기
미디어 & 오디오
디지털 논리회로 & FPGA
전원 & 열 관리
컨테이너 & 가상화
플랫폼 보안 & 무결성
LSM / Seccomp
LSM 프레임워크 내부, SELinux, AppArmor, Landlock, Seccomp-BPF, Capabilities, 보안 모듈 스택킹을 다룹니다.
암호화 & 난수
디버깅 & 레퍼런스
관측성 & 성능 분석
온라인 도구
참고
댓글 · 의견 주세요
문서 오탈자, 잘못된 설명, 더 필요한 내용, 다른 문서에 대한 제안까지 모두 환영합니다. 처음 방문자분들의 질문이 특히 도움이 되니, 읽다가 막힌 지점이 있으면 편하게 남겨 주세요.