About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / kernel-docs.txt




Custom Search

Based on kernel version 3.13. Page generated on 2014-01-20 22:03 EST.

1	
2	    Index of Documentation for People Interested in Writing and/or
3	
4	                   Understanding the Linux Kernel.
5	
6	          Juan-Mariano de Goyeneche <jmseyas@dit.upm.es>
7	
8	/*
9	 * The latest version of this document may be found at:
10	 *   http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
11	 */
12	
13	   The need for a document like this one became apparent in the
14	   linux-kernel mailing list as the same questions, asking for pointers
15	   to information, appeared again and again.
16	   
17	   Fortunately, as more and more people get to GNU/Linux, more and more
18	   get interested in the Kernel. But reading the sources is not always
19	   enough. It is easy to understand the code, but miss the concepts, the
20	   philosophy and design decisions behind this code.
21	   
22	   Unfortunately, not many documents are available for beginners to
23	   start. And, even if they exist, there was no "well-known" place which
24	   kept track of them. These lines try to cover this lack. All documents
25	   available on line known by the author are listed, while some reference
26	   books are also mentioned.
27	   
28	   PLEASE, if you know any paper not listed here or write a new document,
29	   send me an e-mail, and I'll include a reference to it here. Any
30	   corrections, ideas or comments are also welcomed.
31	   
32	   The papers that follow are listed in no particular order. All are
33	   cataloged with the following fields: the document's "Title", the
34	   "Author"/s, the "URL" where they can be found, some "Keywords" helpful
35	   when searching for specific topics, and a brief "Description" of the
36	   Document.
37	   
38	   Enjoy!
39	   
40	     ON-LINE DOCS:
41	       
42	     * Title: "Linux Device Drivers, Third Edition"
43	       Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
44	       URL: http://lwn.net/Kernel/LDD3/
45	       Description: A 600-page book covering the (2.6.10) driver
46	       programming API and kernel hacking in general.  Available under the
47	       Creative Commons Attribution-ShareAlike 2.0 license.
48	
49	     * Title: "The Linux Kernel"
50	       Author: David A. Rusling.
51	       URL: http://www.tldp.org/LDP/tlk/tlk.html
52	       Keywords: everything!, book.
53	       Description: On line, 200 pages book describing most aspects of
54	       the Linux Kernel. Probably, the first reference for beginners.
55	       Lots of illustrations explaining data structures use and
56	       relationships in the purest Richard W. Stevens' style. Contents:
57	       "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
58	       4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
59	       7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
60	       File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
61	       13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
62	       Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
63	       General Public License, Glossary". In short: a must have.
64	
65	     * Title: "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).
75	
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.
84	
85	     * Title: "Concrete Architecture of the Linux Kernel"
86	       Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
87	       URL: http://plg.uwaterloo.ca/
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...).
94	
95	     * Title: "Linux as a Case Study: Its Extracted Software
96	       Architecture"
97	       Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
98	       URL: http://plg.uwaterloo.ca/
99	       Keywords: software architecture, architecture recovery,
100	       redocumentation.
101	       Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
102	       1999. A mixture of the previous two documents from the same
103	       author.
104	
105	     * Title: "Overview of the Virtual File System"
106	       Author: Richard Gooch.
107	       URL: http://www.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.
114	
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".
124	
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".
137	
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".
149	
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".
159	
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".
173	
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".
185	
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".
196	       
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.
206	       
207	     * Title: "The Venus kernel interface"
208	       Author: Peter J. Braam.
209	       URL:
210	       http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
211	       Keywords: coda, filesystem, venus, cache manager.
212	       Description: "This document describes the communication between
213	       Venus and kernel level file system code needed for the operation
214	       of the Coda filesystem. This version document is meant to describe
215	       the current interface (version 1.0) as well as improvements we
216	       envisage".
217	
218	     * Title: "Programming PCI-Devices under Linux"
219	       Author: Claus Schroeter.
220	       URL:
221	       ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps.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.
227	
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.
236	
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.
250	
251	     * Title: "Analysis of the Ext2fs structure"
252	       Author: Louis-Dominique Dubeau.
253	       URL: http://www.nondot.org/sabre/os/files/FileSystems/ext2fs/
254	       Keywords: ext2, filesystem, ext2fs.
255	       Description: Description of ext2's blocks, directories, inodes,
256	       bitmaps, invariants...
257	
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.
266	
267	     * Title: "Kernel API changes from 2.0 to 2.2"
268	       Author: Richard Gooch.
269	       URL:
270	       http://www.linuxhq.com/guides/LKMPG/node28.html 
271	       Keywords: 2.2, changes.
272	       Description: Kernel functions/structures/variables which changed
273	       from 2.0.x to 2.2.x.
274	
275	     * Title: "Kernel API changes from 2.2 to 2.4"
276	       Author: Richard Gooch.
277	       Keywords: 2.4, changes.
278	       Description: Kernel functions/structures/variables which changed
279	       from 2.2.x to 2.4.x.
280	       
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.
288	       
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".
300	       
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".
317	       
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.
325	       
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...
343	
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".
351	       
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.
365	
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...
375	
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.
383	
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.
389	
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.
396	
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.
402	
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.
408	
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.
414	
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.
420	
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.
426	
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.
433	
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.
440	
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.
446	
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.
454	
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.
470	       
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
482	       
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.
491	
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).
499	       
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.
507	       
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.
521	       
522	     BOOKS: (Not on-line)
523	   
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
530	       
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/
539	
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/
549	
550	     * Title: "Linux Kernel Internals"
551	       Author: Michael Beck.
552	       Publisher: Addison-Wesley.
553	       Date: 1997.
554	       ISBN: 0-201-33143-8 (second edition)
555	       
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
562	       
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
570	       
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
578	       
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.
587	
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
594	
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.
603	
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
611	
612	     MISCELLANEOUS:
613	
614	     * Name: linux/Documentation
615	       Author: Many.
616	       URL: Just look inside your kernel sources.
617	       Keywords: anything, DocBook.
618	       Description: Documentation that comes with the kernel sources,
619	       inside the Documentation directory. Some pages from this document
620	       (including this document itself) have been moved there, and might
621	       be more up to date than the web version.
622	
623	     * Name: "Linux Kernel Source Reference"
624	       Author: Thomas Graichen.
625	       URL: http://marc.info/?l=linux-kernel&m=96446640102205&w=4
626	       Keywords: CVS, web, cvsweb, browsing source code.
627	       Description: Web interface to a CVS server with the kernel
628	       sources. "Here you can have a look at any file of the Linux kernel
629	       sources of any version starting from 1.0 up to the (daily updated)
630	       current version available. Also you can check the differences
631	       between two versions of a file".
632	
633	     * Name: "Cross-Referencing Linux"
634	       URL: http://lxr.linux.no/source/
635	       Keywords: Browsing source code.
636	       Description: Another web-based Linux kernel source code browser.
637	       Lots of cross references to variables and functions. You can see
638	       where they are defined and where they are used.
639	
640	     * Name: "Linux Weekly News"
641	       URL: http://lwn.net
642	       Keywords: latest kernel news.
643	       Description: The title says it all. There's a fixed kernel section
644	       summarizing developers' work, bug fixes, new features and versions
645	       produced during the week. Published every Thursday.
646	
647	     * Name: "Kernel Traffic"
648	       URL: http://kt.earth.li/kernel-traffic/index.html
649	       Keywords: linux-kernel mailing list, weekly kernel news.
650	       Description: Weekly newsletter covering the most relevant
651	       discussions of the linux-kernel mailing list.
652	
653	     * Name: "CuTTiNG.eDGe.LiNuX"
654	       URL: http://edge.kernelnotes.org
655	       Keywords: changelist.
656	       Description: Site which provides the changelist for every kernel
657	       release. What's new, what's better, what's changed. Myrdraal reads
658	       the patches and describes them. Pointers to the patches are there,
659	       too.
660	
661	     * Name: "New linux-kernel Mailing List FAQ"
662	       URL: http://www.tux.org/lkml/
663	       Keywords: linux-kernel mailing list FAQ.
664	       Description: linux-kernel is a mailing list for developers to
665	       communicate. This FAQ builds on the previous linux-kernel mailing
666	       list FAQ maintained by Frohwalt Egerer, who no longer maintains
667	       it. Read it to see how to join the mailing list. Dozens of
668	       interesting questions regarding the list, Linux, developers (who
669	       is ...?), terms (what is...?) are answered here too. Just read it.
670	
671	     * Name: "Linux Virtual File System"
672	       Author: Peter J. Braam.
673	       URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
674	       Keywords: slides, VFS, inode, superblock, dentry, dcache.
675	       Description: Set of slides, presumably from a presentation on the
676	       Linux VFS layer. Covers version 2.1.x, with dentries and the
677	       dcache.
678	
679	     * Name: "Gary's Encyclopedia - The Linux Kernel"
680	       Author: Gary (I suppose...).
681	       URL: http://slencyclopedia.berlios.de/index.html
682	       Keywords: linux, community, everything!
683	       Description: Gary's Encyclopedia exists to allow the rapid finding
684	       of documentation and other information of interest to GNU/Linux
685	       users. It has about 4000 links to external pages in 150 major
686	       categories. This link is for kernel-specific links, documents,
687	       sites...  This list is now hosted by developer.Berlios.de,
688	       but seems not to have been updated since sometime in 1999.
689	
690	     * Name: "The home page of Linux-MM"
691	       Author: The Linux-MM team.
692	       URL: http://linux-mm.org/
693	       Keywords: memory management, Linux-MM, mm patches, TODO, docs,
694	       mailing list.
695	       Description: Site devoted to Linux Memory Management development.
696	       Memory related patches, HOWTOs, links, mm developers... Don't miss
697	       it if you are interested in memory management development!
698	
699	     * Name: "Kernel Newbies IRC Channel"
700	       URL: http://www.kernelnewbies.org
701	       Keywords: IRC, newbies, channel, asking doubts.
702	       Description: #kernelnewbies on irc.openprojects.net. From the web
703	       page: "#kernelnewbies is an IRC network dedicated to the 'newbie'
704	       kernel hacker. The audience mostly consists of people who are
705	       learning about the kernel, working on kernel projects or
706	       professional kernel hackers that want to help less seasoned kernel
707	       people. [...] #kernelnewbies is on the Open Projects IRC Network,
708	       try irc.openprojects.net or irc.<country>.openprojects.net as your
709	       server and then /join #kernelnewbies". It also hosts articles,
710	       documents, FAQs...
711	       
712	     * Name: "linux-kernel mailing list archives and search engines"
713	       URL: http://vger.kernel.org/vger-lists.html
714	       URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
715	       URL: http://marc.theaimsgroup.com/?l=linux-kernel
716	       URL: http://groups.google.com/group/mlist.linux.kernel
717	       URL: http://www.cs.helsinki.fi/linux/linux-kernel/
718	       URL: http://www.lib.uaa.alaska.edu/linux-kernel/
719	       Keywords: linux-kernel, archives, search.
720	       Description: Some of the linux-kernel mailing list archivers. If
721	       you have a better/another one, please let me know.
722	     _________________________________________________________________
723	   
724	   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.