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