Documentation/kernel-docs.txt: some improvements on the ReST output
[cascardo/linux.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