| 1 | .. _kernel_docs:
|
| 2 |
|
| 3 | Index of Further Kernel Documentation
|
| 4 | =====================================
|
| 5 |
|
| 6 | The need for a document like this one became apparent in the linux-kernel
|
| 7 | mailing list as the same questions, asking for pointers to information,
|
| 8 | appeared again and again.
|
| 9 |
|
| 10 | Fortunately, as more and more people get to GNU/Linux, more and more get
|
| 11 | interested in the Kernel. But reading the sources is not always enough. It
|
| 12 | is easy to understand the code, but miss the concepts, the philosophy and
|
| 13 | design decisions behind this code.
|
| 14 |
|
| 15 | Unfortunately, not many documents are available for beginners to start.
|
| 16 | And, even if they exist, there was no "well-known" place which kept track
|
| 17 | of them. These lines try to cover this lack.
|
| 18 |
|
| 19 | PLEASE, if you know any paper not listed here or write a new document,
|
| 20 | include a reference to it here, following the kernel's patch submission
|
| 21 | process. Any corrections, ideas or comments are also welcome.
|
| 22 |
|
| 23 | All documents are cataloged with the following fields: the document's
|
| 24 | "Title", the "Author"/s, the "URL" where they can be found, some "Keywords"
|
| 25 | helpful when searching for specific topics, and a brief "Description" of
|
| 26 | the Document.
|
| 27 |
|
| 28 | .. note::
|
| 29 |
|
| 30 | The documents on each section of this document are ordered by its
|
| 31 | published date, from the newest to the oldest. The maintainer(s) should
|
| 32 | periodically retire resources as they become obsolete or outdated; with
|
| 33 | the exception of foundational books.
|
| 34 |
|
| 35 | Docs at the Linux Kernel tree
|
| 36 | -----------------------------
|
| 37 |
|
| 38 | The Sphinx books should be built with ``make {htmldocs | pdfdocs | epubdocs}``.
|
| 39 |
|
| 40 | * Name: **linux/Documentation**
|
| 41 |
|
| 42 | :Author: Many.
|
| 43 | :Location: Documentation/
|
| 44 | :Keywords: text files, Sphinx.
|
| 45 | :Description: Documentation that comes with the kernel sources,
|
| 46 | inside the Documentation directory. Some pages from this document
|
| 47 | (including this document itself) have been moved there, and might
|
| 48 | be more up to date than the web version.
|
| 49 |
|
| 50 | On-line docs
|
| 51 | ------------
|
| 52 |
|
| 53 | * Title: **Linux Kernel Mailing List Glossary**
|
| 54 |
|
| 55 | :Author: various
|
| 56 | :URL: https://kernelnewbies.org/KernelGlossary
|
| 57 | :Date: rolling version
|
| 58 | :Keywords: glossary, terms, linux-kernel.
|
| 59 | :Description: From the introduction: "This glossary is intended as
|
| 60 | a brief description of some of the acronyms and terms you may hear
|
| 61 | during discussion of the Linux kernel".
|
| 62 |
|
| 63 | * Title: **The Linux Kernel Module Programming Guide**
|
| 64 |
|
| 65 | :Author: Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram,
|
| 66 | Jim Huang.
|
| 67 | :URL: https://sysprog21.github.io/lkmpg/
|
| 68 | :Date: 2021
|
| 69 | :Keywords: modules, GPL book, /proc, ioctls, system calls,
|
| 70 | interrupt handlers .
|
| 71 | :Description: A very nice GPL book on the topic of modules
|
| 72 | programming. Lots of examples. Currently the new version is being
|
| 73 | actively maintained at https://github.com/sysprog21/lkmpg.
|
| 74 |
|
| 75 | Published books
|
| 76 | ---------------
|
| 77 |
|
| 78 | * Title: **Practical Linux System Administration: A Guide to Installation, Configuration, and Management, 1st Edition**
|
| 79 |
|
| 80 | :Author: Kenneth Hess
|
| 81 | :Publisher: O'Reilly Media
|
| 82 | :Date: May, 2023
|
| 83 | :Pages: 246
|
| 84 | :ISBN: 978-1098109035
|
| 85 | :Notes: System administration
|
| 86 |
|
| 87 | * Title: **Linux Kernel Debugging: Leverage proven tools and advanced techniques to effectively debug Linux kernels and kernel modules**
|
| 88 |
|
| 89 | :Author: Kaiwan N Billimoria
|
| 90 | :Publisher: Packt Publishing Ltd
|
| 91 | :Date: August, 2022
|
| 92 | :Pages: 638
|
| 93 | :ISBN: 978-1801075039
|
| 94 | :Notes: Debugging book
|
| 95 |
|
| 96 | * Title: **Linux Kernel Programming: A Comprehensive Guide to Kernel Internals, Writing Kernel Modules, and Kernel Synchronization**
|
| 97 |
|
| 98 | :Author: Kaiwan N Billimoria
|
| 99 | :Publisher: Packt Publishing Ltd
|
| 100 | :Date: March, 2021 (Second Edition published in 2024)
|
| 101 | :Pages: 754
|
| 102 | :ISBN: 978-1789953435 (Second Edition ISBN is 978-1803232225)
|
| 103 |
|
| 104 | * 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**
|
| 105 |
|
| 106 | :Author: Kaiwan N Billimoria
|
| 107 | :Publisher: Packt Publishing Ltd
|
| 108 | :Date: March, 2021
|
| 109 | :Pages: 452
|
| 110 | :ISBN: 978-1801079518
|
| 111 |
|
| 112 | * Title: **Linux System Programming: Talking Directly to the Kernel and C Library**
|
| 113 |
|
| 114 | :Author: Robert Love
|
| 115 | :Publisher: O'Reilly Media
|
| 116 | :Date: June, 2013
|
| 117 | :Pages: 456
|
| 118 | :ISBN: 978-1449339531
|
| 119 | :Notes: Foundational book
|
| 120 |
|
| 121 | * Title: **Linux Kernel Development, 3rd Edition**
|
| 122 |
|
| 123 | :Author: Robert Love
|
| 124 | :Publisher: Addison-Wesley
|
| 125 | :Date: July, 2010
|
| 126 | :Pages: 440
|
| 127 | :ISBN: 978-0672329463
|
| 128 | :Notes: Foundational book
|
| 129 |
|
| 130 | .. _ldd3_published:
|
| 131 |
|
| 132 | * Title: **Linux Device Drivers, 3rd Edition**
|
| 133 |
|
| 134 | :Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
|
| 135 | :Publisher: O'Reilly & Associates
|
| 136 | :Date: 2005
|
| 137 | :Pages: 636
|
| 138 | :ISBN: 0-596-00590-3
|
| 139 | :Notes: Foundational book. Further information in
|
| 140 | http://www.oreilly.com/catalog/linuxdrive3/
|
| 141 | PDF format, URL: https://lwn.net/Kernel/LDD3/
|
| 142 |
|
| 143 | * Title: **The Design of the UNIX Operating System**
|
| 144 |
|
| 145 | :Author: Maurice J. Bach
|
| 146 | :Publisher: Prentice Hall
|
| 147 | :Date: 1986
|
| 148 | :Pages: 471
|
| 149 | :ISBN: 0-13-201757-1
|
| 150 | :Notes: Foundational book
|
| 151 |
|
| 152 | Miscellaneous
|
| 153 | -------------
|
| 154 |
|
| 155 | * Name: **Cross-Referencing Linux**
|
| 156 |
|
| 157 | :URL: https://elixir.bootlin.com/
|
| 158 | :Keywords: Browsing source code.
|
| 159 | :Description: Another web-based Linux kernel source code browser.
|
| 160 | Lots of cross references to variables and functions. You can see
|
| 161 | where they are defined and where they are used.
|
| 162 |
|
| 163 | * Name: **Linux Weekly News**
|
| 164 |
|
| 165 | :URL: https://lwn.net
|
| 166 | :Keywords: latest kernel news.
|
| 167 | :Description: The title says it all. There's a fixed kernel section
|
| 168 | summarizing developers' work, bug fixes, new features and versions
|
| 169 | produced during the week.
|
| 170 |
|
| 171 | * Name: **The home page of Linux-MM**
|
| 172 |
|
| 173 | :Author: The Linux-MM team.
|
| 174 | :URL: https://linux-mm.org/
|
| 175 | :Keywords: memory management, Linux-MM, mm patches, TODO, docs,
|
| 176 | mailing list.
|
| 177 | :Description: Site devoted to Linux Memory Management development.
|
| 178 | Memory related patches, HOWTOs, links, mm developers... Don't miss
|
| 179 | it if you are interested in memory management development!
|
| 180 |
|
| 181 | * Name: **Kernel Newbies IRC Channel and Website**
|
| 182 |
|
| 183 | :URL: https://www.kernelnewbies.org
|
| 184 | :Keywords: IRC, newbies, channel, asking doubts.
|
| 185 | :Description: #kernelnewbies on irc.oftc.net.
|
| 186 | #kernelnewbies is an IRC network dedicated to the 'newbie'
|
| 187 | kernel hacker. The audience mostly consists of people who are
|
| 188 | learning about the kernel, working on kernel projects or
|
| 189 | professional kernel hackers that want to help less seasoned kernel
|
| 190 | people.
|
| 191 | #kernelnewbies is on the OFTC IRC Network.
|
| 192 | Try irc.oftc.net as your server and then /join #kernelnewbies.
|
| 193 | The kernelnewbies website also hosts articles, documents, FAQs...
|
| 194 |
|
| 195 | * Name: **linux-kernel mailing list archives and search engines**
|
| 196 |
|
| 197 | :URL: https://subspace.kernel.org
|
| 198 | :URL: https://lore.kernel.org
|
| 199 | :Keywords: linux-kernel, archives, search.
|
| 200 | :Description: Some of the linux-kernel mailing list archivers. If
|
| 201 | you have a better/another one, please let me know.
|
| 202 |
|
| 203 | * Name: **The Linux Foundation YouTube channel**
|
| 204 |
|
| 205 | :URL: https://www.youtube.com/user/thelinuxfoundation
|
| 206 | :Keywords: linux, videos, linux-foundation, youtube.
|
| 207 | :Description: The Linux Foundation uploads video recordings of their
|
| 208 | collaborative events, Linux conferences including LinuxCon, and
|
| 209 | other original research and content related to Linux and software
|
| 210 | development.
|
| 211 |
|
| 212 | Rust
|
| 213 | ----
|
| 214 |
|
| 215 | * Title: **Rust for Linux**
|
| 216 |
|
| 217 | :Author: various
|
| 218 | :URL: https://rust-for-linux.com/
|
| 219 | :Date: rolling version
|
| 220 | :Keywords: glossary, terms, linux-kernel, rust.
|
| 221 | :Description: From the website: "Rust for Linux is the project adding
|
| 222 | support for the Rust language to the Linux kernel. This website is
|
| 223 | intended as a hub of links, documentation and resources related to
|
| 224 | the project".
|
| 225 |
|
| 226 | * Title: **Learn Rust the Dangerous Way**
|
| 227 |
|
| 228 | :Author: Cliff L. Biffle
|
| 229 | :URL: https://cliffle.com/p/dangerust/
|
| 230 | :Date: Accessed Sep 11 2024
|
| 231 | :Keywords: rust, blog.
|
| 232 | :Description: From the website: "LRtDW is a series of articles
|
| 233 | putting Rust features in context for low-level C programmers who
|
| 234 | maybe don’t have a formal CS background — the sort of people who
|
| 235 | work on firmware, game engines, OS kernels, and the like.
|
| 236 | Basically, people like me.". It illustrates line-by-line
|
| 237 | conversions from C to Rust.
|
| 238 |
|
| 239 | * Title: **The Rust Book**
|
| 240 |
|
| 241 | :Author: Steve Klabnik and Carol Nichols, with contributions from the
|
| 242 | Rust community
|
| 243 | :URL: https://doc.rust-lang.org/book/
|
| 244 | :Date: Accessed Sep 11 2024
|
| 245 | :Keywords: rust, book.
|
| 246 | :Description: From the website: "This book fully embraces the
|
| 247 | potential of Rust to empower its users. It’s a friendly and
|
| 248 | approachable text intended to help you level up not just your
|
| 249 | knowledge of Rust, but also your reach and confidence as a
|
| 250 | programmer in general. So dive in, get ready to learn—and welcome
|
| 251 | to the Rust community!".
|
| 252 |
|
| 253 | * Title: **Rust for the Polyglot Programmer**
|
| 254 |
|
| 255 | :Author: Ian Jackson
|
| 256 | :URL: https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/index.html
|
| 257 | :Date: December 2022
|
| 258 | :Keywords: rust, blog, tooling.
|
| 259 | :Description: From the website: "There are many guides and
|
| 260 | introductions to Rust. This one is something different: it is
|
| 261 | intended for the experienced programmer who already knows many
|
| 262 | other programming languages. I try to be comprehensive enough to be
|
| 263 | a starting point for any area of Rust, but to avoid going into too
|
| 264 | much detail except where things are not as you might expect. Also
|
| 265 | this guide is not entirely free of opinion, including
|
| 266 | recommendations of libraries (crates), tooling, etc.".
|
| 267 |
|
| 268 | * Title: **Fasterthanli.me**
|
| 269 |
|
| 270 | :Author: Amos Wenger
|
| 271 | :URL: https://fasterthanli.me/
|
| 272 | :Date: Accessed Sep 11 2024
|
| 273 | :Keywords: rust, blog, news.
|
| 274 | :Description: From the website: "I make articles and videos about how
|
| 275 | computers work. My content is long-form, didactic and exploratory
|
| 276 | — and often an excuse to teach Rust!".
|
| 277 |
|
| 278 | * Title: **Comprehensive Rust**
|
| 279 |
|
| 280 | :Author: Android team at Google
|
| 281 | :URL: https://google.github.io/comprehensive-rust/
|
| 282 | :Date: Accessed Sep 13 2024
|
| 283 | :Keywords: rust, blog.
|
| 284 | :Description: From the website: "The course covers the full spectrum
|
| 285 | of Rust, from basic syntax to advanced topics like generics and
|
| 286 | error handling".
|
| 287 |
|
| 288 | * Title: **The Embedded Rust Book**
|
| 289 |
|
| 290 | :Author: Multiple contributors, mostly Jorge Aparicio
|
| 291 | :URL: https://docs.rust-embedded.org/book/
|
| 292 | :Date: Accessed Sep 13 2024
|
| 293 | :Keywords: rust, blog.
|
| 294 | :Description: From the website: "An introductory book about using
|
| 295 | the Rust Programming Language on "Bare Metal" embedded systems,
|
| 296 | such as Microcontrollers".
|
| 297 |
|
| 298 | * Title: **Experiment: Improving the Rust Book**
|
| 299 |
|
| 300 | :Author: Cognitive Engineering Lab at Brown University
|
| 301 | :URL: https://rust-book.cs.brown.edu/
|
| 302 | :Date: Accessed Sep 22 2024
|
| 303 | :Keywords: rust, blog.
|
| 304 | :Description: From the website: "The goal of this experiment is to
|
| 305 | evaluate and improve the content of the Rust Book to help people
|
| 306 | learn Rust more effectively.".
|
| 307 |
|
| 308 | * Title: **New Rustacean** (podcast)
|
| 309 |
|
| 310 | :Author: Chris Krycho
|
| 311 | :URL: https://newrustacean.com/
|
| 312 | :Date: Accessed Sep 22 2024
|
| 313 | :Keywords: rust, podcast.
|
| 314 | :Description: From the website: "This is a podcast about learning
|
| 315 | the programming language Rust—from scratch! Apart from this spiffy
|
| 316 | landing page, all the site content is built with Rust's own
|
| 317 | documentation tools.".
|
| 318 |
|
| 319 | * Title: **Opsem-team** (repository)
|
| 320 |
|
| 321 | :Author: Operational semantics team
|
| 322 | :URL: https://github.com/rust-lang/opsem-team/tree/main
|
| 323 | :Date: Accessed Sep 22 2024
|
| 324 | :Keywords: rust, repository.
|
| 325 | :Description: From the README: "The opsem team is the successor of
|
| 326 | the unsafe-code-guidelines working group and responsible for
|
| 327 | answering many of the difficult questions about the semantics of
|
| 328 | unsafe Rust".
|
| 329 |
|
| 330 | * Title: **You Can't Spell Trust Without Rust**
|
| 331 |
|
| 332 | :Author: Alexis Beingessner
|
| 333 | :URL: https://repository.library.carleton.ca/downloads/1j92g820w?locale=en
|
| 334 | :Date: 2015
|
| 335 | :Keywords: rust, master, thesis.
|
| 336 | :Description: This thesis focuses on Rust's ownership system, which
|
| 337 | ensures memory safety by controlling data manipulation and
|
| 338 | lifetime, while also highlighting its limitations and comparing it
|
| 339 | to similar systems in Cyclone and C++.
|
| 340 |
|
| 341 | * Name: **Linux Plumbers (LPC) 2024 Rust presentations**
|
| 342 |
|
| 343 | :Title: Rust microconference
|
| 344 | :URL: https://lpc.events/event/18/sessions/186/#20240918
|
| 345 | :Title: Rust for Linux
|
| 346 | :URL: https://lpc.events/event/18/contributions/1912/
|
| 347 | :Title: Journey of a C kernel engineer starting a Rust driver project
|
| 348 | :URL: https://lpc.events/event/18/contributions/1911/
|
| 349 | :Title: Crafting a Linux kernel scheduler that runs in user-space
|
| 350 | using Rust
|
| 351 | :URL: https://lpc.events/event/18/contributions/1723/
|
| 352 | :Title: openHCL: A Linux and Rust based paravisor
|
| 353 | :URL: https://lpc.events/event/18/contributions/1956/
|
| 354 | :Keywords: rust, lpc, presentations.
|
| 355 | :Description: A number of LPC talks related to Rust.
|
| 356 |
|
| 357 | * Name: **The Rustacean Station Podcast**
|
| 358 |
|
| 359 | :URL: https://rustacean-station.org/
|
| 360 | :Keywords: rust, podcasts.
|
| 361 | :Description: A community project for creating podcast content for
|
| 362 | the Rust programming language.
|
| 363 |
|
| 364 | -------
|
| 365 |
|
| 366 | This document was originally based on:
|
| 367 |
|
| 368 | https://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
|
| 369 |
|
| 370 | and written by Juan-Mariano de Goyeneche
|