참고자료 (References)
리눅스 커널 학습과 개발에 유용한 공식 문서, 도서, 온라인 강좌, 커뮤니티, 소스 탐색 도구, 컨퍼런스, 개발 환경을 종합 정리합니다.
공식 문서 (Official Documentation)
리눅스 커널 개발의 가장 권위 있는 1차 자료들이다. 커널 소스 트리 내 문서와 커널 커뮤니티가 직접 운영하는 사이트를 우선적으로 참조하는 것이 좋다.
kernel.org
리눅스 커널의 공식 홈페이지. 최신 안정 버전, LTS 버전, 릴리스 노트, 소스 타볼 등을 제공한다. Git 저장소(git.kernel.org)에서 전체 커널 소스 히스토리를 확인할 수 있다.
- 메인 사이트:
https://www.kernel.org/ - Git 저장소:
https://git.kernel.org/ - 릴리스 히스토리:
https://www.kernel.org/category/releases.html
커널 소스 내 문서 (Documentation/)
커널 소스 트리의 Documentation/ 디렉토리는 가장 정확하고 최신인 기술 문서를 포함한다. RST(reStructuredText) 형식으로 작성되어 make htmldocs로 HTML 빌드가 가능하다.
- 온라인 렌더링:
https://docs.kernel.org/ - 주요 하위 디렉토리:
Documentation/process/— 개발 프로세스, 코딩 스타일, 패치 제출 가이드Documentation/admin-guide/— 커널 매개변수, sysctl, 시스템 관리Documentation/driver-api/— 드라이버 개발 API 레퍼런스Documentation/networking/— 네트워크 서브시스템 문서Documentation/filesystems/— 파일시스템별 설계 문서Documentation/mm/— 메모리 관리 서브시스템
# 커널 소스에서 HTML 문서 빌드
make htmldocs
# Documentation/output/에 HTML 생성
LWN.net
리눅스 커널 개발 뉴스와 심층 기술 기사를 제공하는 사이트. 커널 메인테이너와 개발자들이 직접 기고하며, 새로운 커널 기능의 설계 배경과 기술적 논의를 상세히 다룬다.
- Kernel index:
https://lwn.net/Kernel/Index/— 주제별 커널 기사 색인 - Weekly edition: 매주 발행되는 리눅스/오픈소스 뉴스레터
- Merge window 요약: 매 릴리스 사이클마다 merge window에 들어온 변경사항을 정리
man-pages 프로젝트
리눅스 시스템 콜, C 라이브러리 함수, 커널 인터페이스의 공식 매뉴얼 페이지. 시스템 콜의 정확한 시맨틱, 에러 코드, 주의사항을 확인할 때 필수적이다.
- 온라인:
https://man7.org/linux/man-pages/ - 섹션 2: 시스템 콜 (
man 2 read,man 2 ioctl) - 섹션 7: 개요/개념 (
man 7 namespaces,man 7 cgroups)
추천 도서 (Recommended Books)
커널 내부 구조를 체계적으로 학습하기 위한 핵심 도서들이다. 커널 버전에 따라 세부 구현이 달라질 수 있으므로, 최신 소스 코드와 함께 읽는 것을 권장한다.
Linux Kernel Development (LKD)
저자: Robert Love
추천 대상: 커널 입문~중급
커널의 주요 서브시스템(프로세스, 스케줄링, 메모리, VFS, 동기화)을 명확하게 설명한다. 커널 개발 입문서로 가장 널리 추천되며, 핵심 개념을 빠르게 파악하기에 적합하다.
Understanding the Linux Kernel (ULK)
저자: Daniel P. Bovet, Marco Cesati
추천 대상: 중급~고급
커널 내부 구현을 소스 코드 수준에서 상세히 분석한다. 메모리 관리, 프로세스 스케줄링, 파일시스템, 시그널 등을 깊이 있게 다루며, x86 아키텍처 기반으로 설명한다.
Linux Device Drivers (LDD3)
저자: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
추천 대상: 드라이버 개발자
커널 모듈과 디바이스 드라이버 개발의 표준 참고서. 3판은 온라인에서 무료로 읽을 수 있다. 커널 2.6 기준이지만 드라이버 개발의 기본 원리는 여전히 유효하다.
- 무료 온라인 버전:
https://lwn.net/Kernel/LDD3/
Professional Linux Kernel Architecture (PLKA)
저자: Wolfgang Mauerer
추천 대상: 중급~고급
프로세스 관리, 메모리 관리, VFS, 네트워킹, 모듈 등을 광범위하게 다루는 종합 참고서. 1,300페이지 이상의 방대한 분량으로 커널 내부를 깊이 파헤친다.
Linux Networking / TCP-IP 관련
- Understanding Linux Network Internals (Christian Benvenuti) — 네트워크 스택 내부 구조 분석
- Linux Kernel Networking (Rami Rosen) — 최신 커널 네트워킹 서브시스템 설명
- TCP/IP Illustrated (W. Richard Stevens) — TCP/IP 프로토콜의 고전적 참고서
기타 유용한 도서
- Linux System Programming (Robert Love) — 시스템 프로그래밍 입문
- The Linux Programming Interface (Michael Kerrisk) — 시스템 콜과 POSIX API의 백과사전
- Linux Observability with BPF (David Calavera, Lorenzo Fontana) — eBPF 기반 관측성 도구
- BPF Performance Tools (Brendan Gregg) — BPF를 활용한 성능 분석 가이드
온라인 강좌 & 튜토리얼 (Online Courses & Tutorials)
무료로 접근 가능한 양질의 온라인 학습 자료들이다.
Bootlin 교육 자료
Bootlin(구 Free Electrons)은 임베디드 리눅스와 커널 교육 전문 기업으로, 교육 자료를 무료로 공개하고 있다.
- Linux Kernel Training: 커널 내부, 드라이버 개발 슬라이드 및 실습 자료
- Embedded Linux Training: 임베디드 리눅스 시스템 구축 교육
- 사이트:
https://bootlin.com/training/
kernelnewbies.org
커널 개발 입문자를 위한 커뮤니티 사이트. 커널 빌드 방법, 첫 패치 제출 가이드, 릴리스별 변경사항 요약 등을 제공한다.
- 사이트:
https://kernelnewbies.org/ - First Kernel Patch: 첫 커널 패치 제출 단계별 가이드
- Linux Changes: 매 릴리스마다 주요 변경사항을 알기 쉽게 정리
The Linux Kernel Module Programming Guide
커널 모듈 프로그래밍을 단계별로 설명하는 무료 온라인 가이드. Hello World 모듈부터 /proc 파일, 디바이스 드라이버, 시스템 콜 후킹까지 실습 중심으로 학습할 수 있다.
- GitHub:
https://github.com/sysprog21/lkmpg
linux-insides
커널 부팅 과정, 인터럽트, 메모리 관리, 동기화 등을 소스 코드 수준에서 분석하는 오픈소스 온라인 도서.
- GitHub:
https://github.com/0xAX/linux-insides
Eudyptula Challenge (과거 자료)
단계별 커널 개발 과제를 통해 실력을 키우는 프로그램이었다. 현재는 운영되지 않지만, 과제 내용이 커널 개발 실습에 좋은 참고가 된다.
소스 코드 탐색 (Source Code Browsing)
커널 소스 코드를 효율적으로 탐색하고 참조하기 위한 도구들이다.
Bootlin Elixir Cross Referencer
웹 브라우저에서 커널 소스를 탐색할 수 있는 가장 인기 있는 도구. 심볼 정의/참조 추적, 버전별 소스 비교, 파일 검색 등을 지원한다.
- 사이트:
https://elixir.bootlin.com/linux/latest/source - 여러 커널 버전 간 소스 비교 가능
- 함수명, 구조체명, 매크로 등을 클릭하면 정의/사용처로 이동
Linux Cross Reference (LXR)
커널 소스의 크로스 레퍼런스 도구. Elixir와 유사한 기능을 제공한다.
로컬 소스 탐색 도구
대규모 커널 소스를 로컬에서 효율적으로 탐색하기 위한 도구들:
- cscope: 대화형 심볼 탐색 도구. 함수 호출 관계, 정의 위치, 사용처를 빠르게 검색한다.
- ctags: 태그 파일을 생성하여 편집기에서 심볼 정의로 바로 이동할 수 있게 한다.
- GNU Global (gtags): cscope와 ctags의 장점을 결합한 소스 코드 태깅 시스템.
- clangd / ccls: LSP 기반 C 언어 서버로, IDE에서 정의 이동, 참조 찾기, 자동 완성 등을 제공한다.
# cscope 데이터베이스 생성 (커널 소스 루트에서)
make cscope
# ctags 태그 파일 생성
make tags
# 커널 전용 compile_commands.json 생성 (clangd용)
scripts/clang-tools/gen_compile_commands.py
커널 Git 활용
커널 소스의 변경 이력을 추적하고 분석하는 데 Git은 필수 도구다.
# 특정 함수의 변경 이력 추적
git log -p -S 'function_name' -- path/to/file.c
# 특정 라인 범위의 blame (누가 언제 수정했는지)
git blame -L 100,200 kernel/sched/core.c
# 특정 커밋이 도입된 버전 태그 찾기
git describe --contains <commit-hash>
# 버그를 도입한 커밋 이진 탐색
git bisect start
git bisect bad # 현재 버전이 깨진 상태
git bisect good v6.1 # 이 버전은 정상
커뮤니티 & 메일링 리스트 (Community & Mailing Lists)
커널 개발은 메일링 리스트 중심의 협업 문화를 갖고 있다. 관련 메일링 리스트를 구독하고 논의를 따라가는 것이 실력 향상에 매우 효과적이다.
LKML (Linux Kernel Mailing List)
리눅스 커널 개발의 중심 메일링 리스트. 패치 제출, 코드 리뷰, 기술 논의가 이루어진다.
- 아카이브:
https://lkml.org/ - lore.kernel.org: 커널 메일링 리스트의 공식 아카이브.
https://lore.kernel.org/
서브시스템별 메일링 리스트
각 서브시스템은 전담 메일링 리스트를 운영한다. MAINTAINERS 파일에서 담당 메인테이너와 메일링 리스트를 확인할 수 있다.
- netdev: 네트워킹 서브시스템 (
netdev@vger.kernel.org) - linux-mm: 메모리 관리 (
linux-mm@kvack.org) - linux-fsdevel: 파일시스템 개발 (
linux-fsdevel@vger.kernel.org) - linux-block: 블록 I/O 레이어 (
linux-block@vger.kernel.org) - linux-pci: PCI 서브시스템 (
linux-pci@vger.kernel.org)
# 특정 파일의 메인테이너와 메일링 리스트 확인
scripts/get_maintainer.pl -f drivers/net/ethernet/intel/e1000e/netdev.c
Patchwork
메일링 리스트에 제출된 패치의 상태를 추적하는 웹 도구. 패치가 적용되었는지, 리뷰 중인지 등을 확인할 수 있다.
- 사이트:
https://patchwork.kernel.org/
IRC / Matrix
실시간 소통 채널. OFTC IRC 네트워크의 #kernelnewbies 채널은 입문자에게 유용하다. 최근에는 Matrix 브릿지도 제공된다.
- IRC:
irc.oftc.net—#kernelnewbies,#linux-kernel - Matrix:
#kernelnewbies:oftc.net
커널 버그 추적
- Bugzilla:
https://bugzilla.kernel.org/— 커널 버그 리포트 및 추적 - syzbot:
https://syzkaller.appspot.com/— 자동 퍼징으로 발견된 커널 버그 대시보드
컨퍼런스 & 발표 (Conferences & Talks)
커널 개발자들이 최신 기술과 설계 결정을 공유하는 주요 컨퍼런스들이다. 대부분의 발표 영상이 YouTube에 공개되어 있어 무료로 시청할 수 있다.
Linux Plumbers Conference (LPC)
커널 및 저수준 리눅스 인프라 개발자들의 기술 컨퍼런스. 네트워킹, 스토리지, 보안, 컨테이너 등 서브시스템별 마이크로컨퍼런스가 진행된다.
Kernel Summit / Maintainer Summit
커널 메인테이너들이 모여 개발 프로세스와 기술적 방향을 논의하는 연례 모임. LPC와 함께 개최되는 경우가 많다.
FOSDEM
매년 2월 브뤼셀에서 열리는 대규모 오픈소스 컨퍼런스. 커널 관련 트랙과 devroom이 운영되며, 모든 발표가 무료로 공개된다.
Open Source Summit
Linux Foundation이 주관하는 오픈소스 종합 컨퍼런스. Embedded Linux Conference, LinuxCon 등이 통합되어 운영되며, 커널 관련 세션이 다수 포함된다.
발표 영상 & 슬라이드
- Linux Foundation YouTube: LPC, OSS Summit 등 발표 영상 아카이브
- FOSDEM Video:
https://video.fosdem.org/— 전체 발표 영상 무료 제공 - Kernel Recipes: 프랑스에서 열리는 커널 개발 컨퍼런스로, 발표 영상을 YouTube에 공개
개발 도구 & 환경 (Development Tools & Environment)
커널 개발, 빌드, 테스트, 디버깅에 필요한 핵심 도구들이다. 자세한 사용법은 개발 도구 페이지를 참고하라.
QEMU / KVM
커널 개발과 테스트에 가장 널리 사용되는 가상화 환경. 실제 하드웨어 없이 커널을 부팅하고 디버깅할 수 있다.
- QEMU: 다양한 아키텍처(x86, ARM, RISC-V 등)를 에뮬레이션
- virtme / virtme-ng: 호스트 파일시스템을 공유하여 커널을 빠르게 부팅·테스트
# QEMU로 커널 직접 부팅 (디스크 이미지 없이)
qemu-system-x86_64 \
-kernel arch/x86/boot/bzImage \
-initrd rootfs.cpio.gz \
-append "console=ttyS0" \
-nographic -m 512M
# virtme-ng로 현재 커널 빠르게 테스트
vng --build --run
Buildroot / Yocto
커널 테스트용 루트 파일시스템을 빌드하는 도구. Buildroot는 간단한 테스트 환경에, Yocto는 프로덕션급 임베디드 시스템에 적합하다.
정적 분석 도구
- sparse: 커널 전용 정적 분석기.
__user,__kernel등 address space 어노테이션 검증 - Coccinelle: 의미 기반 패치(semantic patch) 도구. 패턴 매칭으로 코드 변환을 자동화
- smatch: 커널 코드의 잠재적 버그를 탐지하는 정적 분석 도구
- checkpatch.pl: 커널 코딩 스타일 검사 스크립트
# sparse로 정적 분석
make C=1 drivers/net/
# checkpatch로 패치 스타일 검사
scripts/checkpatch.pl --strict my-patch.patch
디버깅 도구
- GDB + QEMU: QEMU의
-s -S옵션으로 GDB 원격 디버깅 - ftrace: 커널 내장 함수 트레이서.
/sys/kernel/debug/tracing/에서 제어 - perf: 성능 카운터 기반 프로파일링 도구
- crash: 커널 크래시 덤프(kdump) 분석 도구
- KASAN / UBSAN / KCSAN: 메모리 오류, 정의되지 않은 동작, 동시성 버그를 런타임에 탐지
자세한 내용은 디버깅 페이지를 참고하라.
테스트 프레임워크
- KUnit: 커널 내 유닛 테스트 프레임워크. 커널 부팅 없이도 빠르게 테스트 실행 가능
- kselftest: 커널 셀프 테스트 스위트.
tools/testing/selftests/에 위치 - LTP (Linux Test Project): 종합 커널 테스트 스위트
- syzkaller: 커버리지 기반 커널 퍼저. 시스템 콜 시퀀스를 자동 생성하여 버그를 탐지
표준 & 규격 (Standards & Specifications)
리눅스 커널 개발에서 참조하는 주요 산업 표준과 규격을 카테고리별로 정리합니다. 커널은 수많은 하드웨어 사양과 프로토콜 표준을 구현하며, 관련 표준 문서를 함께 읽으면 커널 코드의 설계 의도를 보다 깊이 이해할 수 있습니다.
네트워킹 (Networking)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| RFC 791 | IETF | IPv4 프로토콜 명세 — 패킷 구조, 단편화, 라우팅 | 네트워크 스택, 라우팅 |
| RFC 8200 | IETF | IPv6 프로토콜 명세 — 128비트 주소, 확장 헤더, Flow Label | 네트워크 스택, 라우팅 |
| RFC 793 | IETF | TCP 프로토콜 — 3-way 핸드셰이크, 흐름 제어, 재전송 | 네트워크 스택, Netfilter |
| RFC 768 | IETF | UDP 프로토콜 — 비연결 데이터그램 전송 | 네트워크 스택 |
| RFC 826 | IETF | ARP (Address Resolution Protocol) — IPv4 → MAC 주소 변환 | 네트워크 스택 |
| RFC 4291 | IETF | IPv6 주소 체계 — 주소 형식, 스코프, 유니캐스트/멀티캐스트 | 라우팅 |
| RFC 4861 | IETF | NDP (Neighbor Discovery Protocol) — IPv6 이웃 탐색 | 라우팅 |
| RFC 1918 | IETF | 사설 IP 주소 대역 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) | NAT |
| RFC 4787 | IETF | NAT UDP 동작 요구사항 — Endpoint-Independent Mapping 등 | NAT |
| RFC 6888 | IETF | CGN(Carrier-Grade NAT) 요구사항 | NAT |
| RFC 7413 | IETF | TCP Fast Open — SYN 패킷에 데이터 포함하여 지연 감소 | 네트워크 스택 |
| RFC 3168 | IETF | ECN (Explicit Congestion Notification) — 명시적 혼잡 알림 | Netfilter |
| IEEE 802.3 | IEEE | 이더넷 표준 — 프레임 구조, MAC, PHY, 속도별 규격 | sk_buff, BPF/XDP |
| IEEE 802.1Q | IEEE | VLAN 태깅 — 가상 LAN 프레임 분리 | 네트워크 스택 |
플랫폼 & 부팅 (Platform & Boot)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| UEFI Specification 2.10 | UEFI Forum | 통합 확장 펌웨어 인터페이스 — 부팅 서비스, 런타임 서비스, Secure Boot | UEFI, 부팅 과정, Secure Boot |
| ACPI Specification 6.5 | UEFI Forum | 고급 구성 및 전원 인터페이스 — DSDT/SSDT, 전원 상태, 핫플러그 | ACPI, 부팅 과정, 전원 관리 |
| Intel SDM (Software Developer's Manual) | Intel | x86/x64 아키텍처 전체 레퍼런스 — 명령어, 메모리, 인터럽트, 가상화 | 커널 아키텍처, 메모리 관리 |
| ARM Architecture Reference Manual (ARM ARM) | ARM | AArch64 아키텍처 레퍼런스 — 예외 레벨, 메모리 모델, NEON/SVE | 커널 아키텍처, 메모리 관리 |
| Multiboot Specification | GNU/FSF | 부트로더 ↔ 커널 인터페이스 표준 (GRUB 등) | 부팅 과정 |
| GPT (GUID Partition Table) | UEFI Forum | UEFI 기반 디스크 파티션 테이블 형식 | 디스크 파티션, UEFI |
| Device Tree Specification | devicetree.org | 하드웨어 구성 기술 형식 — ARM/RISC-V 플랫폼의 디바이스 열거 | 디바이스 드라이버 |
POSIX & ABI
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| POSIX.1-2017 (IEEE Std 1003.1) | IEEE/The Open Group | UNIX 호환 OS 표준 — 시스템 콜, 시그널, IPC, 파일 시맨틱 | 시스템 콜, 프로세스, VFS, IPC |
| System V ABI | SCO/AT&T | UNIX 호출 규약 — 공유 라이브러리, ELF 적재, IPC 시맨틱 | 프로세스, 시스템 콜 |
| ELF (Executable and Linkable Format) | TIS Committee | 실행 파일/공유 라이브러리/코어 덤프의 표준 바이너리 형식 | 프로세스 |
| DWARF Debugging Format | DWARF Committee | 디버그 정보 표준 — GDB, ftrace 등에서 사용 | 디버깅 |
메모리 & DMA (Memory & DMA)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| Intel VT-d (Virtualization Technology for Directed I/O) | Intel | IOMMU 사양 — DMA 리매핑, 인터럽트 리매핑 | DMA 심화, 메모리 심화 |
| AMD-Vi (AMD I/O Virtualization Technology) | AMD | AMD IOMMU 사양 — DMA/인터럽트 가상화 | DMA 심화, 메모리 심화 |
| JEDEC DDR5 SDRAM (JESD79-5) | JEDEC | DDR5 메모리 타이밍, 전압, 채널 구조 사양 | 메모리 관리, NUMA |
| CXL Specification 3.1 | CXL Consortium | Compute Express Link — CPU-디바이스 간 캐시 일관성 인터커넥트 | NUMA, PCI/PCIe |
동기화 & 메모리 모델 (Synchronization & Memory Model)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| C11 Memory Model (ISO/IEC 9899:2011) | ISO/IEC | C 언어 원자적 연산 및 메모리 순서(memory order) 정의 | 동기화, Atomic |
| C++11 Memory Model (ISO/IEC 14882:2011) | ISO/IEC | C++ 원자적 연산, acquire/release 시맨틱 | Atomic |
| LKMM (Linux Kernel Memory Model) | Linux Community | 리눅스 커널 자체 메모리 모델 — C11보다 강한 보장, herd7 검증 도구 | 동기화, RCU, Atomic |
파일시스템 (Filesystem)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| POSIX 파일 시맨틱 (IEEE Std 1003.1) | IEEE/The Open Group | 파일 I/O, 디렉토리, 퍼미션, 심볼릭 링크의 동작 규약 | VFS, inode, ext4 |
| ext4 Documentation (kernel.org) | Linux Community | ext4 디스크 레이아웃, 저널링, extents, 기능 플래그 문서 | ext4 |
| FUSE Protocol (kernel.org) | Linux Community | 사용자 공간 파일시스템 프로토콜 — 커널 ↔ 사용자 메시지 형식 | FUSE |
디바이스 (Devices)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| PCI Local Bus Specification 3.0 | PCI-SIG | PCI 버스 아키텍처 — 설정 공간, BAR, 인터럽트 | PCI/PCIe |
| PCI Express Base Specification 6.0 | PCI-SIG | PCIe 직렬 인터커넥트 — 레인, 속도(64 GT/s), TLP, DLLP | PCI/PCIe, GPU |
| DisplayPort 2.1 | VESA | 디스플레이 인터페이스 — 고해상도, MST, DSC | GPU |
| HDMI 2.1 | HDMI Forum | 멀티미디어 인터페이스 — 4K/8K, eARC, VRR, ALLM | GPU |
| E-EDID (Enhanced Extended Display Identification Data) | VESA | 디스플레이 정보 교환 — 해상도, 주사율, HDR 메타데이터 | GPU |
컨테이너 & 가상화 (Containers & Virtualization)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| OCI Runtime Specification 1.0 | OCI (Open Container Initiative) | 컨테이너 런타임 표준 — 네임스페이스, cgroups, seccomp 프로파일 | Linux Containers, 네임스페이스, cgroups |
| OCI Image Format Specification | OCI | 컨테이너 이미지 형식 — 레이어, 매니페스트, 설정 | Linux Containers |
| Intel VT-x (Virtualization Technology) | Intel | CPU 하드웨어 가상화 — VMX, VMCS, EPT, VPID | 가상화 (KVM) |
| AMD-V (AMD Virtualization) | AMD | AMD CPU 가상화 — SVM, VMCB, NPT, AVIC | 가상화 (KVM) |
| virtio Specification 1.2 | OASIS | 가상 I/O 디바이스 표준 — virtqueue, vring, 디바이스 타입 | 가상화 (KVM) |
보안 & 암호화 (Security & Cryptography)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| FIPS 140-3 | NIST | 암호 모듈 보안 요구사항 — 커널 Crypto API 인증 기준 | Crypto API, Secure Boot |
| FIPS 197 (AES) | NIST | AES 블록 암호 표준 — 128/192/256비트 키 | Crypto API |
| FIPS 180-4 (SHA) | NIST | SHA-1/SHA-224/SHA-256/SHA-384/SHA-512 해시 알고리즘 | Crypto API |
| FIPS 198-1 (HMAC) | NIST | 해시 기반 메시지 인증 코드 | Crypto API |
| NIST SP 800-38A~F | NIST | 블록 암호 운용 모드 — CBC, CTR, GCM, CCM, XTS 등 | Crypto API |
| ISO/IEC 15408 (Common Criteria) | ISO/IEC | IT 보안 평가 기준 — EAL 등급, 보안 기능 요구사항 | 커널 보안 |
| TPM 2.0 Library Specification | TCG | 신뢰 플랫폼 모듈 — 보안 부팅, 키 저장, 원격 증명 | Secure Boot |
| X.509 (ITU-T / RFC 5280) | ITU-T / IETF | 공개키 인증서 형식 — 모듈 서명, Secure Boot 인증서 체인 | Secure Boot, 커널 보안 |
스토리지 (Storage)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| NVMe Specification 2.0 | NVM Express | NVMe 인터페이스 — 커맨드 세트, 큐 구조, 네임스페이스 | Block I/O, io_uring |
| SCSI Architecture Model (SAM-6) | T10 (INCITS) | SCSI 명령 아키텍처 — 명령 집합, 태스크 관리, 전송 프로토콜 | Block I/O |
| ATA/ATAPI Command Set (ACS-4) | T13 (INCITS) | ATA 디스크 명령 세트 — SATA, NCQ, TRIM | Block I/O |
타이머 & 클럭 (Timers & Clocks)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| IEEE 1588 (PTP) | IEEE | 정밀 시간 프로토콜 — 나노초 수준 네트워크 시간 동기화 | 타이머, ktime/Clock |
| ACPI Power States (C-states, P-states) | UEFI Forum | CPU/디바이스 전원 상태 정의 — C0~Cn, P0~Pn | 전원 관리, 타이머 |
CPU & ISA (CPU & Instruction Set Architecture)
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| Intel SDM Vol.3 (System Programming Guide) | Intel | 보호 모드, 페이징, 인터럽트, 가상화(VMX), 전원 관리 | CPU 토폴로지, CPU 캐시, MSR |
| Intel SDM Vol.4 (MSR Reference) | Intel | 모델 특화 레지스터(MSR) 전체 목록 및 비트 필드 | MSR |
| AMD Architecture Programmer's Manual (APM) | AMD | AMD64 아키텍처 — 명령어, 시스템 프로그래밍, MSR | CPU 토폴로지, CPU 캐시, MSR |
| CPUID Specification | Intel / AMD | CPU 기능 식별 — 기능 플래그, 캐시 정보, 토폴로지 열거 | CPU 토폴로지 |
기타 ABI & Language
| 규격명 | 발행 기관 | 설명 | 관련 페이지 |
|---|---|---|---|
| System V AMD64 ABI (x86-64 ABI) | AMD / community | x86-64 호출 규약 — 레지스터 용도, 스택 프레임, 시스템 콜 ABI | 어셈블리, 시스템 콜 |
| ARM AAPCS (Procedure Call Standard) | ARM | ARM/AArch64 함수 호출 규약 — 레지스터, 스택, 반환 값 | 어셈블리 |
| The Rust Reference | Rust Project | Rust 언어 명세 — 소유권, 수명, unsafe, FFI | Rust in Kernel |