About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / kernel-docs.txt

Custom Search

Based on kernel version 4.7.2. Page generated on 2016-08-22 22:46 EST.

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

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