요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Kernel tree 안의 문서
kernel-docs.rst:35-49Documentation/ index, process guide, core API, driver API, locking, memory management, scheduler, networking과 architecture별 문서가 가장 가까운 reference다. Build한 HTML 문서는 cross-reference와 generated kernel-doc를 함께 제공한다.
Online 문서와 article
kernel-docs.rst:50-74Kernel.org documentation, LWN kernel index, KernelNewbies와 mailing-list archive는 release 변화, design discussion과 historical context를 찾는 데 유용하다. Source symbol과 commit을 기준으로 자료의 적용 version을 확인한다.
출판 서적
kernel-docs.rst:75-162목록에는 Linux Device Drivers, Linux Kernel Development, Understanding the Linux Kernel, Essential Linux Device Drivers, Embedded Linux와 architecture 관련 서적이 포함된다. 오래된 API 예제를 그대로 복사하지 말고 subsystem의 현재 implementation을 이해하기 위한 개념 자료로 사용한다.
Conference와 기타 자료
kernel-docs.rst:163-222Conference paper, training material, university course, debugging guide와 architecture manual은 특정 주제를 깊게 다룬다. 원문 하단의 전체 영어 link 목록을 펼치면 Linux 6.18.37 source에 수록된 실제 URL과 서지 정보를 확인할 수 있다.
Rust for Linux 자료
kernel-docs.rst:223-382Rust section은 language documentation, Rust for Linux project, presentation과 kernel integration 자료를 모은다. Kernel Rust code는 일반 userspace Rust와 build environment·allocation·panic·binding 조건이 다르므로 Documentation/rust의 current rule을 우선한다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. _kernel_docs:
Index of Further Kernel Documentation
=====================================
The need for a document like this one became apparent in the linux-kernel
mailing list as the same questions, asking for pointers to information,
appeared again and again.
Fortunately, as more and more people get to GNU/Linux, more and more get
interested in the Kernel. But reading the sources is not always enough. It
is easy to understand the code, but miss the concepts, the philosophy and
design decisions behind this code.
Unfortunately, not many documents are available for beginners to start.
And, even if they exist, there was no "well-known" place which kept track
of them. These lines try to cover this lack.
PLEASE, if you know any paper not listed here or write a new document,
include a reference to it here, following the kernel's patch submission
process. Any corrections, ideas or comments are also welcome.
All documents are cataloged with the following fields: the document's
"Title", the "Author"/s, the "URL" where they can be found, some "Keywords"
helpful when searching for specific topics, and a brief "Description" of
the Document.
.. note::
The documents on each section of this document are ordered by its
published date, from the newest to the oldest. The maintainer(s) should
periodically retire resources as they become obsolete or outdated; with
the exception of foundational books.
Docs at the Linux Kernel tree
-----------------------------
The Sphinx books should be built with ``make {htmldocs | pdfdocs | epubdocs}``.
* Name: **linux/Documentation**
:Author: Many.
:Location: Documentation/
:Keywords: text files, Sphinx.
:Description: Documentation that comes with the kernel sources,
inside the Documentation directory. Some pages from this document
(including this document itself) have been moved there, and might
be more up to date than the web version.
On-line docs
------------
* Title: **Linux Kernel Mailing List Glossary**
:Author: various
:URL: https://kernelnewbies.org/KernelGlossary
:Date: rolling version
:Keywords: glossary, terms, linux-kernel.
:Description: From the introduction: "This glossary is intended as
a brief description of some of the acronyms and terms you may hear
during discussion of the Linux kernel".
* Title: **The Linux Kernel Module Programming Guide**
:Author: Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram,
Jim Huang.
:URL: https://sysprog21.github.io/lkmpg/
:Date: 2021
:Keywords: modules, GPL book, /proc, ioctls, system calls,
interrupt handlers .
:Description: A very nice GPL book on the topic of modules
programming. Lots of examples. Currently the new version is being
actively maintained at https://github.com/sysprog21/lkmpg.
Published books
---------------
* Title: **The Linux Memory Manager**
:Author: Lorenzo Stoakes
:Publisher: No Starch Press
:Date: February 2025
:Pages: 1300
:ISBN: 978-1718504462
:Notes: Memory management. Full draft available as early access for
pre-order, full release scheduled for Fall 2025. See
https://nostarch.com/linux-memory-manager for further info.
* Title: **Practical Linux System Administration: A Guide to Installation, Configuration, and Management, 1st Edition**
:Author: Kenneth Hess
:Publisher: O'Reilly Media
:Date: May, 2023
:Pages: 246
:ISBN: 978-1098109035
:Notes: System administration
* Title: **Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules**
:Author: Kaiwan N Billimoria
:Publisher: Packt Publishing Ltd
:Date: August, 2022
:Pages: 638
:ISBN: 978-1801075039
:Notes: Debugging book
* Title: **Linux Kernel Programming: A Comprehensive Guide to Kernel Internals, Writing Kernel Modules, and Kernel Synchronization**
:Author: Kaiwan N Billimoria
:Publisher: Packt Publishing Ltd
:Date: March, 2021 (Second Edition published in 2024)
:Pages: 754
:ISBN: 978-1789953435 (Second Edition ISBN is 978-1803232225)
* Title: **Linux Kernel Programming Part 2 - Char Device Drivers and Kernel Synchronization: Create user-kernel interfaces, work with peripheral I/O, and handle hardware interrupts**
:Author: Kaiwan N Billimoria
:Publisher: Packt Publishing Ltd
:Date: March, 2021
:Pages: 452
:ISBN: 978-1801079518
* Title: **Linux System Programming: Talking Directly to the Kernel and C Library**
:Author: Robert Love
:Publisher: O'Reilly Media
:Date: June, 2013
:Pages: 456
:ISBN: 978-1449339531
:Notes: Foundational book
* Title: **Linux Kernel Development, 3rd Edition**
:Author: Robert Love
:Publisher: Addison-Wesley
:Date: July, 2010
:Pages: 440
:ISBN: 978-0672329463
:Notes: Foundational book
.. _ldd3_published:
* Title: **Linux Device Drivers, 3rd Edition**
:Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
:Publisher: O'Reilly & Associates
:Date: 2005
:Pages: 636
:ISBN: 0-596-00590-3
:Notes: Foundational book. Further information in
http://www.oreilly.com/catalog/linuxdrive3/
PDF format, URL: https://lwn.net/Kernel/LDD3/
* Title: **The Design of the UNIX Operating System**
:Author: Maurice J. Bach
:Publisher: Prentice Hall
:Date: 1986
:Pages: 471
:ISBN: 0-13-201757-1
:Notes: Foundational book
Miscellaneous
-------------
* Name: **Cross-Referencing Linux**
:URL: https://elixir.bootlin.com/
:Keywords: Browsing source code.
:Description: Another web-based Linux kernel source code browser.
Lots of cross references to variables and functions. You can see
where they are defined and where they are used.
* Name: **Linux Weekly News**
:URL: https://lwn.net
:Keywords: latest kernel news.
:Description: The title says it all. There's a fixed kernel section
summarizing developers' work, bug fixes, new features and versions
produced during the week.
* Name: **The home page of Linux-MM**
:Author: The Linux-MM team.
:URL: https://linux-mm.org/
:Keywords: memory management, Linux-MM, mm patches, TODO, docs,
mailing list.
:Description: Site devoted to Linux Memory Management development.
Memory related patches, HOWTOs, links, mm developers... Don't miss
it if you are interested in memory management development!
* Name: **Kernel Newbies IRC Channel and Website**
:URL: https://www.kernelnewbies.org
:Keywords: IRC, newbies, channel, asking doubts.
:Description: #kernelnewbies on irc.oftc.net.
#kernelnewbies is an IRC network dedicated to the 'newbie'
kernel hacker. The audience mostly consists of people who are
learning about the kernel, working on kernel projects or
professional kernel hackers that want to help less seasoned kernel
people.
#kernelnewbies is on the OFTC IRC Network.
Try irc.oftc.net as your server and then /join #kernelnewbies.
The kernelnewbies website also hosts articles, documents, FAQs...
* Name: **linux-kernel mailing list archives and search engines**
:URL: https://subspace.kernel.org
:URL: https://lore.kernel.org
:Keywords: linux-kernel, archives, search.
:Description: Some of the linux-kernel mailing list archivers. If
you have a better/another one, please let me know.
* Name: **The Linux Foundation YouTube channel**
:URL: https://www.youtube.com/user/thelinuxfoundation
:Keywords: linux, videos, linux-foundation, youtube.
:Description: The Linux Foundation uploads video recordings of their
collaborative events, Linux conferences including LinuxCon, and
other original research and content related to Linux and software
development.
Rust
----
* Title: **Rust for Linux**
:Author: various
:URL: https://rust-for-linux.com/
:Date: rolling version
:Keywords: glossary, terms, linux-kernel, rust.
:Description: From the website: "Rust for Linux is the project adding
support for the Rust language to the Linux kernel. This website is
intended as a hub of links, documentation and resources related to
the project".
* Title: **Learn Rust the Dangerous Way**
:Author: Cliff L. Biffle
:URL: https://cliffle.com/p/dangerust/
:Date: Accessed Sep 11 2024
:Keywords: rust, blog.
:Description: From the website: "LRtDW is a series of articles
putting Rust features in context for low-level C programmers who
maybe don’t have a formal CS background — the sort of people who
work on firmware, game engines, OS kernels, and the like.
Basically, people like me.". It illustrates line-by-line
conversions from C to Rust.
* Title: **The Rust Book**
:Author: Steve Klabnik and Carol Nichols, with contributions from the
Rust community
:URL: https://doc.rust-lang.org/book/
:Date: Accessed Sep 11 2024
:Keywords: rust, book.
:Description: From the website: "This book fully embraces the
potential of Rust to empower its users. It’s a friendly and
approachable text intended to help you level up not just your
knowledge of Rust, but also your reach and confidence as a
programmer in general. So dive in, get ready to learn—and welcome
to the Rust community!".
* Title: **Rust for the Polyglot Programmer**
:Author: Ian Jackson
:URL: https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/index.html
:Date: December 2022
:Keywords: rust, blog, tooling.
:Description: From the website: "There are many guides and
introductions to Rust. This one is something different: it is
intended for the experienced programmer who already knows many
other programming languages. I try to be comprehensive enough to be
a starting point for any area of Rust, but to avoid going into too
much detail except where things are not as you might expect. Also
this guide is not entirely free of opinion, including
recommendations of libraries (crates), tooling, etc.".
* Title: **Fasterthanli.me**
:Author: Amos Wenger
:URL: https://fasterthanli.me/
:Date: Accessed Sep 11 2024
:Keywords: rust, blog, news.
:Description: From the website: "I make articles and videos about how
computers work. My content is long-form, didactic and exploratory
— and often an excuse to teach Rust!".
* Title: **Comprehensive Rust**
:Author: Android team at Google
:URL: https://google.github.io/comprehensive-rust/
:Date: Accessed Sep 13 2024
:Keywords: rust, blog.
:Description: From the website: "The course covers the full spectrum
of Rust, from basic syntax to advanced topics like generics and
error handling".
* Title: **The Embedded Rust Book**
:Author: Multiple contributors, mostly Jorge Aparicio
:URL: https://docs.rust-embedded.org/book/
:Date: Accessed Sep 13 2024
:Keywords: rust, blog.
:Description: From the website: "An introductory book about using
the Rust Programming Language on "Bare Metal" embedded systems,
such as Microcontrollers".
* Title: **Experiment: Improving the Rust Book**
:Author: Cognitive Engineering Lab at Brown University
:URL: https://rust-book.cs.brown.edu/
:Date: Accessed Sep 22 2024
:Keywords: rust, blog.
:Description: From the website: "The goal of this experiment is to
evaluate and improve the content of the Rust Book to help people
learn Rust more effectively.".
* Title: **New Rustacean** (podcast)
:Author: Chris Krycho
:URL: https://newrustacean.com/
:Date: Accessed Sep 22 2024
:Keywords: rust, podcast.
:Description: From the website: "This is a podcast about learning
the programming language Rust—from scratch! Apart from this spiffy
landing page, all the site content is built with Rust's own
documentation tools.".
* Title: **Opsem-team** (repository)
:Author: Operational semantics team
:URL: https://github.com/rust-lang/opsem-team/tree/main
:Date: Accessed Sep 22 2024
:Keywords: rust, repository.
:Description: From the README: "The opsem team is the successor of
the unsafe-code-guidelines working group and responsible for
answering many of the difficult questions about the semantics of
unsafe Rust".
* Title: **You Can't Spell Trust Without Rust**
:Author: Alexis Beingessner
:URL: https://repository.library.carleton.ca/downloads/1j92g820w?locale=en
:Date: 2015
:Keywords: rust, master, thesis.
:Description: This thesis focuses on Rust's ownership system, which
ensures memory safety by controlling data manipulation and
lifetime, while also highlighting its limitations and comparing it
to similar systems in Cyclone and C++.
* Name: **Linux Plumbers (LPC) 2024 Rust presentations**
:Title: Rust microconference
:URL: https://lpc.events/event/18/sessions/186/#20240918
:Title: Rust for Linux
:URL: https://lpc.events/event/18/contributions/1912/
:Title: Journey of a C kernel engineer starting a Rust driver project
:URL: https://lpc.events/event/18/contributions/1911/
:Title: Crafting a Linux kernel scheduler that runs in user-space
using Rust
:URL: https://lpc.events/event/18/contributions/1723/
:Title: openHCL: A Linux and Rust based paravisor
:URL: https://lpc.events/event/18/contributions/1956/
:Keywords: rust, lpc, presentations.
:Description: A number of LPC talks related to Rust.
* Name: **The Rustacean Station Podcast**
:URL: https://rustacean-station.org/
:Keywords: rust, podcasts.
:Description: A community project for creating podcast content for
the Rust programming language.
-------
This document was originally based on:
https://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
and written by Juan-Mariano de Goyeneche
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
추가 kernel 문서 색인의 목적
1-33정보를 어디서 찾는지 묻는 같은 질문이 linux-kernel mailing list에 반복해서 올라오면서 이런 문서의 필요성이 분명해졌다. GNU/Linux를 사용하는 사람이 늘수록 kernel에 관심을 갖는 사람도 늘지만 source를 읽는 것만으로는 충분하지 않을 수 있다. Code 자체는 이해해도 그 뒤의 개념, 철학, 설계 결정을 놓치기 쉽다.
입문자가 시작할 문서가 많지 않고, 존재하는 자료를 추적하는 널리 알려진 장소도 없었기 때문에 이 문서가 그 공백을 메우려 한다. 빠진 paper나 새 문서를 알고 있다면 kernel patch submission process에 따라 reference를 추가해 달라고 요청한다. 수정, 아이디어, comment도 환영한다.
각 자료는 title, author, URL, 검색용 keyword, 간단한 description으로 catalog한다. 절 안의 자료는 publication date가 최신인 순서로 나열한다. Maintainer는 foundational book을 제외하고 obsolete하거나 outdated된 resource를 주기적으로 제거해야 한다.
Kernel source tree와 online 문서
35-73Sphinx book은 다음 target으로 build한다.
make htmldocs
make pdfdocs
make epubdocs
| 자료 | 정보 |
|---|---|
| linux/Documentation | 저자 다수. 위치 Documentation/. Text file과 Sphinx 문서. Kernel source와 함께 제공되며 이 문서를 포함한 여러 page가 이동되어 web version보다 최신일 수 있다. |
| Linux Kernel Mailing List Glossary | 저자 다수, rolling version. Kernel discussion에서 접하는 acronym과 용어를 짧게 설명한다. https://kernelnewbies.org/KernelGlossary |
| The Linux Kernel Module Programming Guide | Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang. 2021. Module, GPL, /proc, ioctl, system call, interrupt handler를 다루는 예제 중심 GPL book. https://sysprog21.github.io/lkmpg/ 및 https://github.com/sysprog21/lkmpg |
출판된 서적
75-162| 서명 | 서지 정보와 설명 |
|---|---|
| The Linux Memory Manager | Lorenzo Stoakes, No Starch Press, 2025년 2월, 1300쪽, ISBN 978-1718504462. Memory management. 원문은 pre-order early access draft와 2025년 가을 full release 일정을 안내한다. https://nostarch.com/linux-memory-manager |
| Practical Linux System Administration: A Guide to Installation, Configuration, and Management, 1st Edition | Kenneth Hess, O'Reilly Media, 2023년 5월, 246쪽, ISBN 978-1098109035. System administration. |
| Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules | Kaiwan N Billimoria, Packt Publishing Ltd, 2022년 8월, 638쪽, ISBN 978-1801075039. Debugging 서적. |
| Linux Kernel Programming: A Comprehensive Guide to Kernel Internals, Writing Kernel Modules, and Kernel Synchronization | Kaiwan N Billimoria, Packt Publishing Ltd, 2021년 3월. 2024년에 2판 출간. 754쪽. ISBN 978-1789953435, 2판 ISBN 978-1803232225. |
| Linux Kernel Programming Part 2 - Char Device Drivers and Kernel Synchronization | Kaiwan N Billimoria, Packt Publishing Ltd, 2021년 3월, 452쪽, ISBN 978-1801079518. User/kernel interface, peripheral I/O, hardware interrupt를 다룬다. |
| Linux System Programming: Talking Directly to the Kernel and C Library | Robert Love, O'Reilly Media, 2013년 6월, 456쪽, ISBN 978-1449339531. Foundational book. |
| Linux Kernel Development, 3rd Edition | Robert Love, Addison-Wesley, 2010년 7월, 440쪽, ISBN 978-0672329463. Foundational book. |
| Linux Device Drivers, 3rd Edition | Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman. O'Reilly & Associates, 2005년, 636쪽, ISBN 0-596-00590-3. Foundational book. http://www.oreilly.com/catalog/linuxdrive3/ 및 PDF https://lwn.net/Kernel/LDD3/ |
| The Design of the UNIX Operating System | Maurice J. Bach, Prentice Hall, 1986년, 471쪽, ISBN 0-13-201757-1. Foundational book. |
기타 kernel resource
163-221| 자료 | 설명 |
|---|---|
| Cross-Referencing Linux | 변수와 function의 정의 및 사용 위치를 cross-reference하는 web-based Linux kernel source browser. https://elixir.bootlin.com/ |
| Linux Weekly News | 주간 developer 작업, bug fix, 새 기능과 version을 요약하는 고정 kernel section을 제공한다. https://lwn.net |
| Linux-MM | Linux-MM team이 운영하는 memory management 개발 site. Memory patch, HOWTO, link, developer 정보와 mailing list를 제공한다. https://linux-mm.org/ |
| Kernel Newbies IRC Channel and Website | Kernel을 배우거나 project를 수행하는 사람과 경험 많은 개발자가 참여하는 #kernelnewbies channel. irc.oftc.net에서 /join #kernelnewbies. Website에는 article, document, FAQ도 있다. https://www.kernelnewbies.org |
| linux-kernel mailing list archive | Mail archive와 검색: https://subspace.kernel.org 및 https://lore.kernel.org |
| The Linux Foundation YouTube channel | Collaborative event, LinuxCon을 포함한 conference, Linux 및 software 개발 연구 content의 video recording을 제공한다. https://www.youtube.com/user/thelinuxfoundation |
Rust for Linux와 학습 자료
223-307| 자료 | 설명 |
|---|---|
| Rust for Linux | 저자 다수, rolling version. Linux kernel에 Rust language 지원을 추가하는 project의 link, documentation, resource hub. https://rust-for-linux.com/ |
| Learn Rust the Dangerous Way | Cliff L. Biffle. 2024-09-11 접근. Firmware, game engine, OS kernel 같은 low-level C programmer를 위해 Rust feature를 맥락 속에서 설명하고 C에서 Rust로 line-by-line 변환한다. https://cliffle.com/p/dangerust/ |
| The Rust Book | Steve Klabnik, Carol Nichols 및 Rust community. 2024-09-11 접근. Rust 지식뿐 아니라 programmer로서의 범위와 자신감을 키우는 친절한 입문서. https://doc.rust-lang.org/book/ |
| Rust for the Polyglot Programmer | Ian Jackson, 2022년 12월. 여러 language를 아는 경험 많은 programmer를 위한 guide. 예상과 다른 부분을 제외하면 과도한 detail을 피하고 crate 및 tooling 추천도 포함한다. https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/index.html |
| Fasterthanli.me | Amos Wenger. 2024-09-11 접근. Computer 동작을 설명하는 장문·교육·탐구형 article과 video로 Rust를 자주 함께 가르친다. https://fasterthanli.me/ |
| Comprehensive Rust | Google Android team. 2024-09-13 접근. Basic syntax부터 generic과 error handling 같은 advanced topic까지 다룬다. https://google.github.io/comprehensive-rust/ |
| The Embedded Rust Book | Jorge Aparicio를 중심으로 한 여러 contributor. 2024-09-13 접근. Microcontroller 같은 bare-metal embedded system에서 Rust를 사용하는 입문서. https://docs.rust-embedded.org/book/ |
Rust 교육, semantics, 연구 자료
309-350| 자료 | 설명 |
|---|---|
| Experiment: Improving the Rust Book | Brown University Cognitive Engineering Lab. 2024-09-22 접근. Rust 학습 효과를 높이기 위해 Rust Book content를 평가하고 개선하는 experiment. https://rust-book.cs.brown.edu/ |
| New Rustacean podcast | Chris Krycho. 2024-09-22 접근. Rust를 처음부터 배우는 podcast이며 site content도 Rust documentation tool로 build한다. https://newrustacean.com/ |
| Opsem-team repository | Operational semantics team. 2024-09-22 접근. unsafe-code-guidelines working group의 후속 team으로 unsafe Rust semantics의 어려운 질문을 담당한다. https://github.com/rust-lang/opsem-team/tree/main |
| You Can't Spell Trust Without Rust | Alexis Beingessner, 2015년 master thesis. Data manipulation과 lifetime을 제어해 memory safety를 보장하는 Rust ownership system, 한계, Cyclone 및 C++의 유사 system과 비교를 다룬다. https://repository.library.carleton.ca/downloads/1j92g820w?locale=en |
LPC 2024 Rust 발표와 podcast
352-373- LPC 2024 Rust microconference
https://lpc.events/event/18/sessions/186/#20240918 - Rust for Linux
https://lpc.events/event/18/contributions/1912/ - Journey of a C kernel engineer starting a Rust driver project
https://lpc.events/event/18/contributions/1911/ - Crafting a Linux kernel scheduler that runs in user-space using Rust
https://lpc.events/event/18/contributions/1723/ - openHCL: A Linux and Rust based paravisor
https://lpc.events/event/18/contributions/1956/ - The Rustacean Station Podcast
https://rustacean-station.org/
LPC 항목은 Rust 관련 conference talk 모음이다. Rustacean Station은 Rust programming language의 podcast content를 만드는 community project다.
원본 자료와 저자
375-381이 문서는 Juan-Mariano de Goyeneche가 작성했으며 다음 기존 문서를 바탕으로 했다.
Source 밖의 자료를 찾는 출발점
kernel-docs.rst:3-34이 문서는 kernel 개발과 내부 구조를 공부할 때 참고할 source-tree 문서, website, book, article과 talk를 모은 색인이다. 외부 자료는 작성 시점의 kernel version을 확인하고 current source와 차이를 대조해야 한다.