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: "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.
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.
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
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.
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.
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...).
95 * Title: "Linux as a Case Study: Its Extracted Software
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,
101 Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
102 1999. A mixture of the previous two documents from the same
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,
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.
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".
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
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,
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".
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
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
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".
186 * Title: "Network Buffers And Memory Management"
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".
197 * Title: "Writing Linux Device Drivers"
198 Author: Michael K. Johnson.
199 URL: http://users.evitech.fi/~tk/rtos/writing_linux_device_d.html
200 Keywords: files, VFS, file operations, kernel interface, character
201 vs block devices, I/O access, hardware interrupts, DMA, access to
202 user memory, memory allocation, timers.
203 Description: Introductory 50-minutes (sic) tutorial on writing
204 device drivers. 12 pages written by the same author of the "Kernel
205 Hackers' Guide" which give a very good overview of the topic.
207 * Title: "The Venus kernel interface"
208 Author: Peter J. Braam.
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
218 * Title: "Programming PCI-Devices under Linux"
219 Author: Claus Schroeter.
221 ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps
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.
229 * Title: "Writing Character Device Driver for Linux"
230 Author: R. Baruch and C. Schroeter.
232 ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers
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.
239 * Title: "Design and Implementation of the Second Extended
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.
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...
260 * Title: "Journaling the Linux ext2fs Filesystem"
261 Author: Stephen C. Tweedie.
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.
269 * Title: "Kernel API changes from 2.0 to 2.2"
270 Author: Richard Gooch.
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
277 * Title: "Kernel API changes from 2.2 to 2.4"
278 Author: Richard Gooch.
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
285 * Title: "Linux Kernel Module Programming Guide"
286 Author: Ori Pomerantz.
287 URL: http://tldp.org/LDP/lkmpg/2.6/html/index.html
288 Keywords: modules, GPL book, /proc, ioctls, system calls,
290 Description: Very nice 92 pages GPL book on the topic of modules
291 programming. Lots of examples.
293 * Title: "I/O Event Handling Under Linux"
294 Author: Richard Gooch.
295 URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
296 Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
298 Description: From the Introduction: "I/O Event handling is about
299 how your Operating System allows you to manage a large number of
300 open files (file descriptors in UNIX/POSIX, or FDs) in your
301 application. You want the OS to notify you when FDs become active
302 (have data ready to be read or are ready for writing). Ideally you
303 want a mechanism that is scalable. This means a large number of
304 inactive FDs cost very little in memory and CPU time to manage".
306 * Title: "The Kernel Hacking HOWTO"
307 Author: Various Talented People, and Rusty.
308 Location: in kernel tree, Documentation/DocBook/kernel-hacking/
309 (must be built as "make {htmldocs | psdocs | pdfdocs})
310 Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
311 symbols, return conventions.
312 Description: From the Introduction: "Please understand that I
313 never wanted to write this document, being grossly underqualified,
314 but I always wanted to read it, and this was the only way. I
315 simply explain some best practices, and give reading entry-points
316 into the kernel sources. I avoid implementation details: that's
317 what the code is for, and I ignore whole tracts of useful
318 routines. This document assumes familiarity with C, and an
319 understanding of what the kernel is, and how it is used. It was
320 originally written for the 2.3 kernels, but nearly all of it
321 applies to 2.2 too; 2.0 is slightly different".
323 * Title: "Writing an ALSA Driver"
324 Author: Takashi Iwai <tiwai@suse.de>
325 URL: http://www.alsa-project.org/~iwai/writing-an-alsa-driver/index.html
326 Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
327 Description: Advanced Linux Sound Architecture for developers,
328 both at kernel and user-level sides. ALSA is the Linux kernel
329 sound architecture in the 2.6 kernel version.
331 * Title: "Programming Guide for Linux USB Device Drivers"
332 Author: Detlef Fliegl.
333 URL: http://usb.in.tum.de/usbdoc/
334 Keywords: USB, universal serial bus.
335 Description: A must-read. From the Preface: "This document should
336 give detailed information about the current state of the USB
337 subsystem and its API for USB device drivers. The first section
338 will deal with the basics of USB devices. You will learn about
339 different types of devices and their properties. Going into detail
340 you will see how USB devices communicate on the bus. The second
341 section gives an overview of the Linux USB subsystem [2] and the
342 device driver framework. Then the API and its data structures will
343 be explained step by step. The last section of this document
344 contains a reference of all API calls and their return codes".
345 Notes: Beware: the main page states: "This document may not be
346 published, printed or used in excerpts without explicit permission
347 of the author". Fortunately, it may still be read...
349 * Title: "Tour Of the Linux Kernel Source"
350 Author: Vijo Cherian.
351 URL: http://www.geocities.com/vijoc/tolks/tolks.html
353 Description: A classic of this page! Was lost for a while and is
354 back again. Thanks Vijo! TOLKS: the name says it all. A tour of
355 the sources, describing directories, files, variables, data
356 structures... It covers general stuff, device drivers,
357 filesystems, IPC and Networking Code.
359 * Title: "Linux Kernel Mailing List Glossary"
361 URL: http://kernelnewbies.org/glossary/
362 Keywords: glossary, terms, linux-kernel.
363 Description: From the introduction: "This glossary is intended as
364 a brief description of some of the acronyms and terms you may hear
365 during discussion of the Linux kernel".
367 * Title: "Linux Kernel Locking HOWTO"
368 Author: Various Talented People, and Rusty.
369 Location: in kernel tree, Documentation/DocBook/kernel-locking/
370 (must be built as "make {htmldocs | psdocs | pdfdocs})
371 Keywords: locks, locking, spinlock, semaphore, atomic, race
372 condition, bottom halves, tasklets, softirqs.
373 Description: The title says it all: document describing the
374 locking system in the Linux Kernel either in uniprocessor or SMP
376 Notes: "It was originally written for the later (>2.3.47) 2.3
377 kernels, but most of it applies to 2.2 too; 2.0 is slightly
378 different". Freely redistributable under the conditions of the GNU
379 General Public License.
381 * Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New
384 URL: http://www.linux-mag.com/1999-05/gear_01.html
385 Keywords: ports, porting.
386 Description: Article from Linux Magazine on porting from 2.0 to
389 * Title: "Porting Device Drivers To Linux 2.2: part II"
391 URL: http://www.linux-mag.com/1999-06/gear_01.html
392 Keywords: ports, porting.
393 Description: Second part on porting from 2.0 to 2.2 kernels.
395 * Title: "How To Make Sure Your Driver Will Work On The Power
397 Author: Paul Mackerras.
398 URL: http://www.linux-mag.com/1999-07/gear_01.html
399 Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
400 Description: The title says it all.
402 * Title: "An Introduction to SCSI Drivers"
404 URL: http://www.linux-mag.com/1999-08/gear_01.html
405 Keywords: SCSI, device, driver.
406 Description: The title says it all.
408 * Title: "Advanced SCSI Drivers And Other Tales"
410 URL: http://www.linux-mag.com/1999-09/gear_01.html
411 Keywords: SCSI, device, driver, advanced.
412 Description: The title says it all.
414 * Title: "Writing Linux Mouse Drivers"
416 URL: http://www.linux-mag.com/1999-10/gear_01.html
417 Keywords: mouse, driver, gpm.
418 Description: The title says it all.
420 * Title: "More on Mouse Drivers"
422 URL: http://www.linux-mag.com/1999-11/gear_01.html
423 Keywords: mouse, driver, gpm, races, asynchronous I/O.
424 Description: The title still says it all.
426 * Title: "Writing Video4linux Radio Driver"
428 URL: http://www.linux-mag.com/1999-12/gear_01.html
429 Keywords: video4linux, driver, radio, radio devices.
430 Description: The title says it all.
432 * Title: "Video4linux Drivers, Part 1: Video-Capture Device"
434 URL: http://www.linux-mag.com/2000-01/gear_01.html
435 Keywords: video4linux, driver, video capture, capture devices,
437 Description: The title says it all.
439 * Title: "Video4linux Drivers, Part 2: Video-capture Devices"
441 URL: http://www.linux-mag.com/2000-02/gear_01.html
442 Keywords: video4linux, driver, video capture, capture devices,
443 camera driver, control, query capabilities, capability, facility.
444 Description: The title says it all.
446 * Title: "PCI Management in Linux 2.2"
448 URL: http://www.linux-mag.com/2000-03/gear_01.html
449 Keywords: PCI, bus, bus-mastering.
450 Description: The title says it all.
452 * Title: "Linux 2.4 Kernel Internals"
453 Author: Tigran Aivazian and Christoph Hellwig.
454 URL: http://www.moses.uklinux.net/patches/lki.html
455 Keywords: Linux, kernel, booting, SMB boot, VFS, page cache.
456 Description: A little book used for a short training course.
457 Covers building the kernel image, booting (including SMP bootup),
458 process management, VFS and more.
460 * Title: "Linux IP Networking. A Guide to the Implementation and
461 Modification of the Linux Protocol Stack."
462 Author: Glenn Herrin.
464 http://kernelnewbies.org/documents/ipnetworking/linuxipnetworking.
466 Keywords: network, networking, protocol, IP, UDP, TCP, connection,
467 socket, receiving, transmitting, forwarding, routing, packets,
468 modules, /proc, sk_buff, FIB, tags.
469 Description: Excellent paper devoted to the Linux IP Networking,
470 explaining anything from the kernel's to the user space
471 configuration tools' code. Very good to get a general overview of
472 the kernel networking implementation and understand all steps
473 packets follow from the time they are received at the network
474 device till they are delivered to applications. The studied kernel
475 code is from 2.2.14 version. Provides code for a working packet
478 * Title: "Get those boards talking under Linux."
479 Author: Alex Ivchenko.
480 URL: http://www.edn.com/article/CA46968.html
481 Keywords: data-acquisition boards, drivers, modules, interrupts,
483 Description: Article written for people wishing to make their data
484 acquisition boards work on their GNU/Linux machines. Gives a basic
485 overview on writing drivers, from the naming of functions to
487 Notes: Two-parts article. Part II is at
488 URL: http://www.edn.com/article/CA46998.html
490 * Title: "Linux PCMCIA Programmer's Guide"
492 URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
494 Description: "This document describes how to write kernel device
495 drivers for the Linux PCMCIA Card Services interface. It also
496 describes how to write user-mode utilities for communicating with
499 * Title: "The Linux Kernel NFSD Implementation"
502 http://www.cse.unsw.edu.au/~neilb/oss/linux-commentary/nfsd.html
503 Keywords: knfsd, nfsd, NFS, RPC, lockd, mountd, statd.
504 Description: The title says it all.
505 Notes: Covers knfsd's version 1.4.7 (patch against 2.2.7 kernel).
507 * Title: "A Linux vm README"
508 Author: Kanoj Sarcar.
509 URL: http://reality.sgi.com/kanoj_engr/vm229.html
510 Keywords: virtual memory, mm, pgd, vma, page, page flags, page
511 cache, swap cache, kswapd.
512 Description: Telegraphic, short descriptions and definitions
513 relating the Linux virtual memory implementation.
515 * Title: "(nearly) Complete Linux Loadable Kernel Modules. The
516 definitive guide for hackers, virus coders and system
518 Author: pragmatic/THC.
519 URL: http://packetstormsecurity.org/docs/hack/LKM_HACKING.html
520 Keywords: syscalls, intercept, hide, abuse, symbol table.
521 Description: Interesting paper on how to abuse the Linux kernel in
522 order to intercept and modify syscalls, make
523 files/directories/processes invisible, become root, hijack ttys,
524 write kernel modules based virus... and solutions for admins to
525 avoid all those abuses.
526 Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
531 * Title: "Linux Device Drivers"
532 Author: Alessandro Rubini.
533 Publisher: O'Reilly & Associates.
538 * Title: "Linux Device Drivers, 2nd Edition"
539 Author: Alessandro Rubini and Jonathan Corbet.
540 Publisher: O'Reilly & Associates.
544 Notes: Further information in
545 http://www.oreilly.com/catalog/linuxdrive2/
547 * Title: "Linux Device Drivers, 3nd Edition"
548 Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
549 Publisher: O'Reilly & Associates.
553 Notes: Further information in
554 http://www.oreilly.com/catalog/linuxdrive3/
555 PDF format, URL: http://lwn.net/Kernel/LDD3/
557 * Title: "Linux Kernel Internals"
558 Author: Michael Beck.
559 Publisher: Addison-Wesley.
561 ISBN: 0-201-33143-8 (second edition)
563 * Title: "The Design of the UNIX Operating System"
564 Author: Maurice J. Bach.
565 Publisher: Prentice Hall.
570 * Title: "The Design and Implementation of the 4.3 BSD UNIX
572 Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
573 Karels, John S. Quarterman.
574 Publisher: Addison-Wesley.
575 Date: 1989 (reprinted with corrections on October, 1990).
578 * Title: "The Design and Implementation of the 4.4 BSD UNIX
580 Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
582 Publisher: Addison-Wesley.
586 * Title: "Programmation Linux 2.0 API systeme et fonctionnement du
588 Author: Remy Card, Eric Dumas, Franck Mevel.
595 * Title: "The Linux Kernel Book"
596 Author: Remy Card, Eric Dumas, Franck Mevel.
597 Publisher: John Wiley & Sons.
600 Notes: English translation.
603 Author: Remy Card, Eric Dumas, Franck Mevel.
604 Publisher: GestiĆ³n 2000.
608 Notes: Spanish translation.
610 * Title: "Unix internals -- the new frontiers"
611 Author: Uresh Vahalia.
612 Publisher: Prentice Hall.
617 * Title: "Linux Core Kernel Commentary. Guide to Insider's Knowledge
618 on the Core Kernel of the Linux Code"
619 Author: Scott Maxwell.
624 Notes: CD-ROM included. Line by line commentary of the kernel
627 * Title: "Linux IP Stacks Commentary"
628 Author: Stephen Satchell and HBJ Clifford.
633 Notes: Line by line source code commentary book.
635 * Title: "Programming for the real world - POSIX.4"
636 Author: Bill O. Gallmeister.
637 Publisher: O'Reilly & Associates, Inc..
641 Notes: Though not being directly about Linux, Linux aims to be
642 POSIX. Good reference.
644 * Title: "Understanding the Linux Kernel"
645 Author: Daniel P. Bovet and Marco Cesati.
646 Publisher: O'Reilly & Associates, Inc..
650 Notes: Further information in
651 http://www.oreilly.com/catalog/linuxkernel/
655 * Name: linux/Documentation
657 URL: Just look inside your kernel sources.
658 Keywords: anything, DocBook.
659 Description: Documentation that comes with the kernel sources,
660 inside the Documentation directory. Some pages from this document
661 (including this document itself) have been moved there, and might
662 be more up to date than the web version.
664 * Name: "Linux Source Driver"
665 URL: http://lsd.linux.cz
666 Keywords: Browsing source code.
667 Description: "Linux Source Driver (LSD) is an application, which
668 can make browsing source codes of Linux kernel easier than you can
669 imagine. You can select between multiple versions of kernel (e.g.
670 0.01, 1.0.0, 2.0.33, 2.0.34pre13, 2.0.0, 2.1.101 etc.). With LSD
671 you can search Linux kernel (fulltext, macros, types, functions
672 and variables) and LSD can generate patches for you on the fly
673 (files, directories or kernel)".
675 * Name: "Linux Kernel Source Reference"
676 Author: Thomas Graichen.
677 URL: http://innominate.org/~graichen/projects/lksr/
678 Keywords: CVS, web, cvsweb, browsing source code.
679 Description: Web interface to a CVS server with the kernel
680 sources. "Here you can have a look at any file of the Linux kernel
681 sources of any version starting from 1.0 up to the (daily updated)
682 current version available. Also you can check the differences
683 between two versions of a file".
685 * Name: "Cross-Referencing Linux"
686 URL: http://lxr.linux.no/source/
687 Keywords: Browsing source code.
688 Description: Another web-based Linux kernel source code browser.
689 Lots of cross references to variables and functions. You can see
690 where they are defined and where they are used.
692 * Name: "Linux Weekly News"
694 Keywords: latest kernel news.
695 Description: The title says it all. There's a fixed kernel section
696 summarizing developers' work, bug fixes, new features and versions
697 produced during the week. Published every Thursday.
699 * Name: "Kernel Traffic"
700 URL: http://www.kerneltraffic.org/kernel-traffic/
701 Keywords: linux-kernel mailing list, weekly kernel news.
702 Description: Weekly newsletter covering the most relevant
703 discussions of the linux-kernel mailing list.
705 * Name: "CuTTiNG.eDGe.LiNuX"
706 URL: http://edge.kernelnotes.org
707 Keywords: changelist.
708 Description: Site which provides the changelist for every kernel
709 release. What's new, what's better, what's changed. Myrdraal reads
710 the patches and describes them. Pointers to the patches are there,
713 * Name: "New linux-kernel Mailing List FAQ"
714 URL: http://www.tux.org/lkml/
715 Keywords: linux-kernel mailing list FAQ.
716 Description: linux-kernel is a mailing list for developers to
717 communicate. This FAQ builds on the previous linux-kernel mailing
718 list FAQ maintained by Frohwalt Egerer, who no longer maintains
719 it. Read it to see how to join the mailing list. Dozens of
720 interesting questions regarding the list, Linux, developers (who
721 is ...?), terms (what is...?) are answered here too. Just read it.
723 * Name: "Linux Virtual File System"
724 Author: Peter J. Braam.
725 URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
726 Keywords: slides, VFS, inode, superblock, dentry, dcache.
727 Description: Set of slides, presumably from a presentation on the
728 Linux VFS layer. Covers version 2.1.x, with dentries and the
731 * Name: "Gary's Encyclopedia - The Linux Kernel"
732 Author: Gary (I suppose...).
733 URL: http://members.aa.net/~swear/pedia/kernel.html
734 Keywords: links, not found here?.
735 Description: Gary's Encyclopedia exists to allow the rapid finding
736 of documentation and other information of interest to GNU/Linux
737 users. It has about 4000 links to external pages in 150 major
738 categories. This link is for kernel-specific links, documents,
739 sites... Look there if you could not find here what you were
742 * Name: "The home page of Linux-MM"
743 Author: The Linux-MM team.
744 URL: http://linux-mm.org/
745 Keywords: memory management, Linux-MM, mm patches, TODO, docs,
747 Description: Site devoted to Linux Memory Management development.
748 Memory related patches, HOWTOs, links, mm developers... Don't miss
749 it if you are interested in memory management development!
751 * Name: "Kernel Newbies IRC Channel"
752 URL: http://www.kernelnewbies.org
753 Keywords: IRC, newbies, channel, asking doubts.
754 Description: #kernelnewbies on irc.openprojects.net. From the web
755 page: "#kernelnewbies is an IRC network dedicated to the 'newbie'
756 kernel hacker. The audience mostly consists of people who are
757 learning about the kernel, working on kernel projects or
758 professional kernel hackers that want to help less seasoned kernel
759 people. [...] #kernelnewbies is on the Open Projects IRC Network,
760 try irc.openprojects.net or irc.<country>.openprojects.net as your
761 server and then /join #kernelnewbies". It also hosts articles,
764 * Name: "linux-kernel mailing list archives and search engines"
765 URL: http://vger.kernel.org/vger-lists.html
766 URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
767 URL: http://marc.theaimsgroup.com/?l=linux-kernel
768 URL: http://groups.google.com/group/mlist.linux.kernel
769 URL: http://www.cs.helsinki.fi/linux/linux-kernel/
770 URL: http://www.lib.uaa.alaska.edu/linux-kernel/
771 Keywords: linux-kernel, archives, search.
772 Description: Some of the linux-kernel mailing list archivers. If
773 you have a better/another one, please let me know.
774 _________________________________________________________________
776 Document last updated on Sat 2005-NOV-19