diff options
Diffstat (limited to 'Documentation/kernel-docs.txt')
-rw-r--r-- | Documentation/kernel-docs.txt | 777 |
1 files changed, 777 insertions, 0 deletions
diff --git a/Documentation/kernel-docs.txt b/Documentation/kernel-docs.txt new file mode 100644 index 000000000000..cb89fb3b61ef --- /dev/null +++ b/Documentation/kernel-docs.txt | |||
@@ -0,0 +1,777 @@ | |||
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: "The Linux Kernel Hackers' Guide" | ||
66 | Author: Michael K.Johnson and others. | ||
67 | URL: http://www.tldp.org/LDP/khg/HyperNews/get/khg.html | ||
68 | Keywords: everything! | ||
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. | ||
75 | |||
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. | ||
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/~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...). | ||
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/~itbowman/papers/linuxcase.html | ||
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.atnf.csiro.au/~rgooch/linux/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://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". | ||
124 | |||
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 | ||
136 | installment". | ||
137 | |||
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, | ||
143 | open(), close(). | ||
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". | ||
149 | |||
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 | ||
158 | ioctl-calls". | ||
159 | |||
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 | ||
172 | DMA". | ||
173 | |||
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". | ||
185 | |||
186 | * Title: "Network Buffers And Memory Management" | ||
187 | Author: Alan Cox. | ||
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". | ||
196 | |||
197 | * Title: "Writing Linux Device Drivers" | ||
198 | Author: Michael K. Johnson. | ||
199 | URL: http://people.redhat.com/johnsonm/devices.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 | ||
222 | .gz | ||
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. | ||
228 | |||
229 | * Title: "Writing Character Device Driver for Linux" | ||
230 | Author: R. Baruch and C. Schroeter. | ||
231 | URL: | ||
232 | ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers | ||
233 | .ps.gz | ||
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. | ||
238 | |||
239 | * Title: "Design and Implementation of the Second Extended | ||
240 | Filesystem" | ||
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. | ||
252 | |||
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... | ||
259 | |||
260 | * Title: "Journaling the Linux ext2fs Filesystem" | ||
261 | Author: Stephen C. Tweedie. | ||
262 | URL: | ||
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. | ||
268 | |||
269 | * Title: "Kernel API changes from 2.0 to 2.2" | ||
270 | Author: Richard Gooch. | ||
271 | URL: | ||
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 | ||
275 | from 2.0.x to 2.2.x. | ||
276 | |||
277 | * Title: "Kernel API changes from 2.2 to 2.4" | ||
278 | Author: Richard Gooch. | ||
279 | URL: | ||
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 | ||
283 | from 2.2.x to 2.4.x. | ||
284 | |||
285 | * Title: "Linux Kernel Module Programming Guide" | ||
286 | Author: Ori Pomerantz. | ||
287 | URL: http://www.tldp.org/LDP/lkmpg/mpg.html | ||
288 | Keywords: modules, GPL book, /proc, ioctls, system calls, | ||
289 | interrupt handlers . | ||
290 | Description: Very nice 92 pages GPL book on the topic of modules | ||
291 | programming. Lots of examples. | ||
292 | |||
293 | * Title: "Device File System (devfs) Overview" | ||
294 | Author: Richard Gooch. | ||
295 | URL: http://www.atnf.csiro.au/~rgooch/linux/docs/devfs.txt | ||
296 | Keywords: filesystem, /dev, devfs, dynamic devices, major/minor | ||
297 | allocation, device management. | ||
298 | Description: Document describing Richard Gooch's controversial | ||
299 | devfs, which allows for dynamic devices, only shows present | ||
300 | devices in /dev, gets rid of major/minor numbers allocation | ||
301 | problems, and allows for hundreds of identical devices (which some | ||
302 | USB systems might demand soon). | ||
303 | |||
304 | * Title: "I/O Event Handling Under Linux" | ||
305 | Author: Richard Gooch. | ||
306 | URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html | ||
307 | Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness | ||
308 | event queues. | ||
309 | Description: From the Introduction: "I/O Event handling is about | ||
310 | how your Operating System allows you to manage a large number of | ||
311 | open files (file descriptors in UNIX/POSIX, or FDs) in your | ||
312 | application. You want the OS to notify you when FDs become active | ||
313 | (have data ready to be read or are ready for writing). Ideally you | ||
314 | want a mechanism that is scalable. This means a large number of | ||
315 | inactive FDs cost very little in memory and CPU time to manage". | ||
316 | |||
317 | * Title: "The Kernel Hacking HOWTO" | ||
318 | Author: Various Talented People, and Rusty. | ||
319 | URL: | ||
320 | http://www.lisoleg.net/doc/Kernel-Hacking-HOWTO/kernel-hacking-HOW | ||
321 | TO.html | ||
322 | Keywords: HOWTO, kernel contexts, deadlock, locking, modules, | ||
323 | symbols, return conventions. | ||
324 | Description: From the Introduction: "Please understand that I | ||
325 | never wanted to write this document, being grossly underqualified, | ||
326 | but I always wanted to read it, and this was the only way. I | ||
327 | simply explain some best practices, and give reading entry-points | ||
328 | into the kernel sources. I avoid implementation details: that's | ||
329 | what the code is for, and I ignore whole tracts of useful | ||
330 | routines. This document assumes familiarity with C, and an | ||
331 | understanding of what the kernel is, and how it is used. It was | ||
332 | originally written for the 2.3 kernels, but nearly all of it | ||
333 | applies to 2.2 too; 2.0 is slightly different". | ||
334 | |||
335 | * Title: "ALSA 0.5.0 Developer documentation" | ||
336 | Author: Stephan 'Jumpy' Bartels . | ||
337 | URL: http://www.math.TU-Berlin.de/~sbartels/alsa/ | ||
338 | Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware. | ||
339 | Description: Advanced Linux Sound Architecture for developers, | ||
340 | both at kernel and user-level sides. Work in progress. ALSA is | ||
341 | supposed to be Linux's next generation sound architecture. | ||
342 | |||
343 | * Title: "Programming Guide for Linux USB Device Drivers" | ||
344 | Author: Detlef Fliegl. | ||
345 | URL: http://usb.in.tum.de/usbdoc/ | ||
346 | Keywords: USB, universal serial bus. | ||
347 | Description: A must-read. From the Preface: "This document should | ||
348 | give detailed information about the current state of the USB | ||
349 | subsystem and its API for USB device drivers. The first section | ||
350 | will deal with the basics of USB devices. You will learn about | ||
351 | different types of devices and their properties. Going into detail | ||
352 | you will see how USB devices communicate on the bus. The second | ||
353 | section gives an overview of the Linux USB subsystem [2] and the | ||
354 | device driver framework. Then the API and its data structures will | ||
355 | be explained step by step. The last section of this document | ||
356 | contains a reference of all API calls and their return codes". | ||
357 | Notes: Beware: the main page states: "This document may not be | ||
358 | published, printed or used in excerpts without explicit permission | ||
359 | of the author". Fortunately, it may still be read... | ||
360 | |||
361 | * Title: "Tour Of the Linux Kernel Source" | ||
362 | Author: Vijo Cherian. | ||
363 | URL: http://www.geocities.com/vijoc/tolks/tolks.html | ||
364 | Keywords: . | ||
365 | Description: A classic of this page! Was lost for a while and is | ||
366 | back again. Thanks Vijo! TOLKS: the name says it all. A tour of | ||
367 | the sources, describing directories, files, variables, data | ||
368 | structures... It covers general stuff, device drivers, | ||
369 | filesystems, IPC and Networking Code. | ||
370 | |||
371 | * Title: "Linux Kernel Mailing List Glossary" | ||
372 | Author: John Levon. | ||
373 | URL: http://www.movement.uklinux.net/glossary.html | ||
374 | Keywords: glossary, terms, linux-kernel. | ||
375 | Description: From the introduction: "This glossary is intended as | ||
376 | a brief description of some of the acronyms and terms you may hear | ||
377 | during discussion of the Linux kernel". | ||
378 | |||
379 | * Title: "Linux Kernel Locking HOWTO" | ||
380 | Author: Various Talented People, and Rusty. | ||
381 | URL: | ||
382 | http://netfilter.kernelnotes.org/unreliable-guides/kernel-locking- | ||
383 | HOWTO.html | ||
384 | Keywords: locks, locking, spinlock, semaphore, atomic, race | ||
385 | condition, bottom halves, tasklets, softirqs. | ||
386 | Description: The title says it all: document describing the | ||
387 | locking system in the Linux Kernel either in uniprocessor or SMP | ||
388 | systems. | ||
389 | Notes: "It was originally written for the later (>2.3.47) 2.3 | ||
390 | kernels, but most of it applies to 2.2 too; 2.0 is slightly | ||
391 | different". Freely redistributable under the conditions of the GNU | ||
392 | General Public License. | ||
393 | |||
394 | * Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New | ||
395 | Features " | ||
396 | Author: Alan Cox. | ||
397 | URL: http://www.linux-mag.com/1999-05/gear_01.html | ||
398 | Keywords: ports, porting. | ||
399 | Description: Article from Linux Magazine on porting from 2.0 to | ||
400 | 2.2 kernels. | ||
401 | |||
402 | * Title: "Porting Device Drivers To Linux 2.2: part II" | ||
403 | Author: Alan Cox. | ||
404 | URL: http://www.linux-mag.com/1999-06/gear_01.html | ||
405 | Keywords: ports, porting. | ||
406 | Description: Second part on porting from 2.0 to 2.2 kernels. | ||
407 | |||
408 | * Title: "How To Make Sure Your Driver Will Work On The Power | ||
409 | Macintosh" | ||
410 | Author: Paul Mackerras. | ||
411 | URL: http://www.linux-mag.com/1999-07/gear_01.html | ||
412 | Keywords: Mac, Power Macintosh, porting, drivers, compatibility. | ||
413 | Description: The title says it all. | ||
414 | |||
415 | * Title: "An Introduction to SCSI Drivers" | ||
416 | Author: Alan Cox. | ||
417 | URL: http://www.linux-mag.com/1999-08/gear_01.html | ||
418 | Keywords: SCSI, device, driver. | ||
419 | Description: The title says it all. | ||
420 | |||
421 | * Title: "Advanced SCSI Drivers And Other Tales" | ||
422 | Author: Alan Cox. | ||
423 | URL: http://www.linux-mag.com/1999-09/gear_01.html | ||
424 | Keywords: SCSI, device, driver, advanced. | ||
425 | Description: The title says it all. | ||
426 | |||
427 | * Title: "Writing Linux Mouse Drivers" | ||
428 | Author: Alan Cox. | ||
429 | URL: http://www.linux-mag.com/1999-10/gear_01.html | ||
430 | Keywords: mouse, driver, gpm. | ||
431 | Description: The title says it all. | ||
432 | |||
433 | * Title: "More on Mouse Drivers" | ||
434 | Author: Alan Cox. | ||
435 | URL: http://www.linux-mag.com/1999-11/gear_01.html | ||
436 | Keywords: mouse, driver, gpm, races, asynchronous I/O. | ||
437 | Description: The title still says it all. | ||
438 | |||
439 | * Title: "Writing Video4linux Radio Driver" | ||
440 | Author: Alan Cox. | ||
441 | URL: http://www.linux-mag.com/1999-12/gear_01.html | ||
442 | Keywords: video4linux, driver, radio, radio devices. | ||
443 | Description: The title says it all. | ||
444 | |||
445 | * Title: "Video4linux Drivers, Part 1: Video-Capture Device" | ||
446 | Author: Alan Cox. | ||
447 | URL: http://www.linux-mag.com/2000-01/gear_01.html | ||
448 | Keywords: video4linux, driver, video capture, capture devices, | ||
449 | camera driver. | ||
450 | Description: The title says it all. | ||
451 | |||
452 | * Title: "Video4linux Drivers, Part 2: Video-capture Devices" | ||
453 | Author: Alan Cox. | ||
454 | URL: http://www.linux-mag.com/2000-02/gear_01.html | ||
455 | Keywords: video4linux, driver, video capture, capture devices, | ||
456 | camera driver, control, query capabilities, capability, facility. | ||
457 | Description: The title says it all. | ||
458 | |||
459 | * Title: "PCI Management in Linux 2.2" | ||
460 | Author: Alan Cox. | ||
461 | URL: http://www.linux-mag.com/2000-03/gear_01.html | ||
462 | Keywords: PCI, bus, bus-mastering. | ||
463 | Description: The title says it all. | ||
464 | |||
465 | * Title: "Linux 2.4 Kernel Internals" | ||
466 | Author: Tigran Aivazian and Christoph Hellwig. | ||
467 | URL: http://www.moses.uklinux.net/patches/lki.html | ||
468 | Keywords: Linux, kernel, booting, SMB boot, VFS, page cache. | ||
469 | Description: A little book used for a short training course. | ||
470 | Covers building the kernel image, booting (including SMP bootup), | ||
471 | process management, VFS and more. | ||
472 | |||
473 | * Title: "Linux IP Networking. A Guide to the Implementation and | ||
474 | Modification of the Linux Protocol Stack." | ||
475 | Author: Glenn Herrin. | ||
476 | URL: | ||
477 | http://kernelnewbies.org/documents/ipnetworking/linuxipnetworking. | ||
478 | html | ||
479 | Keywords: network, networking, protocol, IP, UDP, TCP, connection, | ||
480 | socket, receiving, transmitting, forwarding, routing, packets, | ||
481 | modules, /proc, sk_buff, FIB, tags. | ||
482 | Description: Excellent paper devoted to the Linux IP Networking, | ||
483 | explaining anything from the kernel's to the user space | ||
484 | configuration tools' code. Very good to get a general overview of | ||
485 | the kernel networking implementation and understand all steps | ||
486 | packets follow from the time they are received at the network | ||
487 | device till they are delivered to applications. The studied kernel | ||
488 | code is from 2.2.14 version. Provides code for a working packet | ||
489 | dropper example. | ||
490 | |||
491 | * Title: "Get those boards talking under Linux." | ||
492 | Author: Alex Ivchenko. | ||
493 | URL: http://www.ednmag.com/ednmag/reg/2000/06222000/13df2.htm | ||
494 | Keywords: data-acquisition boards, drivers, modules, interrupts, | ||
495 | memory allocation. | ||
496 | Description: Article written for people wishing to make their data | ||
497 | acquisition boards work on their GNU/Linux machines. Gives a basic | ||
498 | overview on writing drivers, from the naming of functions to | ||
499 | interrupt handling. | ||
500 | Notes: Two-parts article. Part II is at | ||
501 | http://www.ednmag.com/ednmag/reg/2000/07062000/14df.htm | ||
502 | |||
503 | * Title: "Linux PCMCIA Programmer's Guide" | ||
504 | Author: David Hinds. | ||
505 | URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html | ||
506 | Keywords: PCMCIA. | ||
507 | Description: "This document describes how to write kernel device | ||
508 | drivers for the Linux PCMCIA Card Services interface. It also | ||
509 | describes how to write user-mode utilities for communicating with | ||
510 | Card Services. | ||
511 | |||
512 | * Title: "The Linux Kernel NFSD Implementation" | ||
513 | Author: Neil Brown. | ||
514 | URL: | ||
515 | http://www.cse.unsw.edu.au/~neilb/oss/linux-commentary/nfsd.html | ||
516 | Keywords: knfsd, nfsd, NFS, RPC, lockd, mountd, statd. | ||
517 | Description: The title says it all. | ||
518 | Notes: Covers knfsd's version 1.4.7 (patch against 2.2.7 kernel). | ||
519 | |||
520 | * Title: "A Linux vm README" | ||
521 | Author: Kanoj Sarcar. | ||
522 | URL: http://reality.sgi.com/kanoj_engr/vm229.html | ||
523 | Keywords: virtual memory, mm, pgd, vma, page, page flags, page | ||
524 | cache, swap cache, kswapd. | ||
525 | Description: Telegraphic, short descriptions and definitions | ||
526 | relating the Linux virtual memory implementation. | ||
527 | |||
528 | * Title: "(nearly) Complete Linux Loadable Kernel Modules. The | ||
529 | definitive guide for hackers, virus coders and system | ||
530 | administrators." | ||
531 | Author: pragmatic/THC. | ||
532 | URL: http://packetstorm.securify.com/groups/thc/LKM_HACKING.html | ||
533 | Keywords: syscalls, intercept, hide, abuse, symbol table. | ||
534 | Description: Interesting paper on how to abuse the Linux kernel in | ||
535 | order to intercept and modify syscalls, make | ||
536 | files/directories/processes invisible, become root, hijack ttys, | ||
537 | write kernel modules based virus... and solutions for admins to | ||
538 | avoid all those abuses. | ||
539 | Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x | ||
540 | kernels. Also available in txt format at | ||
541 | http://www.blacknemesis.org/hacking/txt/cllkm.txt | ||
542 | |||
543 | BOOKS: (Not on-line) | ||
544 | |||
545 | * Title: "Linux Device Drivers" | ||
546 | Author: Alessandro Rubini. | ||
547 | Publisher: O'Reilly & Associates. | ||
548 | Date: 1998. | ||
549 | Pages: 439. | ||
550 | ISBN: 1-56592-292-1 | ||
551 | |||
552 | * Title: "Linux Device Drivers, 2nd Edition" | ||
553 | Author: Alessandro Rubini and Jonathan Corbet. | ||
554 | Publisher: O'Reilly & Associates. | ||
555 | Date: 2001. | ||
556 | Pages: 586. | ||
557 | ISBN: 0-59600-008-1 | ||
558 | Notes: Further information in | ||
559 | http://www.oreilly.com/catalog/linuxdrive2/ | ||
560 | |||
561 | * Title: "Linux Kernel Internals" | ||
562 | Author: Michael Beck. | ||
563 | Publisher: Addison-Wesley. | ||
564 | Date: 1997. | ||
565 | ISBN: 0-201-33143-8 (second edition) | ||
566 | |||
567 | * Title: "The Design of the UNIX Operating System" | ||
568 | Author: Maurice J. Bach. | ||
569 | Publisher: Prentice Hall. | ||
570 | Date: 1986. | ||
571 | Pages: 471. | ||
572 | ISBN: 0-13-201757-1 | ||
573 | |||
574 | * Title: "The Design and Implementation of the 4.3 BSD UNIX | ||
575 | Operating System" | ||
576 | Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J. | ||
577 | Karels, John S. Quarterman. | ||
578 | Publisher: Addison-Wesley. | ||
579 | Date: 1989 (reprinted with corrections on October, 1990). | ||
580 | ISBN: 0-201-06196-1 | ||
581 | |||
582 | * Title: "The Design and Implementation of the 4.4 BSD UNIX | ||
583 | Operating System" | ||
584 | Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, | ||
585 | John S. Quarterman. | ||
586 | Publisher: Addison-Wesley. | ||
587 | Date: 1996. | ||
588 | ISBN: 0-201-54979-4 | ||
589 | |||
590 | * Title: "Programmation Linux 2.0 API systeme et fonctionnement du | ||
591 | noyau" | ||
592 | Author: Remy Card, Eric Dumas, Franck Mevel. | ||
593 | Publisher: Eyrolles. | ||
594 | Date: 1997. | ||
595 | Pages: 520. | ||
596 | ISBN: 2-212-08932-5 | ||
597 | Notes: French. | ||
598 | |||
599 | * Title: "The Linux Kernel Book" | ||
600 | Author: Remy Card, Eric Dumas, Franck Mevel. | ||
601 | Publisher: John Wiley & Sons. | ||
602 | Date: 1998. | ||
603 | ISBN: 0-471-98141-9 | ||
604 | Notes: English translation. | ||
605 | |||
606 | * Title: "Linux 2.0" | ||
607 | Author: Remy Card, Eric Dumas, Franck Mevel. | ||
608 | Publisher: Gestión 2000. | ||
609 | Date: 1997. | ||
610 | Pages: 501. | ||
611 | ISBN: 8-480-88208-5 | ||
612 | Notes: Spanish translation. | ||
613 | |||
614 | * Title: "Unix internals -- the new frontiers" | ||
615 | Author: Uresh Vahalia. | ||
616 | Publisher: Prentice Hall. | ||
617 | Date: 1996. | ||
618 | Pages: 600. | ||
619 | ISBN: 0-13-101908-2 | ||
620 | |||
621 | * Title: "Linux Core Kernel Commentary. Guide to Insider's Knowledge | ||
622 | on the Core Kernel of the Linux Code" | ||
623 | Author: Scott Maxwell. | ||
624 | Publisher: Coriolis. | ||
625 | Date: 1999. | ||
626 | Pages: 592. | ||
627 | ISBN: 1-57610-469-9 | ||
628 | Notes: CD-ROM included. Line by line commentary of the kernel | ||
629 | code. | ||
630 | |||
631 | * Title: "Linux IP Stacks Commentary" | ||
632 | Author: Stephen Satchell and HBJ Clifford. | ||
633 | Publisher: Coriolis. | ||
634 | Date: 2000. | ||
635 | Pages: ???. | ||
636 | ISBN: 1-57610-470-2 | ||
637 | Notes: Line by line source code commentary book. | ||
638 | |||
639 | * Title: "Programming for the real world - POSIX.4" | ||
640 | Author: Bill O. Gallmeister. | ||
641 | Publisher: O'Reilly & Associates, Inc.. | ||
642 | Date: 1995. | ||
643 | Pages: ???. | ||
644 | ISBN: I-56592-074-0 | ||
645 | Notes: Though not being directly about Linux, Linux aims to be | ||
646 | POSIX. Good reference. | ||
647 | |||
648 | * Title: "Understanding the Linux Kernel" | ||
649 | Author: Daniel P. Bovet and Marco Cesati. | ||
650 | Publisher: O'Reilly & Associates, Inc.. | ||
651 | Date: 2000. | ||
652 | Pages: 702. | ||
653 | ISBN: 0-596-00002-2 | ||
654 | Notes: Further information in | ||
655 | http://www.oreilly.com/catalog/linuxkernel/ | ||
656 | |||
657 | MISCELLANEOUS: | ||
658 | |||
659 | * Name: linux/Documentation | ||
660 | Author: Many. | ||
661 | URL: Just look inside your kernel sources. | ||
662 | Keywords: anything, DocBook. | ||
663 | Description: Documentation that comes with the kernel sources, | ||
664 | inside the Documentation directory. Some pages from this document | ||
665 | (including this document itself) have been moved there, and might | ||
666 | be more up to date than the web version. | ||
667 | |||
668 | * Name: "Linux Source Driver" | ||
669 | URL: http://lsd.linux.cz | ||
670 | Keywords: Browsing source code. | ||
671 | Description: "Linux Source Driver (LSD) is an application, which | ||
672 | can make browsing source codes of Linux kernel easier than you can | ||
673 | imagine. You can select between multiple versions of kernel (e.g. | ||
674 | 0.01, 1.0.0, 2.0.33, 2.0.34pre13, 2.0.0, 2.1.101 etc.). With LSD | ||
675 | you can search Linux kernel (fulltext, macros, types, functions | ||
676 | and variables) and LSD can generate patches for you on the fly | ||
677 | (files, directories or kernel)". | ||
678 | |||
679 | * Name: "Linux Kernel Source Reference" | ||
680 | Author: Thomas Graichen. | ||
681 | URL: http://innominate.org/~graichen/projects/lksr/ | ||
682 | Keywords: CVS, web, cvsweb, browsing source code. | ||
683 | Description: Web interface to a CVS server with the kernel | ||
684 | sources. "Here you can have a look at any file of the Linux kernel | ||
685 | sources of any version starting from 1.0 up to the (daily updated) | ||
686 | current version available. Also you can check the differences | ||
687 | between two versions of a file". | ||
688 | |||
689 | * Name: "Cross-Referencing Linux" | ||
690 | URL: http://lxr.linux.no/source/ | ||
691 | Keywords: Browsing source code. | ||
692 | Description: Another web-based Linux kernel source code browser. | ||
693 | Lots of cross references to variables and functions. You can see | ||
694 | where they are defined and where they are used. | ||
695 | |||
696 | * Name: "Linux Weekly News" | ||
697 | URL: http://lwn.net | ||
698 | Keywords: latest kernel news. | ||
699 | Description: The title says it all. There's a fixed kernel section | ||
700 | summarizing developers' work, bug fixes, new features and versions | ||
701 | produced during the week. Published every Thursday. | ||
702 | |||
703 | * Name: "Kernel Traffic" | ||
704 | URL: http://www.kerneltraffic.org/kernel-traffic/ | ||
705 | Keywords: linux-kernel mailing list, weekly kernel news. | ||
706 | Description: Weekly newsletter covering the most relevant | ||
707 | discussions of the linux-kernel mailing list. | ||
708 | |||
709 | * Name: "CuTTiNG.eDGe.LiNuX" | ||
710 | URL: http://edge.kernelnotes.org | ||
711 | Keywords: changelist. | ||
712 | Description: Site which provides the changelist for every kernel | ||
713 | release. What's new, what's better, what's changed. Myrdraal reads | ||
714 | the patches and describes them. Pointers to the patches are there, | ||
715 | too. | ||
716 | |||
717 | * Name: "New linux-kernel Mailing List FAQ" | ||
718 | URL: http://www.tux.org/lkml/ | ||
719 | Keywords: linux-kernel mailing list FAQ. | ||
720 | Description: linux-kernel is a mailing list for developers to | ||
721 | communicate. This FAQ builds on the previous linux-kernel mailing | ||
722 | list FAQ maintained by Frohwalt Egerer, who no longer maintains | ||
723 | it. Read it to see how to join the mailing list. Dozens of | ||
724 | interesting questions regarding the list, Linux, developers (who | ||
725 | is ...?), terms (what is...?) are answered here too. Just read it. | ||
726 | |||
727 | * Name: "Linux Virtual File System" | ||
728 | Author: Peter J. Braam. | ||
729 | URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/ | ||
730 | Keywords: slides, VFS, inode, superblock, dentry, dcache. | ||
731 | Description: Set of slides, presumably from a presentation on the | ||
732 | Linux VFS layer. Covers version 2.1.x, with dentries and the | ||
733 | dcache. | ||
734 | |||
735 | * Name: "Gary's Encyclopedia - The Linux Kernel" | ||
736 | Author: Gary (I suppose...). | ||
737 | URL: http://members.aa.net/~swear/pedia/kernel.html | ||
738 | Keywords: links, not found here?. | ||
739 | Description: Gary's Encyclopedia exists to allow the rapid finding | ||
740 | of documentation and other information of interest to GNU/Linux | ||
741 | users. It has about 4000 links to external pages in 150 major | ||
742 | categories. This link is for kernel-specific links, documents, | ||
743 | sites... Look there if you could not find here what you were | ||
744 | looking for. | ||
745 | |||
746 | * Name: "The home page of Linux-MM" | ||
747 | Author: The Linux-MM team. | ||
748 | URL: http://linux-mm.org/ | ||
749 | Keywords: memory management, Linux-MM, mm patches, TODO, docs, | ||
750 | mailing list. | ||
751 | Description: Site devoted to Linux Memory Management development. | ||
752 | Memory related patches, HOWTOs, links, mm developers... Don't miss | ||
753 | it if you are interested in memory management development! | ||
754 | |||
755 | * Name: "Kernel Newbies IRC Channel" | ||
756 | URL: http://www.kernelnewbies.org | ||
757 | Keywords: IRC, newbies, channel, asking doubts. | ||
758 | Description: #kernelnewbies on irc.openprojects.net. From the web | ||
759 | page: "#kernelnewbies is an IRC network dedicated to the 'newbie' | ||
760 | kernel hacker. The audience mostly consists of people who are | ||
761 | learning about the kernel, working on kernel projects or | ||
762 | professional kernel hackers that want to help less seasoned kernel | ||
763 | people. [...] #kernelnewbies is on the Open Projects IRC Network, | ||
764 | try irc.openprojects.net or irc.<country>.openprojects.net as your | ||
765 | server and then /join #kernelnewbies". It also hosts articles, | ||
766 | documents, FAQs... | ||
767 | |||
768 | * Name: "linux-kernel mailing list archives and search engines" | ||
769 | URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html | ||
770 | URL: http://www.kernelnotes.org/lnxlists/linux-kernel/ | ||
771 | URL: http://www.geocrawler.com | ||
772 | Keywords: linux-kernel, archives, search. | ||
773 | Description: Some of the linux-kernel mailing list archivers. If | ||
774 | you have a better/another one, please let me know. | ||
775 | _________________________________________________________________ | ||
776 | |||
777 | Document last updated on Thu Jun 28 15:09:39 CEST 2001 | ||