]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blob - Documentation/kernel-docs.txt
Documentation/kernel-docs.txt: some improvements on the ReST output
[mirror_ubuntu-zesty-kernel.git] / Documentation / kernel-docs.txt
1 .. _kernel_docs:
2
3 Index of Documentation for People Interested in Writing and/or Understanding the Linux Kernel
4 =============================================================================================
5
6 Juan-Mariano de Goyeneche <jmseyas@dit.upm.es>
7
8 The need for a document like this one became apparent in the
9 linux-kernel mailing list as the same questions, asking for pointers
10 to information, appeared again and again.
11
12 Fortunately, as more and more people get to GNU/Linux, more and more
13 get interested in the Kernel. But reading the sources is not always
14 enough. It is easy to understand the code, but miss the concepts, the
15 philosophy and design decisions behind this code.
16
17 Unfortunately, not many documents are available for beginners to
18 start. And, even if they exist, there was no "well-known" place which
19 kept track of them. These lines try to cover this lack. All documents
20 available on line known by the author are listed, while some reference
21 books are also mentioned.
22
23 PLEASE, if you know any paper not listed here or write a new document,
24 send me an e-mail, and I'll include a reference to it here. Any
25 corrections, ideas or comments are also welcomed.
26
27 The papers that follow are listed in no particular order. All are
28 cataloged with the following fields: the document's "Title", the
29 "Author"/s, the "URL" where they can be found, some "Keywords" helpful
30 when searching for specific topics, and a brief "Description" of the
31 Document.
32
33 Enjoy!
34
35 On-line docs
36 ------------
37
38 * Title: **Linux Device Drivers, Third Edition**
39
40 :Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
41 :URL: http://lwn.net/Kernel/LDD3/
42 :Description: A 600-page book covering the (2.6.10) driver
43 programming API and kernel hacking in general. Available under the
44 Creative Commons Attribution-ShareAlike 2.0 license.
45
46 * Title: **The Linux Kernel**
47
48 :Author: David A. Rusling.
49 :URL: http://www.tldp.org/LDP/tlk/tlk.html
50 :Keywords: everything!, book.
51 :Description: On line, 200 pages book describing most aspects of
52 the Linux Kernel. Probably, the first reference for beginners.
53 Lots of illustrations explaining data structures use and
54 relationships in the purest Richard W. Stevens' style. Contents:
55 "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
56 4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
57 7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
58 File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
59 13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
60 Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
61 General Public License, Glossary". In short: a must have.
62
63 * Title: **Linux Device Drivers, 2nd Edition**
64
65 :Author: Alessandro Rubini and Jonathan Corbet.
66 :URL: http://www.xml.com/ldd/chapter/book/index.html
67 :Keywords: device drivers, modules, debugging, memory, hardware,
68 interrupt handling, char drivers, block drivers, kmod, mmap, DMA,
69 buses.
70 :Description: O'Reilly's popular book, now also on-line under the
71 GNU Free Documentation License.
72 :Notes: You can also buy it in paper-form from O'Reilly. See below
73 under BOOKS (Not on-line).
74
75 * Title: **Conceptual Architecture of the Linux Kernel**
76
77 :Author: Ivan T. Bowman.
78 :URL: http://plg.uwaterloo.ca/
79 :Keywords: conceptual software architecture, extracted design,
80 reverse engineering, system structure.
81 :Description: Conceptual software architecture of the Linux kernel,
82 automatically extracted from the source code. Very detailed. Good
83 figures. Gives good overall kernel understanding.
84
85 * Title: **Concrete Architecture of the Linux Kernel**
86
87 :Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
88 :URL: http://plg.uwaterloo.ca/
89 :Keywords: concrete architecture, extracted design, reverse
90 engineering, system structure, dependencies.
91 :Description: Concrete architecture of the Linux kernel,
92 automatically extracted from the source code. Very detailed. Good
93 figures. Gives good overall kernel understanding. This papers
94 focus on lower details than its predecessor (files, variables...).
95
96 * Title: **Linux as a Case Study: Its Extracted Software Architecture**
97
98 :Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
99 :URL: http://plg.uwaterloo.ca/
100 :Keywords: software architecture, architecture recovery,
101 redocumentation.
102 :Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
103 1999. A mixture of the previous two documents from the same
104 author.
105
106 * Title: **Overview of the Virtual File System**
107
108 :Author: Richard Gooch.
109 :URL: http://www.mjmwired.net/kernel/Documentation/filesystems/vfs.txt
110 :Keywords: VFS, File System, mounting filesystems, opening files,
111 dentries, dcache.
112 :Description: Brief introduction to the Linux Virtual File System.
113 What is it, how it works, operations taken when opening a file or
114 mounting a file system and description of important data
115 structures explaining the purpose of each of their entries.
116
117 * Title: **The Linux RAID-1, 4, 5 Code**
118
119 :Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
120 :URL: http://www.linuxjournal.com/article.php?sid=2391
121 :Keywords: RAID, MD driver.
122 :Description: Linux Journal Kernel Korner article. Here is its
123 :Abstract: *A description of the implementation of the RAID-1,
124 RAID-4 and RAID-5 personalities of the MD device driver in the
125 Linux kernel, providing users with high performance and reliable,
126 secondary-storage capability using software*.
127
128 * Title: **Dynamic Kernels: Modularized Device Drivers**
129
130 :Author: Alessandro Rubini.
131 :URL: http://www.linuxjournal.com/article.php?sid=1219
132 :Keywords: device driver, module, loading/unloading modules,
133 allocating resources.
134 :Description: Linux Journal Kernel Korner article. Here is its
135 :Abstract: *This is the first of a series of four articles
136 co-authored by Alessandro Rubini and Georg Zezchwitz which present
137 a practical approach to writing Linux device drivers as kernel
138 loadable modules. This installment presents an introduction to the
139 topic, preparing the reader to understand next month's
140 installment*.
141
142 * Title: **Dynamic Kernels: Discovery**
143
144 :Author: Alessandro Rubini.
145 :URL: http://www.linuxjournal.com/article.php?sid=1220
146 :Keywords: character driver, init_module, clean_up module,
147 autodetection, mayor number, minor number, file operations,
148 open(), close().
149 :Description: Linux Journal Kernel Korner article. Here is its
150 :Abstract: *This article, the second of four, introduces part of
151 the actual code to create custom module implementing a character
152 device driver. It describes the code for module initialization and
153 cleanup, as well as the open() and close() system calls*.
154
155 * Title: **On submitting kernel Patches**
156
157 :Author: Andi Kleen
158 :URL: http://halobates.de/on-submitting-kernel-patches.pdf
159 :Keywords: patches, review process, types of submissions, basic rules, case studies
160 :Description: This paper gives several experience values on what types of patches
161 there are and how likley they get merged.
162 :Abstract:
163 [...]. This paper examines some common problems for
164 submitting larger changes and some strategies to avoid problems.
165
166 * Title: **Tracing the Way of Data in a TCP Connection through the Linux Kernel**
167 :Author: Richard Sailer
168 :URL: https://archive.org/details/linux_kernel_data_flow_short_paper
169 :Keywords: Linux Kernel Networking, TCP, tracing, ftrace
170 :Description: A seminar paper explaining ftrace and how to use it for
171 understanding linux kernel internals,
172 illustrated at tracing the way of a TCP packet through the kernel.
173 :Abstract: *This short paper outlines the usage of ftrace a tracing framework
174 as a tool to understand a running Linux system.
175 Having obtained a trace-log a kernel hacker can read and understand
176 source code more determined and with context.
177 In a detailed example this approach is demonstrated in tracing
178 and the way of data in a TCP Connection through the kernel.
179 Finally this trace-log is used as base for more a exact conceptual
180 exploration and description of the Linux TCP/IP implementation.*
181
182 * Title: **The Devil's in the Details**
183
184 :Author: Georg v. Zezschwitz and Alessandro Rubini.
185 :URL: http://www.linuxjournal.com/article.php?sid=1221
186 :Keywords: read(), write(), select(), ioctl(), blocking/non
187 blocking mode, interrupt handler.
188 :Description: Linux Journal Kernel Korner article. Here is its
189 :Abstract: *This article, the third of four on writing character
190 device drivers, introduces concepts of reading, writing, and using
191 ioctl-calls*.
192
193 * Title: **Dissecting Interrupts and Browsing DMA**
194
195 :Author: Alessandro Rubini and Georg v. Zezschwitz.
196 :URL: http://www.linuxjournal.com/article.php?sid=1222
197 :Keywords: interrupts, irqs, DMA, bottom halves, task queues.
198 :Description: Linux Journal Kernel Korner article. Here is its
199 :Abstract: *This is the fourth in a series of articles about
200 writing character device drivers as loadable kernel modules. This
201 month, we further investigate the field of interrupt handling.
202 Though it is conceptually simple, practical limitations and
203 constraints make this an ''interesting'' part of device driver
204 writing, and several different facilities have been provided for
205 different situations. We also investigate the complex topic of
206 DMA*.
207
208 * Title: **Device Drivers Concluded**
209
210 :Author: Georg v. Zezschwitz.
211 :URL: http://www.linuxjournal.com/article.php?sid=1287
212 :Keywords: address spaces, pages, pagination, page management,
213 demand loading, swapping, memory protection, memory mapping, mmap,
214 virtual memory areas (VMAs), vremap, PCI.
215 :Description: Finally, the above turned out into a five articles
216 series. This latest one's introduction reads: "This is the last of
217 five articles about character device drivers. In this final
218 section, Georg deals with memory mapping devices, beginning with
219 an overall description of the Linux memory management concepts".
220
221 * Title: **Network Buffers And Memory Management**
222
223 :Author: Alan Cox.
224 :URL: http://www.linuxjournal.com/article.php?sid=1312
225 :Keywords: sk_buffs, network devices, protocol/link layer
226 variables, network devices flags, transmit, receive,
227 configuration, multicast.
228 :Description: Linux Journal Kernel Korner.
229 :Abstract: *Writing a network device driver for Linux is fundamentally
230 simple---most of the complexity (other than talking to the
231 hardware) involves managing network packets in memory*.
232
233 * Title: **Linux Kernel Hackers' Guide**
234
235 :Author: Michael K. Johnson.
236 :URL: http://www.tldp.org/LDP/khg/HyperNews/get/khg.html
237 :Keywords: device drivers, files, VFS, kernel interface, character vs
238 block devices, hardware interrupts, scsi, DMA, access to user memory,
239 memory allocation, timers.
240 :Description: A guide designed to help you get up to speed on the
241 concepts that are not intuitevly obvious, and to document the internal
242 structures of Linux.
243
244 * Title: **The Venus kernel interface**
245
246 :Author: Peter J. Braam.
247 :URL: http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
248 :Keywords: coda, filesystem, venus, cache manager.
249 :Description: "This document describes the communication between
250 Venus and kernel level file system code needed for the operation
251 of the Coda filesystem. This version document is meant to describe
252 the current interface (version 1.0) as well as improvements we
253 envisage".
254
255 * Title: **Design and Implementation of the Second Extended Filesystem**
256
257 :Author: Rémy Card, Theodore Ts'o, Stephen Tweedie.
258 :URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
259 :Keywords: ext2, linux fs history, inode, directory, link, devices,
260 VFS, physical structure, performance, benchmarks, ext2fs library,
261 ext2fs tools, e2fsck.
262 :Description: Paper written by three of the top ext2 hackers.
263 Covers Linux filesystems history, ext2 motivation, ext2 features,
264 design, physical structure on disk, performance, benchmarks,
265 e2fsck's passes description... A must read!
266 :Notes: This paper was first published in the Proceedings of the
267 First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
268
269 * Title: **Analysis of the Ext2fs structure**
270
271 :Author: Louis-Dominique Dubeau.
272 :URL: http://teaching.csse.uwa.edu.au/units/CITS2002/fs-ext2/
273 :Keywords: ext2, filesystem, ext2fs.
274 :Description: Description of ext2's blocks, directories, inodes,
275 bitmaps, invariants...
276
277 * Title: **Linux Kernel Module Programming Guide**
278
279 :Author: Ori Pomerantz.
280 :URL: http://tldp.org/LDP/lkmpg/2.6/html/index.html
281 :Keywords: modules, GPL book, /proc, ioctls, system calls,
282 interrupt handlers .
283 :Description: Very nice 92 pages GPL book on the topic of modules
284 programming. Lots of examples.
285
286 * Title: **I/O Event Handling Under Linux**
287
288 :Author: Richard Gooch.
289 :Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
290 event queues.
291 :Description: From the Introduction: "I/O Event handling is about
292 how your Operating System allows you to manage a large number of
293 open files (file descriptors in UNIX/POSIX, or FDs) in your
294 application. You want the OS to notify you when FDs become active
295 (have data ready to be read or are ready for writing). Ideally you
296 want a mechanism that is scalable. This means a large number of
297 inactive FDs cost very little in memory and CPU time to manage".
298
299 * Title: **The Kernel Hacking HOWTO**
300
301 :Author: Various Talented People, and Rusty.
302 :Location: in kernel tree, Documentation/DocBook/kernel-hacking.tmpl
303 (must be built as "make {htmldocs | psdocs | pdfdocs})
304 :Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
305 symbols, return conventions.
306 :Description: From the Introduction: "Please understand that I
307 never wanted to write this document, being grossly underqualified,
308 but I always wanted to read it, and this was the only way. I
309 simply explain some best practices, and give reading entry-points
310 into the kernel sources. I avoid implementation details: that's
311 what the code is for, and I ignore whole tracts of useful
312 routines. This document assumes familiarity with C, and an
313 understanding of what the kernel is, and how it is used. It was
314 originally written for the 2.3 kernels, but nearly all of it
315 applies to 2.2 too; 2.0 is slightly different".
316
317 * Title: **Writing an ALSA Driver**
318
319 :Author: Takashi Iwai <tiwai@suse.de>
320 :URL: http://www.alsa-project.org/~iwai/writing-an-alsa-driver/index.html
321 :Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
322 :Description: Advanced Linux Sound Architecture for developers,
323 both at kernel and user-level sides. ALSA is the Linux kernel
324 sound architecture in the 2.6 kernel version.
325
326 * Title: **Linux Kernel Mailing List Glossary**
327
328 :Author: various
329 :URL: http://kernelnewbies.org/glossary/
330 :Keywords: glossary, terms, linux-kernel.
331 :Description: From the introduction: "This glossary is intended as
332 a brief description of some of the acronyms and terms you may hear
333 during discussion of the Linux kernel".
334
335 * Title: **Linux Kernel Locking HOWTO**
336
337 :Author: Various Talented People, and Rusty.
338 :Location: in kernel tree, Documentation/DocBook/kernel-locking.tmpl
339 (must be built as "make {htmldocs | psdocs | pdfdocs})
340 :Keywords: locks, locking, spinlock, semaphore, atomic, race
341 condition, bottom halves, tasklets, softirqs.
342 :Description: The title says it all: document describing the
343 locking system in the Linux Kernel either in uniprocessor or SMP
344 systems.
345 :Notes: "It was originally written for the later (>2.3.47) 2.3
346 kernels, but most of it applies to 2.2 too; 2.0 is slightly
347 different". Freely redistributable under the conditions of the GNU
348 General Public License.
349
350 * Title: **Global spinlock list and usage**
351
352 :Author: Rick Lindsley.
353 :URL: http://lse.sourceforge.net/lockhier/global-spin-lock
354 :Keywords: spinlock.
355 :Description: This is an attempt to document both the existence and
356 usage of the spinlocks in the Linux 2.4.5 kernel. Comprehensive
357 list of spinlocks showing when they are used, which functions
358 access them, how each lock is acquired, under what conditions it
359 is held, whether interrupts can occur or not while it is held...
360
361 * Title: **How To Make Sure Your Driver Will Work On The Power Macintosh**
362
363 :Author: Paul Mackerras.
364 :URL: http://www.linux-mag.com/id/261
365 :Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
366 :Description: The title says it all.
367
368 * Title: **An Introduction to SCSI Drivers**
369
370 :Author: Alan Cox.
371 :URL: http://www.linux-mag.com/id/284
372 :Keywords: SCSI, device, driver.
373 :Description: The title says it all.
374
375 * Title: **Advanced SCSI Drivers And Other Tales**
376
377 :Author: Alan Cox.
378 :URL: http://www.linux-mag.com/id/307
379 :Keywords: SCSI, device, driver, advanced.
380 :Description: The title says it all.
381
382 * Title: **Writing Linux Mouse Drivers**
383
384 :Author: Alan Cox.
385 :URL: http://www.linux-mag.com/id/330
386 :Keywords: mouse, driver, gpm.
387 :Description: The title says it all.
388
389 * Title: **More on Mouse Drivers**
390
391 :Author: Alan Cox.
392 :URL: http://www.linux-mag.com/id/356
393 :Keywords: mouse, driver, gpm, races, asynchronous I/O.
394 :Description: The title still says it all.
395
396 * Title: **Writing Video4linux Radio Driver**
397
398 :Author: Alan Cox.
399 :URL: http://www.linux-mag.com/id/381
400 :Keywords: video4linux, driver, radio, radio devices.
401 :Description: The title says it all.
402
403 * Title: **Video4linux Drivers, Part 1: Video-Capture Device**
404
405 :Author: Alan Cox.
406 :URL: http://www.linux-mag.com/id/406
407 :Keywords: video4linux, driver, video capture, capture devices,
408 camera driver.
409 :Description: The title says it all.
410
411 * Title: **Video4linux Drivers, Part 2: Video-capture Devices**
412
413 :Author: Alan Cox.
414 :URL: http://www.linux-mag.com/id/429
415 :Keywords: video4linux, driver, video capture, capture devices,
416 camera driver, control, query capabilities, capability, facility.
417 :Description: The title says it all.
418
419 * Title: **Linux IP Networking. A Guide to the Implementation and Modification of the Linux Protocol Stack.**
420
421 :Author: Glenn Herrin.
422 :URL: http://www.cs.unh.edu/cnrg/gherrin
423 :Keywords: network, networking, protocol, IP, UDP, TCP, connection,
424 socket, receiving, transmitting, forwarding, routing, packets,
425 modules, /proc, sk_buff, FIB, tags.
426 :Description: Excellent paper devoted to the Linux IP Networking,
427 explaining anything from the kernel's to the user space
428 configuration tools' code. Very good to get a general overview of
429 the kernel networking implementation and understand all steps
430 packets follow from the time they are received at the network
431 device till they are delivered to applications. The studied kernel
432 code is from 2.2.14 version. Provides code for a working packet
433 dropper example.
434
435 * Title: **Linux PCMCIA Programmer's Guide**
436
437 :Author: David Hinds.
438 :URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
439 :Keywords: PCMCIA.
440 :Description: "This document describes how to write kernel device
441 drivers for the Linux PCMCIA Card Services interface. It also
442 describes how to write user-mode utilities for communicating with
443 Card Services.
444
445 * Title: **A Linux vm README**
446
447 :Author: Kanoj Sarcar.
448 :URL: http://kos.enix.org/pub/linux-vmm.html
449 :Keywords: virtual memory, mm, pgd, vma, page, page flags, page
450 cache, swap cache, kswapd.
451 :Description: Telegraphic, short descriptions and definitions
452 relating the Linux virtual memory implementation.
453
454 * Title: **(nearly) Complete Linux Loadable Kernel Modules. The definitive guide for hackers, virus coders and system administrators.**
455
456 :Author: pragmatic/THC.
457 :URL: http://packetstormsecurity.org/docs/hack/LKM_HACKING.html
458 :Keywords: syscalls, intercept, hide, abuse, symbol table.
459 :Description: Interesting paper on how to abuse the Linux kernel in
460 order to intercept and modify syscalls, make
461 files/directories/processes invisible, become root, hijack ttys,
462 write kernel modules based virus... and solutions for admins to
463 avoid all those abuses.
464 :Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
465 kernels.
466
467 Published books
468 ---------------
469
470 * Title: **Linux Device Drivers**
471
472 :Author: Alessandro Rubini
473 :Publisher: O'Reilly & Associates
474 :Date: 1998
475 :Pages: 439
476 :ISBN: 1-56592-292-1
477
478 * Title: **Linux Device Drivers, 2nd Edition**
479
480 :Author: Alessandro Rubini and Jonathan Corbet
481 :Publisher: O'Reilly & Associates
482 :Date: 2001
483 :Pages: 586
484 :ISBN: 0-59600-008-1
485 :Notes: Further information in
486 http://www.oreilly.com/catalog/linuxdrive2/
487
488 * Title: **Linux Device Drivers, 3rd Edition**
489
490 :Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
491 :Publisher: O'Reilly & Associates
492 :Date: 2005
493 :Pages: 636
494 :ISBN: 0-596-00590-3
495 :Notes: Further information in
496 http://www.oreilly.com/catalog/linuxdrive3/
497 PDF format, URL: http://lwn.net/Kernel/LDD3/
498
499 * Title: **Linux Kernel Internals**
500
501 :Author: Michael Beck
502 :Publisher: Addison-Wesley
503 :Date: 1997
504 :ISBN: 0-201-33143-8 (second edition)
505
506 * Title: **The Design of the UNIX Operating System**
507
508 :Author: Maurice J. Bach
509 :Publisher: Prentice Hall
510 :Date: 1986
511 :Pages: 471
512 :ISBN: 0-13-201757-1
513
514 * Title: **The Design and Implementation of the 4.3 BSD UNIX Operating System**
515
516 :Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J
517 Karels, John S. Quarterman
518 :Publisher: Addison-Wesley
519 :Date: 1989 (reprinted with corrections on October, 1990)
520 :ISBN: 0-201-06196-1
521
522 * Title: **The Design and Implementation of the 4.4 BSD UNIX Operating System**
523
524 :Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
525 John S. Quarterman
526 :Publisher: Addison-Wesley
527 :Date: 1996
528 :ISBN: 0-201-54979-4
529
530 * Title: **Programmation Linux 2.0 API systeme et fonctionnement du noyau**
531
532 :Author: Remy Card, Eric Dumas, Franck Mevel
533 :Publisher: Eyrolles
534 :Date: 1997
535 :Pages: 520
536 :ISBN: 2-212-08932-5
537 :Notes: French
538
539 * Title: **Unix internals -- the new frontiers**
540
541 :Author: Uresh Vahalia
542 :Publisher: Prentice Hall
543 :Date: 1996
544 :Pages: 600
545 :ISBN: 0-13-101908-2
546
547 * Title: **Programming for the real world - POSIX.4**
548
549 :Author: Bill O. Gallmeister
550 :Publisher: O'Reilly & Associates, Inc
551 :Date: 1995
552 :Pages: ???
553 :ISBN: I-56592-074-0
554 :Notes: Though not being directly about Linux, Linux aims to be
555 POSIX. Good reference.
556
557 * Title: **UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers**
558
559 :Author: Curt Schimmel
560 :Publisher: Addison Wesley
561 :Date: June, 1994
562 :Pages: 432
563 :ISBN: 0-201-63338-8
564
565 * Title: **Linux Kernel Development, 3rd Edition**
566
567 :Author: Robert Love
568 :Publisher: Addison-Wesley
569 :Date: July, 2010
570 :Pages: 440
571 :ISBN: 978-0672329463
572
573 * Title: **Linux Kernel Networking: Implementation and Theory**
574
575 :Author: Rami Rosen
576 :Publisher: Apress
577 :Date: December 22, 2013
578 :Pages: 648
579 :ISBN: 978-1430261964
580
581 * Title: **Linux Treiber entwickeln**
582
583 :Author: Jürgen Quade, Eva-Katharina Kunst
584 :Publisher: dpunkt.verlag
585 :Date: Oct 2015 (4th edition)
586 :Pages: 688
587 :ISBN: 978-3-86490-288-8
588 :Note: German. The third edition from 2011 is
589 much cheaper and still quite up-to-date.
590
591 Miscellaneous
592 -------------
593
594 * Name: **linux/Documentation**
595
596 :Author: Many.
597 :URL: Just look inside your kernel sources.
598 :Keywords: anything, DocBook.
599 :Description: Documentation that comes with the kernel sources,
600 inside the Documentation directory. Some pages from this document
601 (including this document itself) have been moved there, and might
602 be more up to date than the web version.
603
604 * Name: **Linux Kernel Source Reference**
605
606 :Author: Thomas Graichen.
607 :URL: http://marc.info/?l=linux-kernel&m=96446640102205&w=4
608 :Keywords: CVS, web, cvsweb, browsing source code.
609 :Description: Web interface to a CVS server with the kernel
610 sources. "Here you can have a look at any file of the Linux kernel
611 sources of any version starting from 1.0 up to the (daily updated)
612 current version available. Also you can check the differences
613 between two versions of a file".
614
615 * Name: **Cross-Referencing Linux**
616
617 :URL: http://lxr.free-electrons.com/
618 :Keywords: Browsing source code.
619 :Description: Another web-based Linux kernel source code browser.
620 Lots of cross references to variables and functions. You can see
621 where they are defined and where they are used.
622
623 * Name: **Linux Weekly News**
624
625 :URL: http://lwn.net
626 :Keywords: latest kernel news.
627 :Description: The title says it all. There's a fixed kernel section
628 summarizing developers' work, bug fixes, new features and versions
629 produced during the week. Published every Thursday.
630
631 * Name: **Linux Virtual File System**
632
633 :Author: Peter J. Braam.
634 :URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
635 :Keywords: slides, VFS, inode, superblock, dentry, dcache.
636 :Description: Set of slides, presumably from a presentation on the
637 Linux VFS layer. Covers version 2.1.x, with dentries and the
638 dcache.
639
640 * Name: **The home page of Linux-MM**
641
642 :Author: The Linux-MM team.
643 :URL: http://linux-mm.org/
644 :Keywords: memory management, Linux-MM, mm patches, TODO, docs,
645 mailing list.
646 :Description: Site devoted to Linux Memory Management development.
647 Memory related patches, HOWTOs, links, mm developers... Don't miss
648 it if you are interested in memory management development!
649
650 * Name: **Kernel Newbies IRC Channel and Website**
651
652 :URL: http://www.kernelnewbies.org
653 :Keywords: IRC, newbies, channel, asking doubts.
654 :Description: #kernelnewbies on irc.oftc.net.
655 #kernelnewbies is an IRC network dedicated to the 'newbie'
656 kernel hacker. The audience mostly consists of people who are
657 learning about the kernel, working on kernel projects or
658 professional kernel hackers that want to help less seasoned kernel
659 people.
660 #kernelnewbies is on the OFTC IRC Network.
661 Try irc.oftc.net as your server and then /join #kernelnewbies.
662 The kernelnewbies website also hosts articles, documents, FAQs...
663
664 * Name: **linux-kernel mailing list archives and search engines**
665
666 :URL: http://vger.kernel.org/vger-lists.html
667 :URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
668 :URL: http://groups.google.com/group/mlist.linux.kernel
669 :Keywords: linux-kernel, archives, search.
670 :Description: Some of the linux-kernel mailing list archivers. If
671 you have a better/another one, please let me know.
672
673 -------
674
675 Document last updated on Mon 2016-Sep-19
676
677 This document is based on:
678 http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html