Documentation/kernel-docs.txt: adjust LDD references
[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 Published books
457 ---------------
458
459 .. _ldd3_published:
460
461     * Title: **Linux Device Drivers, 3rd Edition**
462
463       :Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
464       :Publisher: O'Reilly & Associates
465       :Date: 2005
466       :Pages: 636
467       :ISBN: 0-596-00590-3
468       :Notes: Further information in
469         http://www.oreilly.com/catalog/linuxdrive3/
470         PDF format, URL: http://lwn.net/Kernel/LDD3/
471
472     * Title: **Linux Kernel Internals**
473
474       :Author: Michael Beck
475       :Publisher: Addison-Wesley
476       :Date: 1997
477       :ISBN: 0-201-33143-8 (second edition)
478
479     * Title: **The Design of the UNIX Operating System**
480
481       :Author: Maurice J. Bach
482       :Publisher: Prentice Hall
483       :Date: 1986
484       :Pages: 471
485       :ISBN: 0-13-201757-1
486
487     * Title: **The Design and Implementation of the 4.3 BSD UNIX Operating System**
488
489       :Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J
490         Karels, John S. Quarterman
491       :Publisher: Addison-Wesley
492       :Date: 1989 (reprinted with corrections on October, 1990)
493       :ISBN: 0-201-06196-1
494
495     * Title: **The Design and Implementation of the 4.4 BSD UNIX Operating System**
496
497       :Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
498         John S. Quarterman
499       :Publisher: Addison-Wesley
500       :Date: 1996
501       :ISBN: 0-201-54979-4
502
503     * Title: **Programmation Linux 2.0 API systeme et fonctionnement du noyau**
504
505       :Author: Remy Card, Eric Dumas, Franck Mevel
506       :Publisher: Eyrolles
507       :Date: 1997
508       :Pages: 520
509       :ISBN: 2-212-08932-5
510       :Notes: French
511
512     * Title: **Unix internals -- the new frontiers**
513
514       :Author: Uresh Vahalia
515       :Publisher: Prentice Hall
516       :Date: 1996
517       :Pages: 600
518       :ISBN: 0-13-101908-2
519
520     * Title: **Programming for the real world - POSIX.4**
521
522       :Author: Bill O. Gallmeister
523       :Publisher: O'Reilly & Associates, Inc
524       :Date: 1995
525       :Pages: ???
526       :ISBN: I-56592-074-0
527       :Notes: Though not being directly about Linux, Linux aims to be
528         POSIX. Good reference.
529
530     * Title:  **UNIX  Systems  for  Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers**
531
532       :Author: Curt Schimmel
533       :Publisher: Addison Wesley
534       :Date: June, 1994
535       :Pages: 432
536       :ISBN: 0-201-63338-8
537
538     * Title: **Linux Kernel Development, 3rd Edition**
539
540       :Author: Robert Love
541       :Publisher: Addison-Wesley
542       :Date: July, 2010
543       :Pages: 440
544       :ISBN: 978-0672329463
545
546     * Title: **Linux Kernel Networking: Implementation and Theory**
547
548       :Author: Rami Rosen
549       :Publisher: Apress
550       :Date: December 22, 2013
551       :Pages: 648
552       :ISBN: 978-1430261964
553
554     * Title: **Linux Treiber entwickeln**
555
556       :Author: Jürgen Quade, Eva-Katharina Kunst
557       :Publisher: dpunkt.verlag
558       :Date: Oct 2015 (4th edition)
559       :Pages: 688
560       :ISBN: 978-3-86490-288-8
561       :Note: German. The third edition from 2011 is
562          much cheaper and still quite up-to-date.
563
564 Miscellaneous
565 -------------
566
567     * Name: **linux/Documentation**
568
569       :Author: Many.
570       :URL: Just look inside your kernel sources.
571       :Keywords: anything, DocBook.
572       :Description: Documentation that comes with the kernel sources,
573         inside the Documentation directory. Some pages from this document
574         (including this document itself) have been moved there, and might
575         be more up to date than the web version.
576
577     * Name: **Linux Kernel Source Reference**
578
579       :Author: Thomas Graichen.
580       :URL: http://marc.info/?l=linux-kernel&m=96446640102205&w=4
581       :Keywords: CVS, web, cvsweb, browsing source code.
582       :Description: Web interface to a CVS server with the kernel
583         sources. "Here you can have a look at any file of the Linux kernel
584         sources of any version starting from 1.0 up to the (daily updated)
585         current version available. Also you can check the differences
586         between two versions of a file".
587
588     * Name: **Cross-Referencing Linux**
589
590       :URL: http://lxr.free-electrons.com/
591       :Keywords: Browsing source code.
592       :Description: Another web-based Linux kernel source code browser.
593         Lots of cross references to variables and functions. You can see
594         where they are defined and where they are used.
595
596     * Name: **Linux Weekly News**
597
598       :URL: http://lwn.net
599       :Keywords: latest kernel news.
600       :Description: The title says it all. There's a fixed kernel section
601         summarizing developers' work, bug fixes, new features and versions
602         produced during the week. Published every Thursday.
603
604     * Name: **Linux Virtual File System**
605
606       :Author: Peter J. Braam.
607       :URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
608       :Keywords: slides, VFS, inode, superblock, dentry, dcache.
609       :Description: Set of slides, presumably from a presentation on the
610         Linux VFS layer. Covers version 2.1.x, with dentries and the
611         dcache.
612
613     * Name: **The home page of Linux-MM**
614
615       :Author: The Linux-MM team.
616       :URL: http://linux-mm.org/
617       :Keywords: memory management, Linux-MM, mm patches, TODO, docs,
618         mailing list.
619       :Description: Site devoted to Linux Memory Management development.
620         Memory related patches, HOWTOs, links, mm developers... Don't miss
621         it if you are interested in memory management development!
622
623     * Name: **Kernel Newbies IRC Channel and Website**
624
625       :URL: http://www.kernelnewbies.org
626       :Keywords: IRC, newbies, channel, asking doubts.
627       :Description: #kernelnewbies on irc.oftc.net.
628         #kernelnewbies is an IRC network dedicated to the 'newbie'
629         kernel hacker. The audience mostly consists of people who are
630         learning about the kernel, working on kernel projects or
631         professional kernel hackers that want to help less seasoned kernel
632         people.
633         #kernelnewbies is on the OFTC IRC Network.
634         Try irc.oftc.net as your server and then /join #kernelnewbies.
635         The kernelnewbies website also hosts articles, documents, FAQs...
636
637     * Name: **linux-kernel mailing list archives and search engines**
638
639       :URL: http://vger.kernel.org/vger-lists.html
640       :URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
641       :URL: http://groups.google.com/group/mlist.linux.kernel
642       :Keywords: linux-kernel, archives, search.
643       :Description: Some of the linux-kernel mailing list archivers. If
644         you have a better/another one, please let me know.
645
646 -------
647
648 Document last updated on Mon 2016-Sep-19
649
650 This document is based on:
651  http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html