2 Index of Documentation for People Interested in Writing and/or
4 Understanding the Linux Kernel.
6 Juan-Mariano de Goyeneche <jmseyas@dit.upm.es>
9 * The latest version of this document may be found at:
10 * http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
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.
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.
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.
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.
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
42 * Title: "The Linux Kernel"
43 Author: David A. Rusling.
44 URL: http://www.tldp.org/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.
58 * Title: "The Linux Kernel Hackers' Guide"
59 Author: Michael K.Johnson and others.
60 URL: http://www.tldp.org/LDP/khg/HyperNews/get/khg.html
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.
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.
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...).
88 * Title: "Linux as a Case Study: Its Extracted Software
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,
94 Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
95 1999. A mixture of the previous two documents from the same
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,
103 Description: Brief introduction to the Linux Virtual File System.
104 What is it, how it works, operations taken when opening a file or
105 mounting a file system and description of important data
106 structures explaining the purpose of each of their entries.
108 * Title: "The Linux RAID-1, 4, 5 Code"
109 Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
110 URL: http://www2.linuxjournal.com/lj-issues/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".
118 * Title: "Dynamic Kernels: Modularized Device Drivers"
119 Author: Alessandro Rubini.
120 URL: http://www2.linuxjournal.com/lj-issues/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
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, mayor number, minor number, file operations,
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".
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
153 * Title: "Dissecting Interrupts and Browsing DMA"
154 Author: Alessandro Rubini and Georg v. Zezschwitz.
155 URL: http://www2.linuxjournal.com/lj-issues/issue26/1222.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
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".
179 * Title: "Network Buffers And Memory Management"
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".
190 * Title: "Writing Linux Device Drivers"
191 Author: Michael K. Johnson.
192 URL: http://people.redhat.com/johnsonm/devices.html
193 Keywords: files, VFS, file operations, kernel interface, character
194 vs block devices, I/O access, hardware interrupts, DMA, access to
195 user memory, memory allocation, timers.
196 Description: Introductory 50-minutes (sic) tutorial on writing
197 device drivers. 12 pages written by the same author of the "Kernel
198 Hackers' Guide" which give a very good overview of the topic.
200 * Title: "The Venus kernel interface"
201 Author: Peter J. Braam.
203 http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
204 Keywords: coda, filesystem, venus, cache manager.
205 Description: "This document describes the communication between
206 Venus and kernel level file system code needed for the operation
207 of the Coda filesystem. This version document is meant to describe
208 the current interface (version 1.0) as well as improvements we
211 * Title: "Programming PCI-Devices under Linux"
212 Author: Claus Schroeter.
214 ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps
216 Keywords: PCI, device, busmastering.
217 Description: 6 pages tutorial on PCI programming under Linux.
218 Gives the basic concepts on the architecture of the PCI subsystem,
219 as long as basic functions and macros to read/write the devices
220 and perform busmastering.
222 * Title: "Writing Character Device Driver for Linux"
223 Author: R. Baruch and C. Schroeter.
225 ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers
227 Keywords: character device drivers, I/O, signals, DMA, accessing
228 ports in user space, kernel environment.
229 Description: 68 pages paper on writing character drivers. A little
230 bit old (1.993, 1.994) although still useful.
232 * Title: "Design and Implementation of the Second Extended
234 Author: RĆ©my Card, Theodore Ts'o, Stephen Tweedie.
235 URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
236 Keywords: ext2, linux fs history, inode, directory, link, devices,
237 VFS, physical structure, performance, benchmarks, ext2fs library,
238 ext2fs tools, e2fsck.
239 Description: Paper written by three of the top ext2 hackers.
240 Covers Linux filesystems history, ext2 motivation, ext2 features,
241 design, physical structure on disk, performance, benchmarks,
242 e2fsck's passes description... A must read!
243 Notes: This paper was first published in the Proceedings of the
244 First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
246 * Title: "Analysis of the Ext2fs structure"
247 Author: Louis-Dominique Dubeau.
248 URL: http://step.polymtl.ca/~ldd/ext2fs/ext2fs_toc.html
249 Keywords: ext2, filesystem, ext2fs.
250 Description: Description of ext2's blocks, directories, inodes,
251 bitmaps, invariants...
253 * Title: "Journaling the Linux ext2fs Filesystem"
254 Author: Stephen C. Tweedie.
256 ftp://ftp.uk.linux.org/pub/linux/sct/fs/jfs/journal-design.ps.gz
257 Keywords: ext3, journaling.
258 Description: Excellent 8-pages paper explaining the journaling
259 capabilities added to ext2 by the author, showing different
260 problems faced and the alternatives chosen.
262 * Title: "Kernel API changes from 2.0 to 2.2"
263 Author: Richard Gooch.
265 http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.2.html
266 Keywords: 2.2, changes.
267 Description: Kernel functions/structures/variables which changed
270 * Title: "Kernel API changes from 2.2 to 2.4"
271 Author: Richard Gooch.
273 http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.4.html
274 Keywords: 2.4, changes.
275 Description: Kernel functions/structures/variables which changed
278 * Title: "Linux Kernel Module Programming Guide"
279 Author: Ori Pomerantz.
280 URL: http://www.tldp.org/LDP/lkmpg/mpg.html
281 Keywords: modules, GPL book, /proc, ioctls, system calls,
283 Description: Very nice 92 pages GPL book on the topic of modules
284 programming. Lots of examples.
286 * Title: "Device File System (devfs) Overview"
287 Author: Richard Gooch.
288 URL: http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.txt
289 Keywords: filesystem, /dev, devfs, dynamic devices, major/minor
290 allocation, device management.
291 Description: Document describing Richard Gooch's controversial
292 devfs, which allows for dynamic devices, only shows present
293 devices in /dev, gets rid of major/minor numbers allocation
294 problems, and allows for hundreds of identical devices (which some
295 USB systems might demand soon).
297 * Title: "I/O Event Handling Under Linux"
298 Author: Richard Gooch.
299 URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
300 Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
302 Description: From the Introduction: "I/O Event handling is about
303 how your Operating System allows you to manage a large number of
304 open files (file descriptors in UNIX/POSIX, or FDs) in your
305 application. You want the OS to notify you when FDs become active
306 (have data ready to be read or are ready for writing). Ideally you
307 want a mechanism that is scalable. This means a large number of
308 inactive FDs cost very little in memory and CPU time to manage".
310 * Title: "The Kernel Hacking HOWTO"
311 Author: Various Talented People, and Rusty.
313 http://www.lisoleg.net/doc/Kernel-Hacking-HOWTO/kernel-hacking-HOW
315 Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
316 symbols, return conventions.
317 Description: From the Introduction: "Please understand that I
318 never wanted to write this document, being grossly underqualified,
319 but I always wanted to read it, and this was the only way. I
320 simply explain some best practices, and give reading entry-points
321 into the kernel sources. I avoid implementation details: that's
322 what the code is for, and I ignore whole tracts of useful
323 routines. This document assumes familiarity with C, and an
324 understanding of what the kernel is, and how it is used. It was
325 originally written for the 2.3 kernels, but nearly all of it
326 applies to 2.2 too; 2.0 is slightly different".
328 * Title: "ALSA 0.5.0 Developer documentation"
329 Author: Stephan 'Jumpy' Bartels .
330 URL: http://www.math.TU-Berlin.de/~sbartels/alsa/
331 Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
332 Description: Advanced Linux Sound Architecture for developers,
333 both at kernel and user-level sides. Work in progress. ALSA is
334 supposed to be Linux's next generation sound architecture.
336 * Title: "Programming Guide for Linux USB Device Drivers"
337 Author: Detlef Fliegl.
338 URL: http://usb.in.tum.de/usbdoc/
339 Keywords: USB, universal serial bus.
340 Description: A must-read. From the Preface: "This document should
341 give detailed information about the current state of the USB
342 subsystem and its API for USB device drivers. The first section
343 will deal with the basics of USB devices. You will learn about
344 different types of devices and their properties. Going into detail
345 you will see how USB devices communicate on the bus. The second
346 section gives an overview of the Linux USB subsystem [2] and the
347 device driver framework. Then the API and its data structures will
348 be explained step by step. The last section of this document
349 contains a reference of all API calls and their return codes".
350 Notes: Beware: the main page states: "This document may not be
351 published, printed or used in excerpts without explicit permission
352 of the author". Fortunately, it may still be read...
354 * Title: "Tour Of the Linux Kernel Source"
355 Author: Vijo Cherian.
356 URL: http://www.geocities.com/vijoc/tolks/tolks.html
358 Description: A classic of this page! Was lost for a while and is
359 back again. Thanks Vijo! TOLKS: the name says it all. A tour of
360 the sources, describing directories, files, variables, data
361 structures... It covers general stuff, device drivers,
362 filesystems, IPC and Networking Code.
364 * Title: "Linux Kernel Mailing List Glossary"
366 URL: http://www.movement.uklinux.net/glossary.html
367 Keywords: glossary, terms, linux-kernel.
368 Description: From the introduction: "This glossary is intended as
369 a brief description of some of the acronyms and terms you may hear
370 during discussion of the Linux kernel".
372 * Title: "Linux Kernel Locking HOWTO"
373 Author: Various Talented People, and Rusty.
375 http://netfilter.kernelnotes.org/unreliable-guides/kernel-locking-
377 Keywords: locks, locking, spinlock, semaphore, atomic, race
378 condition, bottom halves, tasklets, softirqs.
379 Description: The title says it all: document describing the
380 locking system in the Linux Kernel either in uniprocessor or SMP
382 Notes: "It was originally written for the later (>2.3.47) 2.3
383 kernels, but most of it applies to 2.2 too; 2.0 is slightly
384 different". Freely redistributable under the conditions of the GNU
385 General Public License.
387 * Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New
390 URL: http://www.linux-mag.com/1999-05/gear_01.html
391 Keywords: ports, porting.
392 Description: Article from Linux Magazine on porting from 2.0 to
395 * Title: "Porting Device Drivers To Linux 2.2: part II"
397 URL: http://www.linux-mag.com/1999-06/gear_01.html
398 Keywords: ports, porting.
399 Description: Second part on porting from 2.0 to 2.2 kernels.
401 * Title: "How To Make Sure Your Driver Will Work On The Power
403 Author: Paul Mackerras.
404 URL: http://www.linux-mag.com/1999-07/gear_01.html
405 Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
406 Description: The title says it all.
408 * Title: "An Introduction to SCSI Drivers"
410 URL: http://www.linux-mag.com/1999-08/gear_01.html
411 Keywords: SCSI, device, driver.
412 Description: The title says it all.
414 * Title: "Advanced SCSI Drivers And Other Tales"
416 URL: http://www.linux-mag.com/1999-09/gear_01.html
417 Keywords: SCSI, device, driver, advanced.
418 Description: The title says it all.
420 * Title: "Writing Linux Mouse Drivers"
422 URL: http://www.linux-mag.com/1999-10/gear_01.html
423 Keywords: mouse, driver, gpm.
424 Description: The title says it all.
426 * Title: "More on Mouse Drivers"
428 URL: http://www.linux-mag.com/1999-11/gear_01.html
429 Keywords: mouse, driver, gpm, races, asynchronous I/O.
430 Description: The title still says it all.
432 * Title: "Writing Video4linux Radio Driver"
434 URL: http://www.linux-mag.com/1999-12/gear_01.html
435 Keywords: video4linux, driver, radio, radio devices.
436 Description: The title says it all.
438 * Title: "Video4linux Drivers, Part 1: Video-Capture Device"
440 URL: http://www.linux-mag.com/2000-01/gear_01.html
441 Keywords: video4linux, driver, video capture, capture devices,
443 Description: The title says it all.
445 * Title: "Video4linux Drivers, Part 2: Video-capture Devices"
447 URL: http://www.linux-mag.com/2000-02/gear_01.html
448 Keywords: video4linux, driver, video capture, capture devices,
449 camera driver, control, query capabilities, capability, facility.
450 Description: The title says it all.
452 * Title: "PCI Management in Linux 2.2"
454 URL: http://www.linux-mag.com/2000-03/gear_01.html
455 Keywords: PCI, bus, bus-mastering.
456 Description: The title says it all.
458 * Title: "Linux 2.4 Kernel Internals"
459 Author: Tigran Aivazian and Christoph Hellwig.
460 URL: http://www.moses.uklinux.net/patches/lki.html
461 Keywords: Linux, kernel, booting, SMB boot, VFS, page cache.
462 Description: A little book used for a short training course.
463 Covers building the kernel image, booting (including SMP bootup),
464 process management, VFS and more.
466 * Title: "Linux IP Networking. A Guide to the Implementation and
467 Modification of the Linux Protocol Stack."
468 Author: Glenn Herrin.
470 http://kernelnewbies.org/documents/ipnetworking/linuxipnetworking.
472 Keywords: network, networking, protocol, IP, UDP, TCP, connection,
473 socket, receiving, transmitting, forwarding, routing, packets,
474 modules, /proc, sk_buff, FIB, tags.
475 Description: Excellent paper devoted to the Linux IP Networking,
476 explaining anything from the kernel's to the user space
477 configuration tools' code. Very good to get a general overview of
478 the kernel networking implementation and understand all steps
479 packets follow from the time they are received at the network
480 device till they are delivered to applications. The studied kernel
481 code is from 2.2.14 version. Provides code for a working packet
484 * Title: "Get those boards talking under Linux."
485 Author: Alex Ivchenko.
486 URL: http://www.ednmag.com/ednmag/reg/2000/06222000/13df2.htm
487 Keywords: data-acquisition boards, drivers, modules, interrupts,
489 Description: Article written for people wishing to make their data
490 acquisition boards work on their GNU/Linux machines. Gives a basic
491 overview on writing drivers, from the naming of functions to
493 Notes: Two-parts article. Part II is at
494 http://www.ednmag.com/ednmag/reg/2000/07062000/14df.htm
496 * Title: "Linux PCMCIA Programmer's Guide"
498 URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
500 Description: "This document describes how to write kernel device
501 drivers for the Linux PCMCIA Card Services interface. It also
502 describes how to write user-mode utilities for communicating with
505 * Title: "The Linux Kernel NFSD Implementation"
508 http://www.cse.unsw.edu.au/~neilb/oss/linux-commentary/nfsd.html
509 Keywords: knfsd, nfsd, NFS, RPC, lockd, mountd, statd.
510 Description: The title says it all.
511 Notes: Covers knfsd's version 1.4.7 (patch against 2.2.7 kernel).
513 * Title: "A Linux vm README"
514 Author: Kanoj Sarcar.
515 URL: http://reality.sgi.com/kanoj_engr/vm229.html
516 Keywords: virtual memory, mm, pgd, vma, page, page flags, page
517 cache, swap cache, kswapd.
518 Description: Telegraphic, short descriptions and definitions
519 relating the Linux virtual memory implementation.
521 * Title: "(nearly) Complete Linux Loadable Kernel Modules. The
522 definitive guide for hackers, virus coders and system
524 Author: pragmatic/THC.
525 URL: http://packetstorm.securify.com/groups/thc/LKM_HACKING.html
526 Keywords: syscalls, intercept, hide, abuse, symbol table.
527 Description: Interesting paper on how to abuse the Linux kernel in
528 order to intercept and modify syscalls, make
529 files/directories/processes invisible, become root, hijack ttys,
530 write kernel modules based virus... and solutions for admins to
531 avoid all those abuses.
532 Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
533 kernels. Also available in txt format at
534 http://www.blacknemesis.org/hacking/txt/cllkm.txt
538 * Title: "Linux Device Drivers"
539 Author: Alessandro Rubini.
540 Publisher: O'Reilly & Associates.
545 * Title: "Linux Device Drivers, 2nd Edition"
546 Author: Alessandro Rubini and Jonathan Corbet.
547 Publisher: O'Reilly & Associates.
551 Notes: Further information in
552 http://www.oreilly.com/catalog/linuxdrive2/
554 * Title: "Linux Kernel Internals"
555 Author: Michael Beck.
556 Publisher: Addison-Wesley.
558 ISBN: 0-201-33143-8 (second edition)
560 * Title: "The Design of the UNIX Operating System"
561 Author: Maurice J. Bach.
562 Publisher: Prentice Hall.
567 * Title: "The Design and Implementation of the 4.3 BSD UNIX
569 Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
570 Karels, John S. Quarterman.
571 Publisher: Addison-Wesley.
572 Date: 1989 (reprinted with corrections on October, 1990).
575 * Title: "The Design and Implementation of the 4.4 BSD UNIX
577 Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
579 Publisher: Addison-Wesley.
583 * Title: "Programmation Linux 2.0 API systeme et fonctionnement du
585 Author: Remy Card, Eric Dumas, Franck Mevel.
592 * Title: "The Linux Kernel Book"
593 Author: Remy Card, Eric Dumas, Franck Mevel.
594 Publisher: John Wiley & Sons.
597 Notes: English translation.
600 Author: Remy Card, Eric Dumas, Franck Mevel.
601 Publisher: GestiĆ³n 2000.
605 Notes: Spanish translation.
607 * Title: "Unix internals -- the new frontiers"
608 Author: Uresh Vahalia.
609 Publisher: Prentice Hall.
614 * Title: "Linux Core Kernel Commentary. Guide to Insider's Knowledge
615 on the Core Kernel of the Linux Code"
616 Author: Scott Maxwell.
621 Notes: CD-ROM included. Line by line commentary of the kernel
624 * Title: "Linux IP Stacks Commentary"
625 Author: Stephen Satchell and HBJ Clifford.
630 Notes: Line by line source code commentary book.
632 * Title: "Programming for the real world - POSIX.4"
633 Author: Bill O. Gallmeister.
634 Publisher: O'Reilly & Associates, Inc..
638 Notes: Though not being directly about Linux, Linux aims to be
639 POSIX. Good reference.
641 * Title: "Understanding the Linux Kernel"
642 Author: Daniel P. Bovet and Marco Cesati.
643 Publisher: O'Reilly & Associates, Inc..
647 Notes: Further information in
648 http://www.oreilly.com/catalog/linuxkernel/
652 * Name: linux/Documentation
654 URL: Just look inside your kernel sources.
655 Keywords: anything, DocBook.
656 Description: Documentation that comes with the kernel sources,
657 inside the Documentation directory. Some pages from this document
658 (including this document itself) have been moved there, and might
659 be more up to date than the web version.
661 * Name: "Linux Source Driver"
662 URL: http://lsd.linux.cz
663 Keywords: Browsing source code.
664 Description: "Linux Source Driver (LSD) is an application, which
665 can make browsing source codes of Linux kernel easier than you can
666 imagine. You can select between multiple versions of kernel (e.g.
667 0.01, 1.0.0, 2.0.33, 2.0.34pre13, 2.0.0, 2.1.101 etc.). With LSD
668 you can search Linux kernel (fulltext, macros, types, functions
669 and variables) and LSD can generate patches for you on the fly
670 (files, directories or kernel)".
672 * Name: "Linux Kernel Source Reference"
673 Author: Thomas Graichen.
674 URL: http://innominate.org/~graichen/projects/lksr/
675 Keywords: CVS, web, cvsweb, browsing source code.
676 Description: Web interface to a CVS server with the kernel
677 sources. "Here you can have a look at any file of the Linux kernel
678 sources of any version starting from 1.0 up to the (daily updated)
679 current version available. Also you can check the differences
680 between two versions of a file".
682 * Name: "Cross-Referencing Linux"
683 URL: http://lxr.linux.no/source/
684 Keywords: Browsing source code.
685 Description: Another web-based Linux kernel source code browser.
686 Lots of cross references to variables and functions. You can see
687 where they are defined and where they are used.
689 * Name: "Linux Weekly News"
691 Keywords: latest kernel news.
692 Description: The title says it all. There's a fixed kernel section
693 summarizing developers' work, bug fixes, new features and versions
694 produced during the week. Published every Thursday.
696 * Name: "Kernel Traffic"
697 URL: http://www.kerneltraffic.org/kernel-traffic/
698 Keywords: linux-kernel mailing list, weekly kernel news.
699 Description: Weekly newsletter covering the most relevant
700 discussions of the linux-kernel mailing list.
702 * Name: "CuTTiNG.eDGe.LiNuX"
703 URL: http://edge.kernelnotes.org
704 Keywords: changelist.
705 Description: Site which provides the changelist for every kernel
706 release. What's new, what's better, what's changed. Myrdraal reads
707 the patches and describes them. Pointers to the patches are there,
710 * Name: "New linux-kernel Mailing List FAQ"
711 URL: http://www.tux.org/lkml/
712 Keywords: linux-kernel mailing list FAQ.
713 Description: linux-kernel is a mailing list for developers to
714 communicate. This FAQ builds on the previous linux-kernel mailing
715 list FAQ maintained by Frohwalt Egerer, who no longer maintains
716 it. Read it to see how to join the mailing list. Dozens of
717 interesting questions regarding the list, Linux, developers (who
718 is ...?), terms (what is...?) are answered here too. Just read it.
720 * Name: "Linux Virtual File System"
721 Author: Peter J. Braam.
722 URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
723 Keywords: slides, VFS, inode, superblock, dentry, dcache.
724 Description: Set of slides, presumably from a presentation on the
725 Linux VFS layer. Covers version 2.1.x, with dentries and the
728 * Name: "Gary's Encyclopedia - The Linux Kernel"
729 Author: Gary (I suppose...).
730 URL: http://members.aa.net/~swear/pedia/kernel.html
731 Keywords: links, not found here?.
732 Description: Gary's Encyclopedia exists to allow the rapid finding
733 of documentation and other information of interest to GNU/Linux
734 users. It has about 4000 links to external pages in 150 major
735 categories. This link is for kernel-specific links, documents,
736 sites... Look there if you could not find here what you were
739 * Name: "The home page of Linux-MM"
740 Author: The Linux-MM team.
741 URL: http://linux-mm.org/
742 Keywords: memory management, Linux-MM, mm patches, TODO, docs,
744 Description: Site devoted to Linux Memory Management development.
745 Memory related patches, HOWTOs, links, mm developers... Don't miss
746 it if you are interested in memory management development!
748 * Name: "Kernel Newbies IRC Channel"
749 URL: http://www.kernelnewbies.org
750 Keywords: IRC, newbies, channel, asking doubts.
751 Description: #kernelnewbies on irc.openprojects.net. From the web
752 page: "#kernelnewbies is an IRC network dedicated to the 'newbie'
753 kernel hacker. The audience mostly consists of people who are
754 learning about the kernel, working on kernel projects or
755 professional kernel hackers that want to help less seasoned kernel
756 people. [...] #kernelnewbies is on the Open Projects IRC Network,
757 try irc.openprojects.net or irc.<country>.openprojects.net as your
758 server and then /join #kernelnewbies". It also hosts articles,
761 * Name: "linux-kernel mailing list archives and search engines"
762 URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
763 URL: http://www.kernelnotes.org/lnxlists/linux-kernel/
764 URL: http://www.geocrawler.com
765 Keywords: linux-kernel, archives, search.
766 Description: Some of the linux-kernel mailing list archivers. If
767 you have a better/another one, please let me know.
768 _________________________________________________________________
770 Document last updated on Thu Jun 28 15:09:39 CEST 2001