OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [tags/] [linux-2.6/] [linux-2.6.24_orig/] [Documentation/] [kernel-docs.txt] - Blame information for rev 18

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.