PageRenderTime 43ms CodeModel.GetById 12ms app.highlight 11ms RepoModel.GetById 2ms app.codeStats 0ms

/Documentation/kernel-docs.txt

https://bitbucket.org/evzijst/gittest
Plain Text | 777 lines | 686 code | 91 blank | 0 comment | 0 complexity | 4371d7028f83499fc49701b127f94804 MD5 | raw file
  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@dit.upm.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: "The Linux Kernel Hackers' Guide"
 66       Author: Michael K.Johnson and others.
 67       URL: http://www.tldp.org/LDP/khg/HyperNews/get/khg.html
 68       Keywords: everything!
 69       Description: No more Postscript book-like version. Only HTML now.
 70       Many people have contributed. The interface is similar to web
 71       available mailing lists archives. You can find some articles and
 72       then some mails asking questions about them and/or complementing
 73       previous contributions. A little bit anarchic in this aspect, but
 74       with some valuable information in some cases.
 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 arquitecture, extracted design,
 80       reverse engineering, system structure.
 81       Description: Conceptual software arquitecture 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 arquitecture, extracted design, reverse
 89       engineering, system structure, dependencies.
 90       Description: Concrete arquitecture 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://www2.linuxjournal.com/lj-issues/issue44/2391.html
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://www2.linuxjournal.com/lj-issues/issue23/1219.html
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://www2.linuxjournal.com/lj-issues/issue24/1220.html
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://www2.linuxjournal.com/lj-issues/issue25/1221.html
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://www2.linuxjournal.com/lj-issues/issue26/1222.html
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://www2.linuxjournal.com/lj-issues/issue28/1287.html
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://www2.linuxjournal.com/lj-issues/issue30/1312.html
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://people.redhat.com/johnsonm/devices.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
222       .gz
223       Keywords: PCI, device, busmastering.
224       Description: 6 pages tutorial on PCI programming under Linux.
225       Gives the basic concepts on the architecture of the PCI subsystem,
226       as long as basic functions and macros to read/write the devices
227       and perform busmastering.
228       
229     * Title: "Writing Character Device Driver for Linux"
230       Author: R. Baruch and C. Schroeter.
231       URL:
232       ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers
233       .ps.gz
234       Keywords: character device drivers, I/O, signals, DMA, accessing
235       ports in user space, kernel environment.
236       Description: 68 pages paper on writing character drivers. A little
237       bit old (1.993, 1.994) although still useful.
238       
239     * Title: "Design and Implementation of the Second Extended
240       Filesystem"
241       Author: R�my Card, Theodore Ts'o, Stephen Tweedie.
242       URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
243       Keywords: ext2, linux fs history, inode, directory, link, devices,
244       VFS, physical structure, performance, benchmarks, ext2fs library,
245       ext2fs tools, e2fsck.
246       Description: Paper written by three of the top ext2 hackers.
247       Covers Linux filesystems history, ext2 motivation, ext2 features,
248       design, physical structure on disk, performance, benchmarks,
249       e2fsck's passes description... A must read!
250       Notes: This paper was first published in the Proceedings of the
251       First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
252       
253     * Title: "Analysis of the Ext2fs structure"
254       Author: Louis-Dominique Dubeau.
255       URL: http://step.polymtl.ca/~ldd/ext2fs/ext2fs_toc.html
256       Keywords: ext2, filesystem, ext2fs.
257       Description: Description of ext2's blocks, directories, inodes,
258       bitmaps, invariants...
259       
260     * Title: "Journaling the Linux ext2fs Filesystem"
261       Author: Stephen C. Tweedie.
262       URL:
263       ftp://ftp.uk.linux.org/pub/linux/sct/fs/jfs/journal-design.ps.gz
264       Keywords: ext3, journaling.
265       Description: Excellent 8-pages paper explaining the journaling
266       capabilities added to ext2 by the author, showing different
267       problems faced and the alternatives chosen.
268       
269     * Title: "Kernel API changes from 2.0 to 2.2"
270       Author: Richard Gooch.
271       URL:
272       http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.2.html
273       Keywords: 2.2, changes.
274       Description: Kernel functions/structures/variables which changed
275       from 2.0.x to 2.2.x.
276       
277     * Title: "Kernel API changes from 2.2 to 2.4"
278       Author: Richard Gooch.
279       URL:
280       http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.4.html
281       Keywords: 2.4, changes.
282       Description: Kernel functions/structures/variables which changed
283       from 2.2.x to 2.4.x.
284       
285     * Title: "Linux Kernel Module Programming Guide"
286       Author: Ori Pomerantz.
287       URL: http://www.tldp.org/LDP/lkmpg/mpg.html
288       Keywords: modules, GPL book, /proc, ioctls, system calls,
289       interrupt handlers .
290       Description: Very nice 92 pages GPL book on the topic of modules
291       programming. Lots of examples.
292       
293     * Title: "Device File System (devfs) Overview"
294       Author: Richard Gooch.
295       URL: http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.txt
296       Keywords: filesystem, /dev, devfs, dynamic devices, major/minor
297       allocation, device management.
298       Description: Document describing Richard Gooch's controversial
299       devfs, which allows for dynamic devices, only shows present
300       devices in /dev, gets rid of major/minor numbers allocation
301       problems, and allows for hundreds of identical devices (which some
302       USB systems might demand soon).
303       
304     * Title: "I/O Event Handling Under Linux"
305       Author: Richard Gooch.
306       URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
307       Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
308       event queues.
309       Description: From the Introduction: "I/O Event handling is about
310       how your Operating System allows you to manage a large number of
311       open files (file descriptors in UNIX/POSIX, or FDs) in your
312       application. You want the OS to notify you when FDs become active
313       (have data ready to be read or are ready for writing). Ideally you
314       want a mechanism that is scalable. This means a large number of
315       inactive FDs cost very little in memory and CPU time to manage".
316       
317     * Title: "The Kernel Hacking HOWTO"
318       Author: Various Talented People, and Rusty.
319       URL:
320       http://www.lisoleg.net/doc/Kernel-Hacking-HOWTO/kernel-hacking-HOW
321       TO.html
322       Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
323       symbols, return conventions.
324       Description: From the Introduction: "Please understand that I
325       never wanted to write this document, being grossly underqualified,
326       but I always wanted to read it, and this was the only way. I
327       simply explain some best practices, and give reading entry-points
328       into the kernel sources. I avoid implementation details: that's
329       what the code is for, and I ignore whole tracts of useful
330       routines. This document assumes familiarity with C, and an
331       understanding of what the kernel is, and how it is used. It was
332       originally written for the 2.3 kernels, but nearly all of it
333       applies to 2.2 too; 2.0 is slightly different".
334       
335     * Title: "ALSA 0.5.0 Developer documentation"
336       Author: Stephan 'Jumpy' Bartels .
337       URL: http://www.math.TU-Berlin.de/~sbartels/alsa/
338       Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
339       Description: Advanced Linux Sound Architecture for developers,
340       both at kernel and user-level sides. Work in progress. ALSA is
341       supposed to be Linux's next generation sound architecture.
342       
343     * Title: "Programming Guide for Linux USB Device Drivers"
344       Author: Detlef Fliegl.
345       URL: http://usb.in.tum.de/usbdoc/
346       Keywords: USB, universal serial bus.
347       Description: A must-read. From the Preface: "This document should
348       give detailed information about the current state of the USB
349       subsystem and its API for USB device drivers. The first section
350       will deal with the basics of USB devices. You will learn about
351       different types of devices and their properties. Going into detail
352       you will see how USB devices communicate on the bus. The second
353       section gives an overview of the Linux USB subsystem [2] and the
354       device driver framework. Then the API and its data structures will
355       be explained step by step. The last section of this document
356       contains a reference of all API calls and their return codes".
357       Notes: Beware: the main page states: "This document may not be
358       published, printed or used in excerpts without explicit permission
359       of the author". Fortunately, it may still be read...
360       
361     * Title: "Tour Of the Linux Kernel Source"
362       Author: Vijo Cherian.
363       URL: http://www.geocities.com/vijoc/tolks/tolks.html
364       Keywords: .
365       Description: A classic of this page! Was lost for a while and is
366       back again. Thanks Vijo! TOLKS: the name says it all. A tour of
367       the sources, describing directories, files, variables, data
368       structures... It covers general stuff, device drivers,
369       filesystems, IPC and Networking Code.
370       
371     * Title: "Linux Kernel Mailing List Glossary"
372       Author: John Levon.
373       URL: http://www.movement.uklinux.net/glossary.html
374       Keywords: glossary, terms, linux-kernel.
375       Description: From the introduction: "This glossary is intended as
376       a brief description of some of the acronyms and terms you may hear
377       during discussion of the Linux kernel".
378       
379     * Title: "Linux Kernel Locking HOWTO"
380       Author: Various Talented People, and Rusty.
381       URL:
382       http://netfilter.kernelnotes.org/unreliable-guides/kernel-locking-
383       HOWTO.html
384       Keywords: locks, locking, spinlock, semaphore, atomic, race
385       condition, bottom halves, tasklets, softirqs.
386       Description: The title says it all: document describing the
387       locking system in the Linux Kernel either in uniprocessor or SMP
388       systems.
389       Notes: "It was originally written for the later (>2.3.47) 2.3
390       kernels, but most of it applies to 2.2 too; 2.0 is slightly
391       different". Freely redistributable under the conditions of the GNU
392       General Public License.
393       
394     * Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New
395       Features "
396       Author: Alan Cox.
397       URL: http://www.linux-mag.com/1999-05/gear_01.html
398       Keywords: ports, porting.
399       Description: Article from Linux Magazine on porting from 2.0 to
400       2.2 kernels.
401       
402     * Title: "Porting Device Drivers To Linux 2.2: part II"
403       Author: Alan Cox.
404       URL: http://www.linux-mag.com/1999-06/gear_01.html
405       Keywords: ports, porting.
406       Description: Second part on porting from 2.0 to 2.2 kernels.
407       
408     * Title: "How To Make Sure Your Driver Will Work On The Power
409       Macintosh"
410       Author: Paul Mackerras.
411       URL: http://www.linux-mag.com/1999-07/gear_01.html
412       Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
413       Description: The title says it all.
414       
415     * Title: "An Introduction to SCSI Drivers"
416       Author: Alan Cox.
417       URL: http://www.linux-mag.com/1999-08/gear_01.html
418       Keywords: SCSI, device, driver.
419       Description: The title says it all.
420       
421     * Title: "Advanced SCSI Drivers And Other Tales"
422       Author: Alan Cox.
423       URL: http://www.linux-mag.com/1999-09/gear_01.html
424       Keywords: SCSI, device, driver, advanced.
425       Description: The title says it all.
426       
427     * Title: "Writing Linux Mouse Drivers"
428       Author: Alan Cox.
429       URL: http://www.linux-mag.com/1999-10/gear_01.html
430       Keywords: mouse, driver, gpm.
431       Description: The title says it all.
432       
433     * Title: "More on Mouse Drivers"
434       Author: Alan Cox.
435       URL: http://www.linux-mag.com/1999-11/gear_01.html
436       Keywords: mouse, driver, gpm, races, asynchronous I/O.
437       Description: The title still says it all.
438       
439     * Title: "Writing Video4linux Radio Driver"
440       Author: Alan Cox.
441       URL: http://www.linux-mag.com/1999-12/gear_01.html
442       Keywords: video4linux, driver, radio, radio devices.
443       Description: The title says it all.
444       
445     * Title: "Video4linux Drivers, Part 1: Video-Capture Device"
446       Author: Alan Cox.
447       URL: http://www.linux-mag.com/2000-01/gear_01.html
448       Keywords: video4linux, driver, video capture, capture devices,
449       camera driver.
450       Description: The title says it all.
451       
452     * Title: "Video4linux Drivers, Part 2: Video-capture Devices"
453       Author: Alan Cox.
454       URL: http://www.linux-mag.com/2000-02/gear_01.html
455       Keywords: video4linux, driver, video capture, capture devices,
456       camera driver, control, query capabilities, capability, facility.
457       Description: The title says it all.
458       
459     * Title: "PCI Management in Linux 2.2"
460       Author: Alan Cox.
461       URL: http://www.linux-mag.com/2000-03/gear_01.html
462       Keywords: PCI, bus, bus-mastering.
463       Description: The title says it all.
464       
465     * Title: "Linux 2.4 Kernel Internals"
466       Author: Tigran Aivazian and Christoph Hellwig.
467       URL: http://www.moses.uklinux.net/patches/lki.html
468       Keywords: Linux, kernel, booting, SMB boot, VFS, page cache.
469       Description: A little book used for a short training course.
470       Covers building the kernel image, booting (including SMP bootup),
471       process management, VFS and more.
472       
473     * Title: "Linux IP Networking. A Guide to the Implementation and
474       Modification of the Linux Protocol Stack."
475       Author: Glenn Herrin.
476       URL:
477       http://kernelnewbies.org/documents/ipnetworking/linuxipnetworking.
478       html
479       Keywords: network, networking, protocol, IP, UDP, TCP, connection,
480       socket, receiving, transmitting, forwarding, routing, packets,
481       modules, /proc, sk_buff, FIB, tags.
482       Description: Excellent paper devoted to the Linux IP Networking,
483       explaining anything from the kernel's to the user space
484       configuration tools' code. Very good to get a general overview of
485       the kernel networking implementation and understand all steps
486       packets follow from the time they are received at the network
487       device till they are delivered to applications. The studied kernel
488       code is from 2.2.14 version. Provides code for a working packet
489       dropper example.
490       
491     * Title: "Get those boards talking under Linux."
492       Author: Alex Ivchenko.
493       URL: http://www.ednmag.com/ednmag/reg/2000/06222000/13df2.htm
494       Keywords: data-acquisition boards, drivers, modules, interrupts,
495       memory allocation.
496       Description: Article written for people wishing to make their data
497       acquisition boards work on their GNU/Linux machines. Gives a basic
498       overview on writing drivers, from the naming of functions to
499       interrupt handling.
500       Notes: Two-parts article. Part II is at
501       http://www.ednmag.com/ednmag/reg/2000/07062000/14df.htm
502       
503     * Title: "Linux PCMCIA Programmer's Guide"
504       Author: David Hinds.
505       URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
506       Keywords: PCMCIA.
507       Description: "This document describes how to write kernel device
508       drivers for the Linux PCMCIA Card Services interface. It also
509       describes how to write user-mode utilities for communicating with
510       Card Services.
511       
512     * Title: "The Linux Kernel NFSD Implementation"
513       Author: Neil Brown.
514       URL:
515       http://www.cse.unsw.edu.au/~neilb/oss/linux-commentary/nfsd.html
516       Keywords: knfsd, nfsd, NFS, RPC, lockd, mountd, statd.
517       Description: The title says it all.
518       Notes: Covers knfsd's version 1.4.7 (patch against 2.2.7 kernel).
519       
520     * Title: "A Linux vm README"
521       Author: Kanoj Sarcar.
522       URL: http://reality.sgi.com/kanoj_engr/vm229.html
523       Keywords: virtual memory, mm, pgd, vma, page, page flags, page
524       cache, swap cache, kswapd.
525       Description: Telegraphic, short descriptions and definitions
526       relating the Linux virtual memory implementation.
527       
528     * Title: "(nearly) Complete Linux Loadable Kernel Modules. The
529       definitive guide for hackers, virus coders and system
530       administrators."
531       Author: pragmatic/THC.
532       URL: http://packetstorm.securify.com/groups/thc/LKM_HACKING.html
533       Keywords: syscalls, intercept, hide, abuse, symbol table.
534       Description: Interesting paper on how to abuse the Linux kernel in
535       order to intercept and modify syscalls, make
536       files/directories/processes invisible, become root, hijack ttys,
537       write kernel modules based virus... and solutions for admins to
538       avoid all those abuses.
539       Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
540       kernels. Also available in txt format at
541       http://www.blacknemesis.org/hacking/txt/cllkm.txt
542       
543     BOOKS: (Not on-line)
544   
545     * Title: "Linux Device Drivers"
546       Author: Alessandro Rubini.
547       Publisher: O'Reilly & Associates.
548       Date: 1998.
549       Pages: 439.
550       ISBN: 1-56592-292-1
551       
552     * Title: "Linux Device Drivers, 2nd Edition"
553       Author: Alessandro Rubini and Jonathan Corbet.
554       Publisher: O'Reilly & Associates.
555       Date: 2001.
556       Pages: 586.
557       ISBN: 0-59600-008-1
558       Notes: Further information in
559       http://www.oreilly.com/catalog/linuxdrive2/
560       
561     * Title: "Linux Kernel Internals"
562       Author: Michael Beck.
563       Publisher: Addison-Wesley.
564       Date: 1997.
565       ISBN: 0-201-33143-8 (second edition)
566       
567     * Title: "The Design of the UNIX Operating System"
568       Author: Maurice J. Bach.
569       Publisher: Prentice Hall.
570       Date: 1986.
571       Pages: 471.
572       ISBN: 0-13-201757-1
573       
574     * Title: "The Design and Implementation of the 4.3 BSD UNIX
575       Operating System"
576       Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
577       Karels, John S. Quarterman.
578       Publisher: Addison-Wesley.
579       Date: 1989 (reprinted with corrections on October, 1990).
580       ISBN: 0-201-06196-1
581       
582     * Title: "The Design and Implementation of the 4.4 BSD UNIX
583       Operating System"
584       Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
585       John S. Quarterman.
586       Publisher: Addison-Wesley.
587       Date: 1996.
588       ISBN: 0-201-54979-4
589       
590     * Title: "Programmation Linux 2.0 API systeme et fonctionnement du
591       noyau"
592       Author: Remy Card, Eric Dumas, Franck Mevel.
593       Publisher: Eyrolles.
594       Date: 1997.
595       Pages: 520.
596       ISBN: 2-212-08932-5
597       Notes: French.
598       
599     * Title: "The Linux Kernel Book"
600       Author: Remy Card, Eric Dumas, Franck Mevel.
601       Publisher: John Wiley & Sons.
602       Date: 1998.
603       ISBN: 0-471-98141-9
604       Notes: English translation.
605       
606     * Title: "Linux 2.0"
607       Author: Remy Card, Eric Dumas, Franck Mevel.
608       Publisher: Gesti�n 2000.
609       Date: 1997.
610       Pages: 501.
611       ISBN: 8-480-88208-5
612       Notes: Spanish translation.
613       
614     * Title: "Unix internals -- the new frontiers"
615       Author: Uresh Vahalia.
616       Publisher: Prentice Hall.
617       Date: 1996.
618       Pages: 600.
619       ISBN: 0-13-101908-2
620       
621     * Title: "Linux Core Kernel Commentary. Guide to Insider's Knowledge
622       on the Core Kernel of the Linux Code"
623       Author: Scott Maxwell.
624       Publisher: Coriolis.
625       Date: 1999.
626       Pages: 592.
627       ISBN: 1-57610-469-9
628       Notes: CD-ROM included. Line by line commentary of the kernel
629       code.
630       
631     * Title: "Linux IP Stacks Commentary"
632       Author: Stephen Satchell and HBJ Clifford.
633       Publisher: Coriolis.
634       Date: 2000.
635       Pages: ???.
636       ISBN: 1-57610-470-2
637       Notes: Line by line source code commentary book.
638       
639     * Title: "Programming for the real world - POSIX.4"
640       Author: Bill O. Gallmeister.
641       Publisher: O'Reilly & Associates, Inc..
642       Date: 1995.
643       Pages: ???.
644       ISBN: I-56592-074-0
645       Notes: Though not being directly about Linux, Linux aims to be
646       POSIX. Good reference.
647       
648     * Title: "Understanding the Linux Kernel"
649       Author: Daniel P. Bovet and Marco Cesati.
650       Publisher: O'Reilly & Associates, Inc..
651       Date: 2000.
652       Pages: 702.
653       ISBN: 0-596-00002-2
654       Notes: Further information in
655       http://www.oreilly.com/catalog/linuxkernel/
656       
657     MISCELLANEOUS:
658   
659     * Name: linux/Documentation
660       Author: Many.
661       URL: Just look inside your kernel sources.
662       Keywords: anything, DocBook.
663       Description: Documentation that comes with the kernel sources,
664       inside the Documentation directory. Some pages from this document
665       (including this document itself) have been moved there, and might
666       be more up to date than the web version.
667       
668     * Name: "Linux Source Driver"
669       URL: http://lsd.linux.cz
670       Keywords: Browsing source code.
671       Description: "Linux Source Driver (LSD) is an application, which
672       can make browsing source codes of Linux kernel easier than you can
673       imagine. You can select between multiple versions of kernel (e.g.
674       0.01, 1.0.0, 2.0.33, 2.0.34pre13, 2.0.0, 2.1.101 etc.). With LSD
675       you can search Linux kernel (fulltext, macros, types, functions
676       and variables) and LSD can generate patches for you on the fly
677       (files, directories or kernel)".
678       
679     * Name: "Linux Kernel Source Reference"
680       Author: Thomas Graichen.
681       URL: http://innominate.org/~graichen/projects/lksr/
682       Keywords: CVS, web, cvsweb, browsing source code.
683       Description: Web interface to a CVS server with the kernel
684       sources. "Here you can have a look at any file of the Linux kernel
685       sources of any version starting from 1.0 up to the (daily updated)
686       current version available. Also you can check the differences
687       between two versions of a file".
688       
689     * Name: "Cross-Referencing Linux"
690       URL: http://lxr.linux.no/source/
691       Keywords: Browsing source code.
692       Description: Another web-based Linux kernel source code browser.
693       Lots of cross references to variables and functions. You can see
694       where they are defined and where they are used.
695       
696     * Name: "Linux Weekly News"
697       URL: http://lwn.net
698       Keywords: latest kernel news.
699       Description: The title says it all. There's a fixed kernel section
700       summarizing developers' work, bug fixes, new features and versions
701       produced during the week. Published every Thursday.
702       
703     * Name: "Kernel Traffic"
704       URL: http://www.kerneltraffic.org/kernel-traffic/
705       Keywords: linux-kernel mailing list, weekly kernel news.
706       Description: Weekly newsletter covering the most relevant
707       discussions of the linux-kernel mailing list.
708       
709     * Name: "CuTTiNG.eDGe.LiNuX"
710       URL: http://edge.kernelnotes.org
711       Keywords: changelist.
712       Description: Site which provides the changelist for every kernel
713       release. What's new, what's better, what's changed. Myrdraal reads
714       the patches and describes them. Pointers to the patches are there,
715       too.
716       
717     * Name: "New linux-kernel Mailing List FAQ"
718       URL: http://www.tux.org/lkml/
719       Keywords: linux-kernel mailing list FAQ.
720       Description: linux-kernel is a mailing list for developers to
721       communicate. This FAQ builds on the previous linux-kernel mailing
722       list FAQ maintained by Frohwalt Egerer, who no longer maintains
723       it. Read it to see how to join the mailing list. Dozens of
724       interesting questions regarding the list, Linux, developers (who
725       is ...?), terms (what is...?) are answered here too. Just read it.
726       
727     * Name: "Linux Virtual File System"
728       Author: Peter J. Braam.
729       URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
730       Keywords: slides, VFS, inode, superblock, dentry, dcache.
731       Description: Set of slides, presumably from a presentation on the
732       Linux VFS layer. Covers version 2.1.x, with dentries and the
733       dcache.
734       
735     * Name: "Gary's Encyclopedia - The Linux Kernel"
736       Author: Gary (I suppose...).
737       URL: http://members.aa.net/~swear/pedia/kernel.html
738       Keywords: links, not found here?.
739       Description: Gary's Encyclopedia exists to allow the rapid finding
740       of documentation and other information of interest to GNU/Linux
741       users. It has about 4000 links to external pages in 150 major
742       categories. This link is for kernel-specific links, documents,
743       sites... Look there if you could not find here what you were
744       looking for.
745       
746     * Name: "The home page of Linux-MM"
747       Author: The Linux-MM team.
748       URL: http://linux-mm.org/
749       Keywords: memory management, Linux-MM, mm patches, TODO, docs,
750       mailing list.
751       Description: Site devoted to Linux Memory Management development.
752       Memory related patches, HOWTOs, links, mm developers... Don't miss
753       it if you are interested in memory management development!
754       
755     * Name: "Kernel Newbies IRC Channel"
756       URL: http://www.kernelnewbies.org
757       Keywords: IRC, newbies, channel, asking doubts.
758       Description: #kernelnewbies on irc.openprojects.net. From the web
759       page: "#kernelnewbies is an IRC network dedicated to the 'newbie'
760       kernel hacker. The audience mostly consists of people who are
761       learning about the kernel, working on kernel projects or
762       professional kernel hackers that want to help less seasoned kernel
763       people. [...] #kernelnewbies is on the Open Projects IRC Network,
764       try irc.openprojects.net or irc.<country>.openprojects.net as your
765       server and then /join #kernelnewbies". It also hosts articles,
766       documents, FAQs...
767       
768     * Name: "linux-kernel mailing list archives and search engines"
769       URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
770       URL: http://www.kernelnotes.org/lnxlists/linux-kernel/
771       URL: http://www.geocrawler.com
772       Keywords: linux-kernel, archives, search.
773       Description: Some of the linux-kernel mailing list archivers. If
774       you have a better/another one, please let me know.
775     _________________________________________________________________
776   
777   Document last updated on Thu Jun 28 15:09:39 CEST 2001