About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / kernel-docs.txt

Based on kernel version 2.6.25. Page generated on 2008-04-18 21:22 EST.

1	
2	    Index of Documentation for People Interested in Writing and/or
3	
4	                   Understanding the Linux Kernel.
5	
6	          Juan-Mariano de Goyeneche <jmseyas[AT]dit.upm[DOT]es>
7	
8	/*
9	 * The latest version of this document may be found at:
10	 *   http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
11	 */
12	
13	   The need for a document like this one became apparent in the
14	   linux-kernel mailing list as the same questions, asking for pointers
15	   to information, appeared again and again.
16	   
17	   Fortunately, as more and more people get to GNU/Linux, more and more
18	   get interested in the Kernel. But reading the sources is not always
19	   enough. It is easy to understand the code, but miss the concepts, the
20	   philosophy and design decisions behind this code.
21	   
22	   Unfortunately, not many documents are available for beginners to
23	   start. And, even if they exist, there was no "well-known" place which
24	   kept track of them. These lines try to cover this lack. All documents
25	   available on line known by the author are listed, while some reference
26	   books are also mentioned.
27	   
28	   PLEASE, if you know any paper not listed here or write a new document,
29	   send me an e-mail, and I'll include a reference to it here. Any
30	   corrections, ideas or comments are also welcomed.
31	   
32	   The papers that follow are listed in no particular order. All are
33	   cataloged with the following fields: the document's "Title", the
34	   "Author"/s, the "URL" where they can be found, some "Keywords" helpful
35	   when searching for specific topics, and a brief "Description" of the
36	   Document.
37	   
38	   Enjoy!
39	   
40	     ON-LINE DOCS:
41	       
42	     * Title: "Linux Device Drivers, Third Edition"
43	       Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
44	       URL: http://lwn.net/Kernel/LDD3/
45	       Description: A 600-page book covering the (2.6.10) driver
46	       programming API and kernel hacking in general.  Available under the
47	       Creative Commons Attribution-ShareAlike 2.0 license.
48	
49	     * Title: "The Linux Kernel"
50	       Author: David A. Rusling.
51	       URL: http://www.tldp.org/LDP/tlk/tlk.html
52	       Keywords: everything!, book.
53	       Description: On line, 200 pages book describing most aspects of
54	       the Linux Kernel. Probably, the first reference for beginners.
55	       Lots of illustrations explaining data structures use and
56	       relationships in the purest Richard W. Stevens' style. Contents:
57	       "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
58	       4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
59	       7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
60	       File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
61	       13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
62	       Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
63	       General Public License, Glossary". In short: a must have.
64	
65	     * Title: "Linux Device Drivers, 2nd Edition"
66	       Author: Alessandro Rubini and Jonathan Corbet.
67	       URL: http://www.xml.com/ldd/chapter/book/index.html
68	       Keywords: device drivers, modules, debugging, memory, hardware,
69	       interrupt handling, char drivers, block drivers, kmod, mmap, DMA,
70	       buses.
71	       Description: O'Reilly's popular book, now also on-line under the
72	       GNU Free Documentation License.
73	       Notes: You can also buy it in paper-form from O'Reilly. See below
74	       under BOOKS (Not on-line).
75	
76	     * Title: "Conceptual Architecture of the Linux Kernel"
77	       Author: Ivan T. Bowman.
78	       URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a1.html
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	       Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
87	       URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a2.html
88	       Keywords: concrete architecture, extracted design, reverse
89	       engineering, system structure, dependencies.
90	       Description: Concrete architecture of the Linux kernel,
91	       automatically extracted from the source code. Very detailed. Good
92	       figures. Gives good overall kernel understanding. This papers
93	       focus on lower details than its predecessor (files, variables...).
94	
95	     * Title: "Linux as a Case Study: Its Extracted Software
96	       Architecture"
97	       Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
98	       URL: http://plg.uwaterloo.ca/~itbowman/papers/linuxcase.html
99	       Keywords: software architecture, architecture recovery,
100	       redocumentation.
101	       Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
102	       1999. A mixture of the previous two documents from the same
103	       author.
104	
105	     * Title: "Overview of the Virtual File System"
106	       Author: Richard Gooch.
107	       URL: http://www.atnf.csiro.au/~rgooch/linux/vfs.txt
108	       Keywords: VFS, File System, mounting filesystems, opening files,
109	       dentries, dcache.
110	       Description: Brief introduction to the Linux Virtual File System.
111	       What is it, how it works, operations taken when opening a file or
112	       mounting a file system and description of important data
113	       structures explaining the purpose of each of their entries.
114	
115	     * Title: "The Linux RAID-1, 4, 5 Code"
116	       Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
117	       URL: http://www.linuxjournal.com/article.php?sid=2391
118	       Keywords: RAID, MD driver.
119	       Description: Linux Journal Kernel Korner article. Here is it's
120	       abstract: "A description of the implementation of the RAID-1,
121	       RAID-4 and RAID-5 personalities of the MD device driver in the
122	       Linux kernel, providing users with high performance and reliable,
123	       secondary-storage capability using software".
124	
125	     * Title: "Dynamic Kernels: Modularized Device Drivers"
126	       Author: Alessandro Rubini.
127	       URL: http://www.linuxjournal.com/article.php?sid=1219
128	       Keywords: device driver, module, loading/unloading modules,
129	       allocating resources.
130	       Description: Linux Journal Kernel Korner article. Here is it's
131	       abstract: "This is the first of a series of four articles
132	       co-authored by Alessandro Rubini and Georg Zezchwitz which present
133	       a practical approach to writing Linux device drivers as kernel
134	       loadable modules. This installment presents an introduction to the
135	       topic, preparing the reader to understand next month's
136	       installment".
137	
138	     * Title: "Dynamic Kernels: Discovery"
139	       Author: Alessandro Rubini.
140	       URL: http://www.linuxjournal.com/article.php?sid=1220
141	       Keywords: character driver, init_module, clean_up module,
142	       autodetection, mayor number, minor number, file operations,
143	       open(), close().
144	       Description: Linux Journal Kernel Korner article. Here is it's
145	       abstract: "This article, the second of four, introduces part of
146	       the actual code to create custom module implementing a character
147	       device driver. It describes the code for module initialization and
148	       cleanup, as well as the open() and close() system calls".
149	
150	     * Title: "The Devil's in the Details"
151	       Author: Georg v. Zezschwitz and Alessandro Rubini.
152	       URL: http://www.linuxjournal.com/article.php?sid=1221
153	       Keywords: read(), write(), select(), ioctl(), blocking/non
154	       blocking mode, interrupt handler.
155	       Description: Linux Journal Kernel Korner article. Here is it's
156	       abstract: "This article, the third of four on writing character
157	       device drivers, introduces concepts of reading, writing, and using
158	       ioctl-calls".
159	
160	     * Title: "Dissecting Interrupts and Browsing DMA"
161	       Author: Alessandro Rubini and Georg v. Zezschwitz.
162	       URL: http://www.linuxjournal.com/article.php?sid=1222
163	       Keywords: interrupts, irqs, DMA, bottom halves, task queues.
164	       Description: Linux Journal Kernel Korner article. Here is it's
165	       abstract: "This is the fourth in a series of articles about
166	       writing character device drivers as loadable kernel modules. This
167	       month, we further investigate the field of interrupt handling.
168	       Though it is conceptually simple, practical limitations and
169	       constraints make this an ``interesting'' part of device driver
170	       writing, and several different facilities have been provided for
171	       different situations. We also investigate the complex topic of
172	       DMA".
173	
174	     * Title: "Device Drivers Concluded"
175	       Author: Georg v. Zezschwitz.
176	       URL: http://www.linuxjournal.com/article.php?sid=1287
177	       Keywords: address spaces, pages, pagination, page management,
178	       demand loading, swapping, memory protection, memory mapping, mmap,
179	       virtual memory areas (VMAs), vremap, PCI.
180	       Description: Finally, the above turned out into a five articles
181	       series. This latest one's introduction reads: "This is the last of
182	       five articles about character device drivers. In this final
183	       section, Georg deals with memory mapping devices, beginning with
184	       an overall description of the Linux memory management concepts".
185	
186	     * Title: "Network Buffers And Memory Management"
187	       Author: Alan Cox.
188	       URL: http://www.linuxjournal.com/article.php?sid=1312
189	       Keywords: sk_buffs, network devices, protocol/link layer
190	       variables, network devices flags, transmit, receive,
191	       configuration, multicast.
192	       Description: Linux Journal Kernel Korner. Here is the abstract:
193	       "Writing a network device driver for Linux is fundamentally
194	       simple---most of the complexity (other than talking to the
195	       hardware) involves managing network packets in memory".
196	       
197	     * Title: "Writing Linux Device Drivers"
198	       Author: Michael K. Johnson.
199	       URL: http://users.evitech.fi/~tk/rtos/writing_linux_device_d.html
200	       Keywords: files, VFS, file operations, kernel interface, character
201	       vs block devices, I/O access, hardware interrupts, DMA, access to
202	       user memory, memory allocation, timers.
203	       Description: Introductory 50-minutes (sic) tutorial on writing
204	       device drivers. 12 pages written by the same author of the "Kernel
205	       Hackers' Guide" which give a very good overview of the topic.
206	       
207	     * Title: "The Venus kernel interface"
208	       Author: Peter J. Braam.
209	       URL:
210	       http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
211	       Keywords: coda, filesystem, venus, cache manager.
212	       Description: "This document describes the communication between
213	       Venus and kernel level file system code needed for the operation
214	       of the Coda filesystem. This version document is meant to describe
215	       the current interface (version 1.0) as well as improvements we
216	       envisage".
217	
218	     * Title: "Programming PCI-Devices under Linux"
219	       Author: Claus Schroeter.
220	       URL:
221	       ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps.gz
222	       Keywords: PCI, device, busmastering.
223	       Description: 6 pages tutorial on PCI programming under Linux.
224	       Gives the basic concepts on the architecture of the PCI subsystem,
225	       as long as basic functions and macros to read/write the devices
226	       and perform busmastering.
227	
228	     * Title: "Writing Character Device Driver for Linux"
229	       Author: R. Baruch and C. Schroeter.
230	       URL:
231	       ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers.ps.gz
232	       Keywords: character device drivers, I/O, signals, DMA, accessing
233	       ports in user space, kernel environment.
234	       Description: 68 pages paper on writing character drivers. A little
235	       bit old (1.993, 1.994) although still useful.
236	
237	     * Title: "Design and Implementation of the Second Extended
238	       Filesystem"
239	       Author: Rémy Card, Theodore Ts'o, Stephen Tweedie.
240	       URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
241	       Keywords: ext2, linux fs history, inode, directory, link, devices,
242	       VFS, physical structure, performance, benchmarks, ext2fs library,
243	       ext2fs tools, e2fsck.
244	       Description: Paper written by three of the top ext2 hackers.
245	       Covers Linux filesystems history, ext2 motivation, ext2 features,
246	       design, physical structure on disk, performance, benchmarks,
247	       e2fsck's passes description... A must read!
248	       Notes: This paper was first published in the Proceedings of the
249	       First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
250	
251	     * Title: "Analysis of the Ext2fs structure"
252	       Author: Louis-Dominique Dubeau.
253	       URL: http://www.nondot.org/sabre/os/files/FileSystems/ext2fs/
254	       Keywords: ext2, filesystem, ext2fs.
255	       Description: Description of ext2's blocks, directories, inodes,
256	       bitmaps, invariants...
257	
258	     * Title: "Journaling the Linux ext2fs Filesystem"
259	       Author: Stephen C. Tweedie.
260	       URL:
261	       ftp://ftp.uk.linux.org/pub/linux/sct/fs/jfs/journal-design.ps.gz
262	       Keywords: ext3, journaling.
263	       Description: Excellent 8-pages paper explaining the journaling
264	       capabilities added to ext2 by the author, showing different
265	       problems faced and the alternatives chosen.
266	
267	     * Title: "Kernel API changes from 2.0 to 2.2"
268	       Author: Richard Gooch.
269	       URL:
270	       http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.2.html
271	       Keywords: 2.2, changes.
272	       Description: Kernel functions/structures/variables which changed
273	       from 2.0.x to 2.2.x.
274	
275	     * Title: "Kernel API changes from 2.2 to 2.4"
276	       Author: Richard Gooch.
277	       URL:
278	       http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.4.html
279	       Keywords: 2.4, changes.
280	       Description: Kernel functions/structures/variables which changed
281	       from 2.2.x to 2.4.x.
282	       
283	     * Title: "Linux Kernel Module Programming Guide"
284	       Author: Ori Pomerantz.
285	       URL: http://tldp.org/LDP/lkmpg/2.6/html/index.html
286	       Keywords: modules, GPL book, /proc, ioctls, system calls,
287	       interrupt handlers .
288	       Description: Very nice 92 pages GPL book on the topic of modules
289	       programming. Lots of examples.
290	       
291	     * Title: "I/O Event Handling Under Linux"
292	       Author: Richard Gooch.
293	       URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
294	       Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
295	       event queues.
296	       Description: From the Introduction: "I/O Event handling is about
297	       how your Operating System allows you to manage a large number of
298	       open files (file descriptors in UNIX/POSIX, or FDs) in your
299	       application. You want the OS to notify you when FDs become active
300	       (have data ready to be read or are ready for writing). Ideally you
301	       want a mechanism that is scalable. This means a large number of
302	       inactive FDs cost very little in memory and CPU time to manage".
303	       
304	     * Title: "The Kernel Hacking HOWTO"
305	       Author: Various Talented People, and Rusty.
306	       Location: in kernel tree, Documentation/DocBook/kernel-hacking/
307	       (must be built as "make {htmldocs | psdocs | pdfdocs})
308	       Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
309	       symbols, return conventions.
310	       Description: From the Introduction: "Please understand that I
311	       never wanted to write this document, being grossly underqualified,
312	       but I always wanted to read it, and this was the only way. I
313	       simply explain some best practices, and give reading entry-points
314	       into the kernel sources. I avoid implementation details: that's
315	       what the code is for, and I ignore whole tracts of useful
316	       routines. This document assumes familiarity with C, and an
317	       understanding of what the kernel is, and how it is used. It was
318	       originally written for the 2.3 kernels, but nearly all of it
319	       applies to 2.2 too; 2.0 is slightly different".
320	       
321	     * Title: "Writing an ALSA Driver"
322	       Author: Takashi Iwai <tiwai[AT]suse[DOT]de>
323	       URL: http://www.alsa-project.org/~iwai/writing-an-alsa-driver/index.html
324	       Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
325	       Description: Advanced Linux Sound Architecture for developers,
326	       both at kernel and user-level sides. ALSA is the Linux kernel
327	       sound architecture in the 2.6 kernel version.
328	       
329	     * Title: "Programming Guide for Linux USB Device Drivers"
330	       Author: Detlef Fliegl.
331	       URL: http://usb.in.tum.de/usbdoc/
332	       Keywords: USB, universal serial bus.
333	       Description: A must-read. From the Preface: "This document should
334	       give detailed information about the current state of the USB
335	       subsystem and its API for USB device drivers. The first section
336	       will deal with the basics of USB devices. You will learn about
337	       different types of devices and their properties. Going into detail
338	       you will see how USB devices communicate on the bus. The second
339	       section gives an overview of the Linux USB subsystem [2] and the
340	       device driver framework. Then the API and its data structures will
341	       be explained step by step. The last section of this document
342	       contains a reference of all API calls and their return codes".
343	       Notes: Beware: the main page states: "This document may not be
344	       published, printed or used in excerpts without explicit permission
345	       of the author". Fortunately, it may still be read...
346	
347	     * Title: "Linux Kernel Mailing List Glossary"
348	       Author: various
349	       URL: http://kernelnewbies.org/glossary/
350	       Keywords: glossary, terms, linux-kernel.
351	       Description: From the introduction: "This glossary is intended as
352	       a brief description of some of the acronyms and terms you may hear
353	       during discussion of the Linux kernel".
354	       
355	     * Title: "Linux Kernel Locking HOWTO"
356	       Author: Various Talented People, and Rusty.
357	       Location: in kernel tree, Documentation/DocBook/kernel-locking/
358	       (must be built as "make {htmldocs | psdocs | pdfdocs})
359	       Keywords: locks, locking, spinlock, semaphore, atomic, race
360	       condition, bottom halves, tasklets, softirqs.
361	       Description: The title says it all: document describing the
362	       locking system in the Linux Kernel either in uniprocessor or SMP
363	       systems.
364	       Notes: "It was originally written for the later (>2.3.47) 2.3
365	       kernels, but most of it applies to 2.2 too; 2.0 is slightly
366	       different". Freely redistributable under the conditions of the GNU
367	       General Public License.
368	
369	     * Title: "Global spinlock list and usage"
370	       Author: Rick Lindsley.
371	       URL: http://lse.sourceforge.net/lockhier/global-spin-lock
372	       Keywords: spinlock.
373	       Description: This is an attempt to document both the existence and
374	       usage of the spinlocks in the Linux 2.4.5 kernel. Comprehensive
375	       list of spinlocks showing when they are used, which functions
376	       access them, how each lock is acquired, under what conditions it
377	       is held, whether interrupts can occur or not while it is held...
378	
379	     * Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New
380	       Features "
381	       Author: Alan Cox.
382	       URL: http://www.linux-mag.com/1999-05/gear_01.html
383	       Keywords: ports, porting.
384	       Description: Article from Linux Magazine on porting from 2.0 to
385	       2.2 kernels.
386	
387	     * Title: "Porting Device Drivers To Linux 2.2: part II"
388	       Author: Alan Cox.
389	       URL: http://www.linux-mag.com/1999-06/gear_01.html
390	       Keywords: ports, porting.
391	       Description: Second part on porting from 2.0 to 2.2 kernels.
392	
393	     * Title: "How To Make Sure Your Driver Will Work On The Power
394	       Macintosh"
395	       Author: Paul Mackerras.
396	       URL: http://www.linux-mag.com/1999-07/gear_01.html
397	       Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
398	       Description: The title says it all.
399	
400	     * Title: "An Introduction to SCSI Drivers"
401	       Author: Alan Cox.
402	       URL: http://www.linux-mag.com/1999-08/gear_01.html
403	       Keywords: SCSI, device, driver.
404	       Description: The title says it all.
405	
406	     * Title: "Advanced SCSI Drivers And Other Tales"
407	       Author: Alan Cox.
408	       URL: http://www.linux-mag.com/1999-09/gear_01.html
409	       Keywords: SCSI, device, driver, advanced.
410	       Description: The title says it all.
411	
412	     * Title: "Writing Linux Mouse Drivers"
413	       Author: Alan Cox.
414	       URL: http://www.linux-mag.com/1999-10/gear_01.html
415	       Keywords: mouse, driver, gpm.
416	       Description: The title says it all.
417	
418	     * Title: "More on Mouse Drivers"
419	       Author: Alan Cox.
420	       URL: http://www.linux-mag.com/1999-11/gear_01.html
421	       Keywords: mouse, driver, gpm, races, asynchronous I/O.
422	       Description: The title still says it all.
423	
424	     * Title: "Writing Video4linux Radio Driver"
425	       Author: Alan Cox.
426	       URL: http://www.linux-mag.com/1999-12/gear_01.html
427	       Keywords: video4linux, driver, radio, radio devices.
428	       Description: The title says it all.
429	
430	     * Title: "Video4linux Drivers, Part 1: Video-Capture Device"
431	       Author: Alan Cox.
432	       URL: http://www.linux-mag.com/2000-01/gear_01.html
433	       Keywords: video4linux, driver, video capture, capture devices,
434	       camera driver.
435	       Description: The title says it all.
436	
437	     * Title: "Video4linux Drivers, Part 2: Video-capture Devices"
438	       Author: Alan Cox.
439	       URL: http://www.linux-mag.com/2000-02/gear_01.html
440	       Keywords: video4linux, driver, video capture, capture devices,
441	       camera driver, control, query capabilities, capability, facility.
442	       Description: The title says it all.
443	
444	     * Title: "PCI Management in Linux 2.2"
445	       Author: Alan Cox.
446	       URL: http://www.linux-mag.com/2000-03/gear_01.html
447	       Keywords: PCI, bus, bus-mastering.
448	       Description: The title says it all.
449	
450	     * Title: "Linux 2.4 Kernel Internals"
451	       Author: Tigran Aivazian and Christoph Hellwig.
452	       URL: http://www.moses.uklinux.net/patches/lki.html
453	       Keywords: Linux, kernel, booting, SMB boot, VFS, page cache.
454	       Description: A little book used for a short training course.
455	       Covers building the kernel image, booting (including SMP bootup),
456	       process management, VFS and more.
457	
458	     * Title: "Linux IP Networking. A Guide to the Implementation and
459	       Modification of the Linux Protocol Stack."
460	       Author: Glenn Herrin.
461	       URL: http://www.cs.unh.edu/cnrg/gherrin
462	       Keywords: network, networking, protocol, IP, UDP, TCP, connection,
463	       socket, receiving, transmitting, forwarding, routing, packets,
464	       modules, /proc, sk_buff, FIB, tags.
465	       Description: Excellent paper devoted to the Linux IP Networking,
466	       explaining anything from the kernel's to the user space
467	       configuration tools' code. Very good to get a general overview of
468	       the kernel networking implementation and understand all steps
469	       packets follow from the time they are received at the network
470	       device till they are delivered to applications. The studied kernel
471	       code is from 2.2.14 version. Provides code for a working packet
472	       dropper example.
473	       
474	     * Title: "Get those boards talking under Linux."
475	       Author: Alex Ivchenko.
476	       URL: http://www.edn.com/article/CA46968.html
477	       Keywords: data-acquisition boards, drivers, modules, interrupts,
478	       memory allocation.
479	       Description: Article written for people wishing to make their data
480	       acquisition boards work on their GNU/Linux machines. Gives a basic
481	       overview on writing drivers, from the naming of functions to
482	       interrupt handling.
483	       Notes: Two-parts article. Part II is at
484	       URL: http://www.edn.com/article/CA46998.html
485	       
486	     * Title: "Linux PCMCIA Programmer's Guide"
487	       Author: David Hinds.
488	       URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
489	       Keywords: PCMCIA.
490	       Description: "This document describes how to write kernel device
491	       drivers for the Linux PCMCIA Card Services interface. It also
492	       describes how to write user-mode utilities for communicating with
493	       Card Services.
494	
495	     * Title: "The Linux Kernel NFSD Implementation"
496	       Author: Neil Brown.
497	       URL:
498	       http://www.cse.unsw.edu.au/~neilb/oss/linux-commentary/nfsd.html
499	       Keywords: knfsd, nfsd, NFS, RPC, lockd, mountd, statd.
500	       Description: The title says it all.
501	       Notes: Covers knfsd's version 1.4.7 (patch against 2.2.7 kernel).
502	       
503	     * Title: "A Linux vm README"
504	       Author: Kanoj Sarcar.
505	       URL: http://reality.sgi.com/kanoj_engr/vm229.html
506	       Keywords: virtual memory, mm, pgd, vma, page, page flags, page
507	       cache, swap cache, kswapd.
508	       Description: Telegraphic, short descriptions and definitions
509	       relating the Linux virtual memory implementation.
510	       
511	     * Title: "(nearly) Complete Linux Loadable Kernel Modules. The
512	       definitive guide for hackers, virus coders and system
513	       administrators."
514	       Author: pragmatic/THC.
515	       URL: http://packetstormsecurity.org/docs/hack/LKM_HACKING.html
516	       Keywords: syscalls, intercept, hide, abuse, symbol table.
517	       Description: Interesting paper on how to abuse the Linux kernel in
518	       order to intercept and modify syscalls, make
519	       files/directories/processes invisible, become root, hijack ttys,
520	       write kernel modules based virus... and solutions for admins to
521	       avoid all those abuses.
522	       Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
523	       kernels.
524	       
525	     BOOKS: (Not on-line)
526	   
527	     * Title: "Linux Device Drivers"
528	       Author: Alessandro Rubini.
529	       Publisher: O'Reilly & Associates.
530	       Date: 1998.
531	       Pages: 439.
532	       ISBN: 1-56592-292-1
533	       
534	     * Title: "Linux Device Drivers, 2nd Edition"
535	       Author: Alessandro Rubini and Jonathan Corbet.
536	       Publisher: O'Reilly & Associates.
537	       Date: 2001.
538	       Pages: 586.
539	       ISBN: 0-59600-008-1
540	       Notes: Further information in
541	       http://www.oreilly.com/catalog/linuxdrive2/
542	
543	     * Title: "Linux Device Drivers, 3nd Edition"
544	       Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
545	       Publisher: O'Reilly & Associates.
546	       Date: 2005.
547	       Pages: 636.
548	       ISBN: 0-596-00590-3
549	       Notes: Further information in
550	       http://www.oreilly.com/catalog/linuxdrive3/
551	       PDF format, URL: http://lwn.net/Kernel/LDD3/
552	
553	     * Title: "Linux Kernel Internals"
554	       Author: Michael Beck.
555	       Publisher: Addison-Wesley.
556	       Date: 1997.
557	       ISBN: 0-201-33143-8 (second edition)
558	       
559	     * Title: "The Design of the UNIX Operating System"
560	       Author: Maurice J. Bach.
561	       Publisher: Prentice Hall.
562	       Date: 1986.
563	       Pages: 471.
564	       ISBN: 0-13-201757-1
565	       
566	     * Title: "The Design and Implementation of the 4.3 BSD UNIX
567	       Operating System"
568	       Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
569	       Karels, John S. Quarterman.
570	       Publisher: Addison-Wesley.
571	       Date: 1989 (reprinted with corrections on October, 1990).
572	       ISBN: 0-201-06196-1
573	       
574	     * Title: "The Design and Implementation of the 4.4 BSD UNIX
575	       Operating System"
576	       Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
577	       John S. Quarterman.
578	       Publisher: Addison-Wesley.
579	       Date: 1996.
580	       ISBN: 0-201-54979-4
581	       
582	     * Title: "Programmation Linux 2.0 API systeme et fonctionnement du
583	       noyau"
584	       Author: Remy Card, Eric Dumas, Franck Mevel.
585	       Publisher: Eyrolles.
586	       Date: 1997.
587	       Pages: 520.
588	       ISBN: 2-212-08932-5
589	       Notes: French.
590	
591	     * Title: "Unix internals -- the new frontiers"
592	       Author: Uresh Vahalia.
593	       Publisher: Prentice Hall.
594	       Date: 1996.
595	       Pages: 600.
596	       ISBN: 0-13-101908-2
597	
598	     * Title:  "The  Design  and Implementation of the 4.4 BSD UNIX
599	       Operating System"
600	       Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
601	       John S. Quarterman.
602	       Publisher: Addison-Wesley.
603	       Date: 1996.
604	       ISBN: 0-201-54979-4
605	
606	     * Title: "Programming for the real world - POSIX.4"
607	       Author: Bill O. Gallmeister.
608	       Publisher: O'Reilly & Associates, Inc..
609	       Date: 1995.
610	       Pages: ???.
611	       ISBN: I-56592-074-0
612	       Notes: Though not being directly about Linux, Linux aims to be
613	       POSIX. Good reference.
614	
615	     * Title:  "UNIX  Systems  for  Modern Architectures: Symmetric
616	       Multiprocesssing and Caching for Kernel Programmers"
617	       Author: Curt Schimmel.
618	       Publisher: Addison Wesley.
619	       Date: June, 1994.
620	       Pages: 432.
621	       ISBN: 0-201-63338-8
622	
623	     * Title:  "The  Design  and Implementation of the 4.3 BSD UNIX
624	       Operating System"
625	       Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
626	       Karels, John S. Quarterman.
627	       Publisher: Addison-Wesley.
628	       Date: 1989 (reprinted with corrections on October, 1990).
629	       ISBN: 0-201-06196-1
630	
631	     * Title: "The Design of the UNIX Operating System"
632	       Author: Maurice J. Bach.
633	       Publisher: Prentice Hall.
634	       Date: 1986.
635	       Pages: 471.
636	       ISBN: 0-13-201757-1
637	
638	     MISCELLANEOUS:
639	
640	     * Name: linux/Documentation
641	       Author: Many.
642	       URL: Just look inside your kernel sources.
643	       Keywords: anything, DocBook.
644	       Description: Documentation that comes with the kernel sources,
645	       inside the Documentation directory. Some pages from this document
646	       (including this document itself) have been moved there, and might
647	       be more up to date than the web version.
648	
649	     * Name: "Linux Source Driver"
650	       URL: http://lsd.linux.cz
651	       Keywords: Browsing source code.
652	       Description: "Linux Source Driver (LSD) is an application, which
653	       can make browsing source codes of Linux kernel easier than you can
654	       imagine. You can select between multiple versions of kernel (e.g.
655	       0.01, 1.0.0, 2.0.33, 2.0.34pre13, 2.0.0, 2.1.101 etc.). With LSD
656	       you can search Linux kernel (fulltext, macros, types, functions
657	       and variables) and LSD can generate patches for you on the fly
658	       (files, directories or kernel)".
659	
660	     * Name: "Linux Kernel Source Reference"
661	       Author: Thomas Graichen.
662	       URL: http://innominate.org/~graichen/projects/lksr/
663	       Keywords: CVS, web, cvsweb, browsing source code.
664	       Description: Web interface to a CVS server with the kernel
665	       sources. "Here you can have a look at any file of the Linux kernel
666	       sources of any version starting from 1.0 up to the (daily updated)
667	       current version available. Also you can check the differences
668	       between two versions of a file".
669	
670	     * Name: "Cross-Referencing Linux"
671	       URL: http://lxr.linux.no/source/
672	       Keywords: Browsing source code.
673	       Description: Another web-based Linux kernel source code browser.
674	       Lots of cross references to variables and functions. You can see
675	       where they are defined and where they are used.
676	
677	     * Name: "Linux Weekly News"
678	       URL: http://lwn.net
679	       Keywords: latest kernel news.
680	       Description: The title says it all. There's a fixed kernel section
681	       summarizing developers' work, bug fixes, new features and versions
682	       produced during the week. Published every Thursday.
683	
684	     * Name: "Kernel Traffic"
685	       URL: http://kt.zork.net/kernel-traffic/
686	       Keywords: linux-kernel mailing list, weekly kernel news.
687	       Description: Weekly newsletter covering the most relevant
688	       discussions of the linux-kernel mailing list.
689	
690	     * Name: "CuTTiNG.eDGe.LiNuX"
691	       URL: http://edge.kernelnotes.org
692	       Keywords: changelist.
693	       Description: Site which provides the changelist for every kernel
694	       release. What's new, what's better, what's changed. Myrdraal reads
695	       the patches and describes them. Pointers to the patches are there,
696	       too.
697	
698	     * Name: "New linux-kernel Mailing List FAQ"
699	       URL: http://www.tux.org/lkml/
700	       Keywords: linux-kernel mailing list FAQ.
701	       Description: linux-kernel is a mailing list for developers to
702	       communicate. This FAQ builds on the previous linux-kernel mailing
703	       list FAQ maintained by Frohwalt Egerer, who no longer maintains
704	       it. Read it to see how to join the mailing list. Dozens of
705	       interesting questions regarding the list, Linux, developers (who
706	       is ...?), terms (what is...?) are answered here too. Just read it.
707	
708	     * Name: "Linux Virtual File System"
709	       Author: Peter J. Braam.
710	       URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
711	       Keywords: slides, VFS, inode, superblock, dentry, dcache.
712	       Description: Set of slides, presumably from a presentation on the
713	       Linux VFS layer. Covers version 2.1.x, with dentries and the
714	       dcache.
715	
716	     * Name: "Gary's Encyclopedia - The Linux Kernel"
717	       Author: Gary (I suppose...).
718	       URL: http://www.lisoleg.net/cgi-bin/lisoleg.pl?view=kernel.htm
719	       Keywords: links, not found here?.
720	       Description: Gary's Encyclopedia exists to allow the rapid finding
721	       of documentation and other information of interest to GNU/Linux
722	       users. It has about 4000 links to external pages in 150 major
723	       categories. This link is for kernel-specific links, documents,
724	       sites... Look there if you could not find here what you were
725	       looking for.
726	
727	     * Name: "The home page of Linux-MM"
728	       Author: The Linux-MM team.
729	       URL: http://linux-mm.org/
730	       Keywords: memory management, Linux-MM, mm patches, TODO, docs,
731	       mailing list.
732	       Description: Site devoted to Linux Memory Management development.
733	       Memory related patches, HOWTOs, links, mm developers... Don't miss
734	       it if you are interested in memory management development!
735	
736	     * Name: "Kernel Newbies IRC Channel"
737	       URL: http://www.kernelnewbies.org
738	       Keywords: IRC, newbies, channel, asking doubts.
739	       Description: #kernelnewbies on irc.openprojects.net. From the web
740	       page: "#kernelnewbies is an IRC network dedicated to the 'newbie'
741	       kernel hacker. The audience mostly consists of people who are
742	       learning about the kernel, working on kernel projects or
743	       professional kernel hackers that want to help less seasoned kernel
744	       people. [...] #kernelnewbies is on the Open Projects IRC Network,
745	       try irc.openprojects.net or irc.<country>.openprojects.net as your
746	       server and then /join #kernelnewbies". It also hosts articles,
747	       documents, FAQs...
748	       
749	     * Name: "linux-kernel mailing list archives and search engines"
750	       URL: http://vger.kernel.org/vger-lists.html
751	       URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
752	       URL: http://marc.theaimsgroup.com/?l=linux-kernel
753	       URL: http://groups.google.com/group/mlist.linux.kernel
754	       URL: http://www.cs.helsinki.fi/linux/linux-kernel/
755	       URL: http://www.lib.uaa.alaska.edu/linux-kernel/
756	       Keywords: linux-kernel, archives, search.
757	       Description: Some of the linux-kernel mailing list archivers. If
758	       you have a better/another one, please let me know.
759	     _________________________________________________________________
760	   
761	   Document last updated on Sat 2005-NOV-19
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.