Ok. I didn't make 2.4.0 in 2000. Tough. I tried, but we had some
[davej-history.git] / Documentation / kernel-docs.txt
blobbc1174527dd25ec1ca6b2665c76e72e7f9eff6e6
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  */
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: "The Linux Kernel"
43        Author: David A. Rusling.
44        URL: http://sunsite.unc.edu/linux/LDP/tlk/tlk.html
45        Keywords: everything!, book.
46        Description: On line, 200 pages book describing most aspects of
47        the Linux Kernel. Probably, the first reference for beginners.
48        Lots of illustrations explaining data structures use and
49        relationships in the purest Richard W. Stevens' style. Contents:
50        "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
51        4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
52        7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
53        File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
54        13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
55        Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
56        General Public License, Glossary". In short: a must have.
57        
58      * Title: "The Linux Kernel Hackers' Guide"
59        Author: Michael K.Johnson and others.
60        URL: http://khg.redhat.com/HyperNews/get/khg.html
61        Keywords: everything!
62        Description: No more Postscript book-like version. Only HTML now.
63        Many people have contributed. The interface is similar to web
64        available mailing lists archives. You can find some articles and
65        then some mails asking questions about them and/or complementing
66        previous contributions. A little bit anarchic in this aspect, but
67        with some valuable information in some cases.
68        
69      * Title: "Conceptual Architecture of the Linux Kernel"
70        Author: Ivan T. Bowman.
71        URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a1.html
72        Keywords: conceptual software arquitecture, extracted design,
73        reverse engineering, system structure.
74        Description: Conceptual software arquitecture of the Linux kernel,
75        automatically extracted from the source code. Very detailed. Good
76        figures. Gives good overall kernel understanding.
77        
78      * Title: "Concrete Architecture of the Linux Kernel"
79        Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
80        URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a2.html
81        Keywords: concrete arquitecture, extracted design, reverse
82        engineering, system structure, dependencies.
83        Description: Concrete arquitecture of the Linux kernel,
84        automatically extracted from the source code. Very detailed. Good
85        figures. Gives good overall kernel understanding. This papers
86        focus on lower details than its predecessor (files, variables...).
87        
88      * Title: "Linux as a Case Study: Its Extracted Software
89        Architecture"
90        Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
91        URL: http://plg.uwaterloo.ca/~itbowman/papers/linuxcase.html
92        Keywords: software architecture, architecture recovery,
93        redocumentation.
94        Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
95        1999. A mixture of the previous two documents from the same
96        author.
97        
98      * Title: "Overview of the Virtual File System"
99        Author: Richard Gooch.
100        URL: http://www.atnf.csiro.au/~rgooch/linux/vfs.txt
101        Keywords: VFS, File System, mounting filesystems, opening files,
102        dentries,
103        dcache. Description: Brief introduction to the Linux Virtual File
104        System. What is it, how it works, operations taken when opening a
105        file or mounting a file system and description of important data
106        structures explaining the purpose of each of their entries.
107        
108      * Title: "The Linux RAID-1, 4, 5 Code"
109        Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
110        URL: http://www.ssc.com/lj/issue44/2391.html
111        Keywords: RAID, MD driver.
112        Description: Linux Journal Kernel Korner article. Here is it's
113        abstract: "A description of the implementation of the RAID-1,
114        RAID-4 and RAID-5 personalities of the MD device driver in the
115        Linux kernel, providing users with high performance and reliable,
116        secondary-storage capability using software".
117        
118      * Title: "Dynamic Kernels: Modularized Device Drivers"
119        Author: Alessandro Rubini.
120        URL: http://www.ssc.com/lj/issue23/1219.html
121        Keywords: device driver, module, loading/unloading modules,
122        allocating resources.
123        Description: Linux Journal Kernel Korner article. Here is it's
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        Author: Alessandro Rubini.
133        URL: http://www2.linuxjournal.com/lj-issues/issue24/1220.html
134        Keywords: character driver, init_module, clean_up module,
135        autodetection,
136        mayor number, minor number, file operations, open(), close().
137        Description: Linux Journal Kernel Korner article. Here is it's
138        abstract: "This article, the second of four, introduces part of
139        the actual code to create custom module implementing a character
140        device driver. It describes the code for module initialization and
141        cleanup, as well as the open() and close() system calls".
142        
143      * Title: "The Devil's in the Details"
144        Author: Georg v. Zezschwitz and Alessandro Rubini.
145        URL: http://www2.linuxjournal.com/lj-issues/issue25/1221.html
146        Keywords: read(), write(), select(), ioctl(), blocking/non
147        blocking mode, interrupt handler.
148        Description: Linux Journal Kernel Korner article. Here is it's
149        abstract: "This article, the third of four on writing character
150        device drivers, introduces concepts of reading, writing, and using
151        ioctl-calls".
152        
153      * Title: "Dissecting Interrupts and Browsing DMA"
154        Author: Alessandro Rubini and Georg v. Zezschwitz.
155        URL: http://www.ssc.com/lj/issue26/interrupt.html
156        Keywords: interrupts, irqs, DMA, bottom halves, task queues.
157        Description: Linux Journal Kernel Korner article. Here is it's
158        abstract: "This is the fourth in a series of articles about
159        writing character device drivers as loadable kernel modules. This
160        month, we further investigate the field of interrupt handling.
161        Though it is conceptually simple, practical limitations and
162        constraints make this an ``interesting'' part of device driver
163        writing, and several different facilities have been provided for
164        different situations. We also investigate the complex topic of
165        DMA".
166        
167      * Title: "Device Drivers Concluded"
168        Author: Georg v. Zezschwitz.
169        URL: http://www2.linuxjournal.com/lj-issues/issue28/1287.html
170        Keywords: address spaces, pages, pagination, page management,
171        demand loading, swapping, memory protection, memory mapping, mmap,
172        virtual memory areas (VMAs), vremap, PCI.
173        Description: Finally, the above turned out into a five articles
174        series. This latest one's introduction reads: "This is the last of
175        five articles about character device drivers. In this final
176        section, Georg deals with memory mapping devices, beginning with
177        an overall description of the Linux memory management concepts".
178        
179      * Title: "Network Buffers And Memory Management"
180        Author: Alan Cox.
181        URL: http://www2.linuxjournal.com/lj-issues/issue30/1312.html
182        Keywords: sk_buffs, network devices, protocol/link layer
183        variables, network devices flags, transmit, receive,
184        configuration, multicast.
185        Description: Linux Journal Kernel Korner. Here is the abstract:
186        "Writing a network device driver for Linux is fundamentally
187        simple---most of the complexity (other than talking to the
188        hardware) involves managing network packets in memory".
189        
190      * Title: "An Introduction to the Linux 1.3.x Networking Code"
191        Author: Vipul Gupta.
192        URL: http://anchor.cs.binghamton.edu/courses/cs628/linux-net.html
193        Keywords: files, sk_buffs.
194        Description: A short description of files under the net/
195        directory. Each file has a one or two lines paragraph description.
196        sk_buffs explained, too, with some beautiful pictures. A little
197        bit outdated.
198        
199      * Title: "Linux ioctl() Primer"
200        Author: Vipul Gupta.
201        URL: http://anchor.cs.binghamton.edu/courses/cs628/ioctl.html
202        Keywords: ioctl, socket.
203        Description: Little description and examples on the use and
204        implementation of the ioctl() system call. A little bit biased
205        towards sockets.
206        
207      * Title: "Writing Linux Device Drivers"
208        Author: Michael K. Johnson.
209        URL: http://www.redhat.com/~johnsonm/devices.html
210        Keywords: files, VFS, file operations, kernel interface, character
211        vs block devices, I/O access, hardware interrupts, DMA, access to
212        user memory, memory allocation, timers.
213        Description: Introductory 50-minutes (sic) tutorial on writing
214        device drivers. 12 pages written by the same author of the "Kernel
215        Hackers' Guide" which give a very good overview of the topic.
216        
217      * Title: "The Venus kernel interface"
218        Author: Peter J. Braam.
219        URL:
220        http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
221        Keywords: coda, filesystem, venus, cache manager.
222        Description: "This document describes the communication between
223        Venus and kernel level file system code needed for the operation
224        of the Coda filesystem. This version document is meant to describe
225        the current interface (version 1.0) as well as improvements we
226        envisage".
227        
228      * Title: "Programming PCI-Devices under Linux"
229        Author: Claus Schroeter.
230        URL:
231        ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps
232        .gz
233        Keywords: PCI, device, busmastering.
234        Description: 6 pages tutorial on PCI programming under Linux.
235        Gives the basic concepts on the architecture of the PCI subsystem,
236        as long as basic functions and macros to read/write the devices
237        and perform busmastering.
238        
239      * Title: "Writing Character Device Driver for Linux"
240        Author: R. Baruch and C. Schroeter.
241        URL:
242        ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers
243        .ps.gz
244        Keywords: character device drivers, I/O, signals, DMA, accesing
245        ports in user space, kernel environment.
246        Description: 68 pages paper on writing character drivers. A little
247        bit old (1.993, 1.994) although still useful.
248        
249      * Title: "Design and Implementation of the Second Extended
250        Filesystem"
251        Author: RĆ©my Card, Theodore Ts'o, Stephen Tweedie.
252        URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
253        Keywords: ext2, linux fs history, inode, directory, link, devices,
254        VFS, physical structure, performance, benchmarks, ext2fs library,
255        ext2fs tools, e2fsck.
256        Description: Paper written by three of the top ext2 hackers.
257        Covers Linux filesystems history, ext2 motivation, ext2 features,
258        design, physical structure on disk, performance, benchmarks,
259        e2fsck's passes description... A must read!
260        Notes: This paper was first published in the Proceedings of the
261        First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
262        
263      * Title: "The Second Extended Filesystem"
264        Author: Matthew Wilcox.
265        URL: http://pocket.fluff.org/~mrw/linux/ext2.txt
266        Keywords: ext2, filesystem.
267        Description: Description of ext2's blocks, directories, inodes...
268        Notes: Seems to be DOWN. Anyone knows another link for it?
269        
270      * Title: "Analysis of the Ext2fs structure"
271        Author: Louis-Dominique Dubeau.
272        URL: http://step.polymtl.ca/~ldd/ext2fs/ext2fs_toc.html
273        Keywords: ext2, filesystem, ext2fs.
274        Description: Description of ext2's blocks, directories, inodes,
275        bitmaps, invariants ...
276        
277      * Title: "Journaling the Linux ext2fs Filesystem"
278        Author: Stephen C. Tweedie.
279        URL:
280        ftp://ftp.uk.linux.org:/pub/linux/sct/fs/jfs/journal-design.ps.gz
281        Keywords: ext3, journaling.
282        Description: Excellent 8-pages paper explaining the journaling
283        capabilities added to ext2 by the author, showing different
284        problems faced and the alternatives chosen.
285        
286      * Title: "Kernel API changes from 2.0 to 2.2"
287        Author: Richard Gooch.
288        URL:
289        http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.2.html
290        Keywords: 2.2, changes.
291        Description: Kernel functions/structures/variables which changed
292        from 2.0.x to 2.2.x.
293        
294      * Title: "Kernel API changes from 2.2 to 2.3"
295        Author: Richard Gooch.
296        URL:
297        http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.3.html
298        Keywords: 2.3, changes.
299        Description: Kernel functions/structures/variables which changed
300        from 2.2.x to 2.3.x.
301        
302      * Title: "Linux Kernel Module Programming Guide"
303        Author: Ori Pomerantz.
304        URL: http://www.linuxdoc.org/LDP/lkmpg/mpg.html
305        Keywords: modules, GPL book, /proc, ioctls, system calls,
306        interrupt handlers .
307        Description: Very nice 92 pages GPL book on the topic of modules
308        programming. Lots of examples.
309        
310      * Title: "Device File System (devfs) Overview"
311        Author: Richard Gooch.
312        URL: http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.txt
313        Keywords: filesystem, /dev, devfs, dynamic devices, major/minor
314        allocation, device management.
315        Description: Document describing Richard Gooch's controversial
316        devfs, which allows for dynamic devices, only shows present
317        devices in /dev, gets rid of major/minor numbers allocation
318        problems, and allows for hundreds of identical devices (which some
319        USB systems might demand soon).
320        
321      * Title: "I/O Event Handling Under Linux"
322        Author: Richard Gooch.
323        URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
324        Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
325        event queues.
326        Description: From the Introduction: "I/O Event handling is about
327        how your Operating System allows you to manage a large number of
328        open files (file descriptors in UNIX/POSIX, or FDs) in your
329        application. You want the OS to notify you when FDs become active
330        (have data ready to be read or are ready for writing). Ideally you
331        want a mechanism that is scalable. This means a large number of
332        inactive FDs cost very little in memory and CPU time to manage".
333        
334      * Title: "The Kernel Hacking HOWTO"
335        Author: Various Talented People, and Rusty.
336        URL: http://www.samba.org/~netfilter/kernel-hacking-HOWTO.html
337        Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
338        symbols, return conventions.
339        Description: From the Introduction: "Please understand that I
340        never wanted to write this document, being grossly underqualified,
341        but I always wanted to read it, and this was the only way. I
342        simply explain some best practices, and give reading entry-points
343        into the kernel sources. I avoid implementation details: that's
344        what the code is for, and I ignore whole tracts of useful
345        routines. This document assumes familiarity with C, and an
346        understanding of what the kernel is, and how it is used. It was
347        originally written for the 2.3 kernels, but nearly all of it
348        applies to 2.2 too; 2.0 is slightly different. ".
349        
350      * Title: "ALSA 0.5.0 Developer documentation"
351        Author: Stephan 'Jumpy' Bartels .
352        URL: http://www.math.TU-Berlin.de/~sbartels/alsa/
353        Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
354        Description: Advanced Linux Sound Architecture for developers,
355        both at kernel and user-level sides. Work in progress. ALSA is
356        supposed to be Linux's next generation sound architecture.
357        
358      * Title: "Programming Guide for Linux USB Device Drivers"
359        Author: Detlef Fliegl.
360        URL: http://usb.in.tum.de/usbdoc/
361        Keywords: USB, universal serial bus.
362        Description: A must-read. From the Preface: "This document should
363        give detailed information about the current state of the USB
364        subsystem and its API for USB device drivers. The first section
365        will deal with the basics of USB devices. You will learn about
366        different types of devices and their properties. Going into detail
367        you will see how USB devices communicate on the bus. The second
368        section gives an overview of the Linux USB subsystem [2] and the
369        device driver framework. Then the API and its data structures will
370        be explained step by step. The last section of this document
371        contains a reference of all API calls and their return codes".
372        Notes: Beware: the main page states: "This document may not be
373        published, printed or used in excerpts without explicit permission
374        of the author". Fortunately, it may still be read...
375        
376      * Title: "Tour Of the Linux Kernel Source"
377        Author: Vijo Cherian.
378        URL: http://www.geocities.com/vijoc/tolks/tolks.html
379        Keywords: .
380        Description: A classic of this page! Was lost for a while and is
381        back again. Thanks Vijo! TOLKS: the name says it all. A tour of
382        the sources, describing directories, files, variables, data
383        structures... It covers general stuff, device drivers,
384        filesystems, IPC and Networking Code.
385        
386      * Title: "Linux Kernel Mailing List Glossary"
387        Author: John Levon.
388        URL: http://www.movement.uklinux.net/glossary.html
389        Keywords: glossary, terms, linux-kernel.
390        Description: From the introduction: "This glossary is intended as
391        a brief description of some of the acronyms and terms you may hear
392        during discussion of the Linux kernel".
393        
394      * Title: "Linux Kernel Locking HOWTO"
395        Author: Various Talented People, and Rusty.
396        URL:
397        http://netfilter.kernelnotes.org/unreliable-guides/kernel-locking-
398        HOWTO.html
399        Keywords: locks, locking, spinlock, semaphore, atomic, race
400        condition, bottom halves, tasklets, softirqs.
401        Description: The title says it all: document describing the
402        locking system in the Linux Kernel either in uniprocessor or SMP
403        systems.
404        Notes: "It was originally written for the later (>2.3.47) 2.3
405        kernels, but most of it applies to 2.2 too; 2.0 is slightly
406        different". Freely redistributable under the conditions of the GNU
407        General Public License.
408        
409      * Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New
410        Features "
411        Author: Alan Cox.
412        URL: http://www.linux-mag.com/1999-05/gear_01.html
413        Keywords: ports, porting.
414        Description: Article from Linux Magazine on porting from 2.0 to
415        2.2 kernels.
416        
417      * Title: "Porting Device Drivers To Linux 2.2: part II"
418        Author: Alan Cox.
419        URL: http://www.linux-mag.com/1999-06/gear_01.html
420        Keywords: ports, porting.
421        Description: Second part on porting from 2.0 to 2.2 kernels.
422        
423      * Title: "How To Make Sure Your Driver Will Work On The Power
424        Macintosh"
425        Author: Paul Mackerras.
426        URL: http://www.linux-mag.com/1999-07/gear_01.html
427        Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
428        Description: The title says it all.
429        
430      * Title: "An Introduction to SCSI Drivers"
431        Author: Alan Cox.
432        URL: http://www.linux-mag.com/1999-08/gear_01.html
433        Keywords: SCSI, device, driver.
434        Description: The title says it all.
435        
436      * Title: "Advanced SCSI Drivers And Other Tales"
437        Author: Alan Cox.
438        URL: http://www.linux-mag.com/1999-09/gear_01.html
439        Keywords: SCSI, device, driver, advanced.
440        Description: The title says it all.
441        
442      * Title: "Writing Linux Mouse Drivers"
443        Author: Alan Cox.
444        URL: http://www.linux-mag.com/1999-10/gear_01.html
445        Keywords: mouse, driver, gpm.
446        Description: The title says it all.
447        
448      * Title: "More on Mouse Drivers"
449        Author: Alan Cox.
450        URL: http://www.linux-mag.com/1999-11/gear_01.html
451        Keywords: mouse, driver, gpm, races, asynchronous I/O.
452        Description: The title still says it all.
453        
454      * Title: "Writing Video4linux Radio Driver"
455        Author: Alan Cox.
456        URL: http://www.linux-mag.com/1999-12/gear_01.html
457        Keywords: video4linux, driver, radio, radio devices.
458        Description: The title says it all.
459        
460      * Title: "Video4linux Drivers, Part 1: Video-Capture Device"
461        Author: Alan Cox.
462        URL: http://www.linux-mag.com/2000-01/gear_01.html
463        Keywords: video4linux, driver, video capture, capture devices,
464        camera driver.
465        Description: The title says it all.
466        
467      * Title: "Video4linux Drivers, Part 2: Video-capture Devices"
468        Author: Alan Cox.
469        URL: http://www.linux-mag.com/2000-02/gear_01.html
470        Keywords: video4linux, driver, video capture, capture devices,
471        camera driver, control, query capabilities, capability, facility.
472        Description: The title says it all.
473        
474      * Title: "PCI Management in Linux 2.2"
475        Author: Alan Cox.
476        URL: http://www.linux-mag.com/2000-03/gear_01.html
477        Keywords: PCI, bus, bus-mastering.
478        Description: The title says it all.
480      * Title: "Linux 2.4 Kernel Internals"
481        Author: Tigran Aivazian.
482        URL: http://www.moses.uklinux.net/patches/lki.html
483        Keywords: Linux, kernel, VFS, SMP boot
484        Description: A little book used for a short training course
485        I gave on this subject at VERITAS. Covers building the kernel
486        image, booting (including SMP), process management, VFS and more.
487        
488      BOOKS: (Not on-line)
489    
490      * Title: "Linux Device Drivers"
491        Author: Alessandro Rubini.
492        Publisher: O'Reilly &Associates.
493        Date: 1998.
494        ISBN: 1-56592-292-1
495        
496      * Title: "Linux Kernel Internals"
497        Author: Michael Beck.
498        Publisher: Addison-Wesley.
499        Date: 1997.
500        ISBN: 0-201-33143-8 (second edition)
501        
502      * Title: "The Design of the UNIX Operating System"
503        Author: Maurice J. Bach.
504        Publisher: Prentice Hall.
505        Date: 1986.
506        Pages: 471.
507        ISBN: 0-13-201757-1
508        
509      * Title: "The Design and Implementation of the 4.3 BSD UNIX
510        Operating System"
511        Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
512        Karels, John S. Quarterman.
513        Publisher: Addison-Wesley.
514        Date: 1989 (reprinted with corrections on October, 1990).
515        ISBN: 0-201-06196-1
516        
517      * Title: "The Design and Implementation of the 4.4 BSD UNIX
518        Operating System"
519        Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
520        John S. Quarterman.
521        Publisher: Addison-Wesley.
522        Date: 1996.
523        ISBN: 0-201-54979-4
524        
525      * Title: "Programmation Linux 2.0 API systeme et fonctionnement du
526        noyau"
527        Author: Remy Card, Eric Dumas, Franck Mevel.
528        Publisher: Eyrolles.
529        Date: 1997.
530        Pages: 520.
531        ISBN: 2-212-08932-5
532        Notes: French.
533        
534      * Title: "The Linux Kernel Book"
535        Author: Remy Card, Eric Dumas, Franck Mevel.
536        Publisher: John Wiley & Sons.
537        Date: 1998.
538        ISBN: 0-471-98141-9
539        Notes: English translation.
540        
541      * Title: "Linux 2.0"
542        Author: Remy Card, Eric Dumas, Franck Mevel.
543        Publisher: GestiĆ³n 2000.
544        Date: 1997.
545        Pages: 501.
546        ISBN: 8-480-88208-5
547        Notes: Spanish translation.
548        
549      * Title: "Unix internals -- the new frontiers"
550        Author: Uresh Vahalia.
551        Publisher: Prentice Hall.
552        Date: 1996.
553        Pages: 600.
554        ISBN: 0-13-101908-2
555        
556      * Title: "Linux Core Kernel Commentary. Guide to Insider's Knowledge
557        on the Core Kernel of the Linux Code"
558        Author: Scott Maxwell.
559        Publisher: Coriolis.
560        Date: 1999.
561        Pages: 592.
562        ISBN: 1-57610-469-9
563        Notes: CD-ROM included. Line by line commentary of the kernel
564        code.
565        
566      * Title: "Linux IP Stacks Commentary"
567        Author: Stephen Satchell and HBJ Clifford.
568        Publisher: Coriolis.
569        Date: 2000.
570        Pages: ???.
571        ISBN: 1-57610-470-2
572        Notes: Line by line source code commentary book.
573        
574      * Title: "Programming for the real world - POSIX.4"
575        Author: Bill O. Gallmeister.
576        Publisher: O'Reilly & Associates, Inc..
577        Date: 1995.
578        Pages: ???.
579        ISBN: I-56592-074-0
580        Notes: Though not being directly about Linux, Linux aims to be
581        POSIX. Good reference.
582        
583      MISCELLANEOUS:
584    
585      * Name: "Linux Source Driver"
586        URL: http://lsd.linux.cz
587        Keywords: Browsing source code.
588        Description: "Linux Source Driver (LSD) is an application, which
589        can make browsing source codes of Linux kernel easier than you can
590        imagine. You can select between multiple versions of kernel (e.g.
591        0.01, 1.0.0, 2.0.33, 2.0.34pre13, 2.0.0, 2.1.101 etc.). With LSD
592        you can search Linux kernel (fulltext, macros, types, functions
593        and variables) and LSD can generate patches for you on the fly
594        (files, directories or kernel)".
595        
596      * Name: "Cross-Referencing Linux"
597        URL: http://lxr.linux.no/source/
598        Keywords: Browsing source code.
599        Description: Another web-based Linux kernel source code browser.
600        Lots of cross references to variables and functions. You can see
601        where they are defined and where they are used.
602        
603      * Name: "Linux Weekly News"
604        URL: http://lwn.net
605        Keywords: latest kernel news.
606        Description: The title says it all. There's a fixed kernel section
607        summarizing developers' work, bug fixes, new features and versions
608        produced during the week. Published every Thursday.
609        
610      * Name: "Kernel Traffic"
611        URL: http://kt.linuxcare.com
612        Keywords: linux-kernel mailing list, weekly kernel news.
613        Description: Weekly newsletter covering the most relevant
614        discussions of the linux-kernel mailing list.
615        
616      * Name: "CuTTiNG.eDGe.LiNuX"
617        URL: http://edge.kernelnotes.org
618        Keywords: changelist.
619        Description: Site which provides the changelist for every kernel
620        release. What's new, what's better, what's changed. Myrdraal reads
621        the patches and describes them. Pointers to the patches are there,
622        too.
623        
624      * Name: "New linux-kernel Mailing List FAQ"
625        URL: Original site:
626        http://www.altern.org/andrebalsa/doc/lkml-faq.html
627        URL: U.S. mirror site:
628        http://www.ececs.uc.edu/~rreilova/linux/lkml-faq.html
629        Keywords: linux-kernel mailing list FAQ.
630        Description: linux-kernel is a mailing list for developers to
631        communicate. This FAQ builds on the previous linux-kernel mailing
632        list FAQ maintained by Frohwalt Egerer, who no longer maintains
633        it. Read it to see how to join the mailing list. Dozens of
634        interesting questions regarding the list, Linux, developers (who
635        is ...?), terms (what is...?) are answered here too. Just read it.
636        
637      * Name: "Linux Virtual File System"
638        Author: Peter J. Braam.
639        URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs
640        Keywords: slides, VFS, inode, superblock, dentry, dcache.
641        Description: Set of slides, presumably from a presentation on the
642        Linux VFS layer. Covers version 2.1.x, with dentries and the
643        dcache.
644        
645      * Name: "Gary's Enciclopedia - The Linux Kernel"
646        Author: Gary (I suppose...).
647        URL: http://members.aa.net/~swear/pedia/kernel.html
648        Keywords: links, not found here?.
649        Description: Gary's Enciclopedia exists to allow the rapid finding
650        of documentation and other information of interest to GNU/Linux
651        users. It has about 4000 links to external pages in 150 major
652        categories. This link is for kernel-specific links, documents,
653        sites... Look there if you could not find here whar you were
654        looking for.
655        
656      * Name: "The home page of Linux-MM"
657        Author: The Linux-MM team.
658        URL: http://www.linux.eu.org/Linux-MM/
659        Keywords: memory management, Linux-MM, mm patches, TODO, docs,
660        mailing list.
661        Description: Site devoted to Linux Memory Mangement development.
662        Memory related patches, HOWTOs, links, mm developers... Don't miss
663        it if you are interested in memory management development!
664        
665      * Name: "Kernel Newbies IRC Channel"
666        URL: http://www.surriel.com/kernelnewbies.shtml
667        Keywords: IRC, newbies, channel, asking doubts.
668        Description: #kernelnewbies on irc.openprojects.net. From the web
669        page: "#kernelnewbies is an IRC network dedicated to the 'newbie'
670        kernel hacker. The audience mostly consists of people who are
671        learning about the kernel, working on kernel projects or
672        professional kernel hackers that want to help less seasoned kernel
673        people. [...] #kernelnewbies is on the Open Projects IRC Network,
674        try irc.openprojects.net or irc.<country>.openprojects.net as your
675        server and then /join #kernelnewbies".
676        
677      * Name: "linux-kernel mailing list archives and search engines"
678        URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
679        URL: http://www.kernelnotes.org/lnxlists/linux-kernel/
680        URL: http://www.geocrawler.com
681        Keywords: linux-kernel, archives, search.
682        Description: Some of the linux-kernel mailing list archivers. If
683        you have a better/another one, please let me know.
684      _________________________________________________________________
685    
686    Document last updated on Thu Jun 1 21:58:18 CEST 2000DATE$