mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 12:39:23 +00:00 
			
		
		
		
	 01dd2fbf0d
			
		
	
	
		01dd2fbf0d
		
	
	
	
	
		
			
			Most of these fixes were already submitted for old kernel versions, and were approved, but for some reason they never made it into the releases. Because this is a consolidation of a couple old missed patches, it touches both Kconfigs and documentation texts. Signed-off-by: Matt LaPlante <kernel1@cyberdogtech.com> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Adrian Bunk <bunk@kernel.org>
		
			
				
	
	
		
			762 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			762 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
|     Index of Documentation for People Interested in Writing and/or
 | |
| 
 | |
|                    Understanding the Linux Kernel.
 | |
| 
 | |
|           Juan-Mariano de Goyeneche <jmseyas@dit.upm.es>
 | |
| 
 | |
| /*
 | |
|  * The latest version of this document may be found at:
 | |
|  *   http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html
 | |
|  */
 | |
| 
 | |
|    The need for a document like this one became apparent in the
 | |
|    linux-kernel mailing list as the same questions, asking for pointers
 | |
|    to information, appeared again and again.
 | |
|    
 | |
|    Fortunately, as more and more people get to GNU/Linux, more and more
 | |
|    get interested in the Kernel. But reading the sources is not always
 | |
|    enough. It is easy to understand the code, but miss the concepts, the
 | |
|    philosophy and design decisions behind this code.
 | |
|    
 | |
|    Unfortunately, not many documents are available for beginners to
 | |
|    start. And, even if they exist, there was no "well-known" place which
 | |
|    kept track of them. These lines try to cover this lack. All documents
 | |
|    available on line known by the author are listed, while some reference
 | |
|    books are also mentioned.
 | |
|    
 | |
|    PLEASE, if you know any paper not listed here or write a new document,
 | |
|    send me an e-mail, and I'll include a reference to it here. Any
 | |
|    corrections, ideas or comments are also welcomed.
 | |
|    
 | |
|    The papers that follow are listed in no particular order. All are
 | |
|    cataloged with the following fields: the document's "Title", the
 | |
|    "Author"/s, the "URL" where they can be found, some "Keywords" helpful
 | |
|    when searching for specific topics, and a brief "Description" of the
 | |
|    Document.
 | |
|    
 | |
|    Enjoy!
 | |
|    
 | |
|      ON-LINE DOCS:
 | |
|        
 | |
|      * Title: "Linux Device Drivers, Third Edition"
 | |
|        Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
 | |
|        URL: http://lwn.net/Kernel/LDD3/
 | |
|        Description: A 600-page book covering the (2.6.10) driver
 | |
|        programming API and kernel hacking in general.  Available under the
 | |
|        Creative Commons Attribution-ShareAlike 2.0 license.
 | |
| 
 | |
|      * Title: "The Linux Kernel"
 | |
|        Author: David A. Rusling.
 | |
|        URL: http://www.tldp.org/LDP/tlk/tlk.html
 | |
|        Keywords: everything!, book.
 | |
|        Description: On line, 200 pages book describing most aspects of
 | |
|        the Linux Kernel. Probably, the first reference for beginners.
 | |
|        Lots of illustrations explaining data structures use and
 | |
|        relationships in the purest Richard W. Stevens' style. Contents:
 | |
|        "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
 | |
|        4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
 | |
|        7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
 | |
|        File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
 | |
|        13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
 | |
|        Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
 | |
|        General Public License, Glossary". In short: a must have.
 | |
| 
 | |
|      * Title: "Linux Device Drivers, 2nd Edition"
 | |
|        Author: Alessandro Rubini and Jonathan Corbet.
 | |
|        URL: http://www.xml.com/ldd/chapter/book/index.html
 | |
|        Keywords: device drivers, modules, debugging, memory, hardware,
 | |
|        interrupt handling, char drivers, block drivers, kmod, mmap, DMA,
 | |
|        buses.
 | |
|        Description: O'Reilly's popular book, now also on-line under the
 | |
|        GNU Free Documentation License.
 | |
|        Notes: You can also buy it in paper-form from O'Reilly. See below
 | |
|        under BOOKS (Not on-line).
 | |
| 
 | |
|      * Title: "Conceptual Architecture of the Linux Kernel"
 | |
|        Author: Ivan T. Bowman.
 | |
|        URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a1.html
 | |
|        Keywords: conceptual software architecture, extracted design,
 | |
|        reverse engineering, system structure.
 | |
|        Description: Conceptual software architecture of the Linux kernel,
 | |
|        automatically extracted from the source code. Very detailed. Good
 | |
|        figures. Gives good overall kernel understanding.
 | |
| 
 | |
|      * Title: "Concrete Architecture of the Linux Kernel"
 | |
|        Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
 | |
|        URL: http://plg.uwaterloo.ca/~itbowman/papers/CS746G-a2.html
 | |
|        Keywords: concrete architecture, extracted design, reverse
 | |
|        engineering, system structure, dependencies.
 | |
|        Description: Concrete architecture of the Linux kernel,
 | |
|        automatically extracted from the source code. Very detailed. Good
 | |
|        figures. Gives good overall kernel understanding. This papers
 | |
|        focus on lower details than its predecessor (files, variables...).
 | |
| 
 | |
|      * Title: "Linux as a Case Study: Its Extracted Software
 | |
|        Architecture"
 | |
|        Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
 | |
|        URL: http://plg.uwaterloo.ca/~itbowman/papers/linuxcase.html
 | |
|        Keywords: software architecture, architecture recovery,
 | |
|        redocumentation.
 | |
|        Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
 | |
|        1999. A mixture of the previous two documents from the same
 | |
|        author.
 | |
| 
 | |
|      * Title: "Overview of the Virtual File System"
 | |
|        Author: Richard Gooch.
 | |
|        URL: http://www.atnf.csiro.au/~rgooch/linux/vfs.txt
 | |
|        Keywords: VFS, File System, mounting filesystems, opening files,
 | |
|        dentries, dcache.
 | |
|        Description: Brief introduction to the Linux Virtual File System.
 | |
|        What is it, how it works, operations taken when opening a file or
 | |
|        mounting a file system and description of important data
 | |
|        structures explaining the purpose of each of their entries.
 | |
| 
 | |
|      * Title: "The Linux RAID-1, 4, 5 Code"
 | |
|        Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
 | |
|        URL: http://www.linuxjournal.com/article.php?sid=2391
 | |
|        Keywords: RAID, MD driver.
 | |
|        Description: Linux Journal Kernel Korner article. Here is it's
 | |
|        abstract: "A description of the implementation of the RAID-1,
 | |
|        RAID-4 and RAID-5 personalities of the MD device driver in the
 | |
|        Linux kernel, providing users with high performance and reliable,
 | |
|        secondary-storage capability using software".
 | |
| 
 | |
|      * Title: "Dynamic Kernels: Modularized Device Drivers"
 | |
|        Author: Alessandro Rubini.
 | |
|        URL: http://www.linuxjournal.com/article.php?sid=1219
 | |
|        Keywords: device driver, module, loading/unloading modules,
 | |
|        allocating resources.
 | |
|        Description: Linux Journal Kernel Korner article. Here is it's
 | |
|        abstract: "This is the first of a series of four articles
 | |
|        co-authored by Alessandro Rubini and Georg Zezchwitz which present
 | |
|        a practical approach to writing Linux device drivers as kernel
 | |
|        loadable modules. This installment presents an introduction to the
 | |
|        topic, preparing the reader to understand next month's
 | |
|        installment".
 | |
| 
 | |
|      * Title: "Dynamic Kernels: Discovery"
 | |
|        Author: Alessandro Rubini.
 | |
|        URL: http://www.linuxjournal.com/article.php?sid=1220
 | |
|        Keywords: character driver, init_module, clean_up module,
 | |
|        autodetection, mayor number, minor number, file operations,
 | |
|        open(), close().
 | |
|        Description: Linux Journal Kernel Korner article. Here is it's
 | |
|        abstract: "This article, the second of four, introduces part of
 | |
|        the actual code to create custom module implementing a character
 | |
|        device driver. It describes the code for module initialization and
 | |
|        cleanup, as well as the open() and close() system calls".
 | |
| 
 | |
|      * Title: "The Devil's in the Details"
 | |
|        Author: Georg v. Zezschwitz and Alessandro Rubini.
 | |
|        URL: http://www.linuxjournal.com/article.php?sid=1221
 | |
|        Keywords: read(), write(), select(), ioctl(), blocking/non
 | |
|        blocking mode, interrupt handler.
 | |
|        Description: Linux Journal Kernel Korner article. Here is it's
 | |
|        abstract: "This article, the third of four on writing character
 | |
|        device drivers, introduces concepts of reading, writing, and using
 | |
|        ioctl-calls".
 | |
| 
 | |
|      * Title: "Dissecting Interrupts and Browsing DMA"
 | |
|        Author: Alessandro Rubini and Georg v. Zezschwitz.
 | |
|        URL: http://www.linuxjournal.com/article.php?sid=1222
 | |
|        Keywords: interrupts, irqs, DMA, bottom halves, task queues.
 | |
|        Description: Linux Journal Kernel Korner article. Here is it's
 | |
|        abstract: "This is the fourth in a series of articles about
 | |
|        writing character device drivers as loadable kernel modules. This
 | |
|        month, we further investigate the field of interrupt handling.
 | |
|        Though it is conceptually simple, practical limitations and
 | |
|        constraints make this an ``interesting'' part of device driver
 | |
|        writing, and several different facilities have been provided for
 | |
|        different situations. We also investigate the complex topic of
 | |
|        DMA".
 | |
| 
 | |
|      * Title: "Device Drivers Concluded"
 | |
|        Author: Georg v. Zezschwitz.
 | |
|        URL: http://www.linuxjournal.com/article.php?sid=1287
 | |
|        Keywords: address spaces, pages, pagination, page management,
 | |
|        demand loading, swapping, memory protection, memory mapping, mmap,
 | |
|        virtual memory areas (VMAs), vremap, PCI.
 | |
|        Description: Finally, the above turned out into a five articles
 | |
|        series. This latest one's introduction reads: "This is the last of
 | |
|        five articles about character device drivers. In this final
 | |
|        section, Georg deals with memory mapping devices, beginning with
 | |
|        an overall description of the Linux memory management concepts".
 | |
| 
 | |
|      * Title: "Network Buffers And Memory Management"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linuxjournal.com/article.php?sid=1312
 | |
|        Keywords: sk_buffs, network devices, protocol/link layer
 | |
|        variables, network devices flags, transmit, receive,
 | |
|        configuration, multicast.
 | |
|        Description: Linux Journal Kernel Korner. Here is the abstract:
 | |
|        "Writing a network device driver for Linux is fundamentally
 | |
|        simple---most of the complexity (other than talking to the
 | |
|        hardware) involves managing network packets in memory".
 | |
|        
 | |
|      * Title: "Writing Linux Device Drivers"
 | |
|        Author: Michael K. Johnson.
 | |
|        URL: http://users.evitech.fi/~tk/rtos/writing_linux_device_d.html
 | |
|        Keywords: files, VFS, file operations, kernel interface, character
 | |
|        vs block devices, I/O access, hardware interrupts, DMA, access to
 | |
|        user memory, memory allocation, timers.
 | |
|        Description: Introductory 50-minutes (sic) tutorial on writing
 | |
|        device drivers. 12 pages written by the same author of the "Kernel
 | |
|        Hackers' Guide" which give a very good overview of the topic.
 | |
|        
 | |
|      * Title: "The Venus kernel interface"
 | |
|        Author: Peter J. Braam.
 | |
|        URL:
 | |
|        http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
 | |
|        Keywords: coda, filesystem, venus, cache manager.
 | |
|        Description: "This document describes the communication between
 | |
|        Venus and kernel level file system code needed for the operation
 | |
|        of the Coda filesystem. This version document is meant to describe
 | |
|        the current interface (version 1.0) as well as improvements we
 | |
|        envisage".
 | |
| 
 | |
|      * Title: "Programming PCI-Devices under Linux"
 | |
|        Author: Claus Schroeter.
 | |
|        URL:
 | |
|        ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/pcip.ps.gz
 | |
|        Keywords: PCI, device, busmastering.
 | |
|        Description: 6 pages tutorial on PCI programming under Linux.
 | |
|        Gives the basic concepts on the architecture of the PCI subsystem,
 | |
|        as long as basic functions and macros to read/write the devices
 | |
|        and perform busmastering.
 | |
| 
 | |
|      * Title: "Writing Character Device Driver for Linux"
 | |
|        Author: R. Baruch and C. Schroeter.
 | |
|        URL:
 | |
|        ftp://ftp.llp.fu-berlin.de/pub/linux/LINUX-LAB/whitepapers/drivers.ps.gz
 | |
|        Keywords: character device drivers, I/O, signals, DMA, accessing
 | |
|        ports in user space, kernel environment.
 | |
|        Description: 68 pages paper on writing character drivers. A little
 | |
|        bit old (1.993, 1.994) although still useful.
 | |
| 
 | |
|      * Title: "Design and Implementation of the Second Extended
 | |
|        Filesystem"
 | |
|        Author: Rémy Card, Theodore Ts'o, Stephen Tweedie.
 | |
|        URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
 | |
|        Keywords: ext2, linux fs history, inode, directory, link, devices,
 | |
|        VFS, physical structure, performance, benchmarks, ext2fs library,
 | |
|        ext2fs tools, e2fsck.
 | |
|        Description: Paper written by three of the top ext2 hackers.
 | |
|        Covers Linux filesystems history, ext2 motivation, ext2 features,
 | |
|        design, physical structure on disk, performance, benchmarks,
 | |
|        e2fsck's passes description... A must read!
 | |
|        Notes: This paper was first published in the Proceedings of the
 | |
|        First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
 | |
| 
 | |
|      * Title: "Analysis of the Ext2fs structure"
 | |
|        Author: Louis-Dominique Dubeau.
 | |
|        URL: http://www.nondot.org/sabre/os/files/FileSystems/ext2fs/
 | |
|        Keywords: ext2, filesystem, ext2fs.
 | |
|        Description: Description of ext2's blocks, directories, inodes,
 | |
|        bitmaps, invariants...
 | |
| 
 | |
|      * Title: "Journaling the Linux ext2fs Filesystem"
 | |
|        Author: Stephen C. Tweedie.
 | |
|        URL:
 | |
|        ftp://ftp.uk.linux.org/pub/linux/sct/fs/jfs/journal-design.ps.gz
 | |
|        Keywords: ext3, journaling.
 | |
|        Description: Excellent 8-pages paper explaining the journaling
 | |
|        capabilities added to ext2 by the author, showing different
 | |
|        problems faced and the alternatives chosen.
 | |
| 
 | |
|      * Title: "Kernel API changes from 2.0 to 2.2"
 | |
|        Author: Richard Gooch.
 | |
|        URL:
 | |
|        http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.2.html
 | |
|        Keywords: 2.2, changes.
 | |
|        Description: Kernel functions/structures/variables which changed
 | |
|        from 2.0.x to 2.2.x.
 | |
| 
 | |
|      * Title: "Kernel API changes from 2.2 to 2.4"
 | |
|        Author: Richard Gooch.
 | |
|        URL:
 | |
|        http://www.atnf.csiro.au/~rgooch/linux/docs/porting-to-2.4.html
 | |
|        Keywords: 2.4, changes.
 | |
|        Description: Kernel functions/structures/variables which changed
 | |
|        from 2.2.x to 2.4.x.
 | |
|        
 | |
|      * Title: "Linux Kernel Module Programming Guide"
 | |
|        Author: Ori Pomerantz.
 | |
|        URL: http://tldp.org/LDP/lkmpg/2.6/html/index.html
 | |
|        Keywords: modules, GPL book, /proc, ioctls, system calls,
 | |
|        interrupt handlers .
 | |
|        Description: Very nice 92 pages GPL book on the topic of modules
 | |
|        programming. Lots of examples.
 | |
|        
 | |
|      * Title: "I/O Event Handling Under Linux"
 | |
|        Author: Richard Gooch.
 | |
|        URL: http://www.atnf.csiro.au/~rgooch/linux/docs/io-events.html
 | |
|        Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
 | |
|        event queues.
 | |
|        Description: From the Introduction: "I/O Event handling is about
 | |
|        how your Operating System allows you to manage a large number of
 | |
|        open files (file descriptors in UNIX/POSIX, or FDs) in your
 | |
|        application. You want the OS to notify you when FDs become active
 | |
|        (have data ready to be read or are ready for writing). Ideally you
 | |
|        want a mechanism that is scalable. This means a large number of
 | |
|        inactive FDs cost very little in memory and CPU time to manage".
 | |
|        
 | |
|      * Title: "The Kernel Hacking HOWTO"
 | |
|        Author: Various Talented People, and Rusty.
 | |
|        Location: in kernel tree, Documentation/DocBook/kernel-hacking/
 | |
|        (must be built as "make {htmldocs | psdocs | pdfdocs})
 | |
|        Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
 | |
|        symbols, return conventions.
 | |
|        Description: From the Introduction: "Please understand that I
 | |
|        never wanted to write this document, being grossly underqualified,
 | |
|        but I always wanted to read it, and this was the only way. I
 | |
|        simply explain some best practices, and give reading entry-points
 | |
|        into the kernel sources. I avoid implementation details: that's
 | |
|        what the code is for, and I ignore whole tracts of useful
 | |
|        routines. This document assumes familiarity with C, and an
 | |
|        understanding of what the kernel is, and how it is used. It was
 | |
|        originally written for the 2.3 kernels, but nearly all of it
 | |
|        applies to 2.2 too; 2.0 is slightly different".
 | |
|        
 | |
|      * Title: "Writing an ALSA Driver"
 | |
|        Author: Takashi Iwai <tiwai@suse.de>
 | |
|        URL: http://www.alsa-project.org/~iwai/writing-an-alsa-driver/index.html
 | |
|        Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
 | |
|        Description: Advanced Linux Sound Architecture for developers,
 | |
|        both at kernel and user-level sides. ALSA is the Linux kernel
 | |
|        sound architecture in the 2.6 kernel version.
 | |
|        
 | |
|      * Title: "Programming Guide for Linux USB Device Drivers"
 | |
|        Author: Detlef Fliegl.
 | |
|        URL: http://usb.in.tum.de/usbdoc/
 | |
|        Keywords: USB, universal serial bus.
 | |
|        Description: A must-read. From the Preface: "This document should
 | |
|        give detailed information about the current state of the USB
 | |
|        subsystem and its API for USB device drivers. The first section
 | |
|        will deal with the basics of USB devices. You will learn about
 | |
|        different types of devices and their properties. Going into detail
 | |
|        you will see how USB devices communicate on the bus. The second
 | |
|        section gives an overview of the Linux USB subsystem [2] and the
 | |
|        device driver framework. Then the API and its data structures will
 | |
|        be explained step by step. The last section of this document
 | |
|        contains a reference of all API calls and their return codes".
 | |
|        Notes: Beware: the main page states: "This document may not be
 | |
|        published, printed or used in excerpts without explicit permission
 | |
|        of the author". Fortunately, it may still be read...
 | |
| 
 | |
|      * Title: "Linux Kernel Mailing List Glossary"
 | |
|        Author: various
 | |
|        URL: http://kernelnewbies.org/glossary/
 | |
|        Keywords: glossary, terms, linux-kernel.
 | |
|        Description: From the introduction: "This glossary is intended as
 | |
|        a brief description of some of the acronyms and terms you may hear
 | |
|        during discussion of the Linux kernel".
 | |
|        
 | |
|      * Title: "Linux Kernel Locking HOWTO"
 | |
|        Author: Various Talented People, and Rusty.
 | |
|        Location: in kernel tree, Documentation/DocBook/kernel-locking/
 | |
|        (must be built as "make {htmldocs | psdocs | pdfdocs})
 | |
|        Keywords: locks, locking, spinlock, semaphore, atomic, race
 | |
|        condition, bottom halves, tasklets, softirqs.
 | |
|        Description: The title says it all: document describing the
 | |
|        locking system in the Linux Kernel either in uniprocessor or SMP
 | |
|        systems.
 | |
|        Notes: "It was originally written for the later (>2.3.47) 2.3
 | |
|        kernels, but most of it applies to 2.2 too; 2.0 is slightly
 | |
|        different". Freely redistributable under the conditions of the GNU
 | |
|        General Public License.
 | |
| 
 | |
|      * Title: "Global spinlock list and usage"
 | |
|        Author: Rick Lindsley.
 | |
|        URL: http://lse.sourceforge.net/lockhier/global-spin-lock
 | |
|        Keywords: spinlock.
 | |
|        Description: This is an attempt to document both the existence and
 | |
|        usage of the spinlocks in the Linux 2.4.5 kernel. Comprehensive
 | |
|        list of spinlocks showing when they are used, which functions
 | |
|        access them, how each lock is acquired, under what conditions it
 | |
|        is held, whether interrupts can occur or not while it is held...
 | |
| 
 | |
|      * Title: "Porting Linux 2.0 Drivers To Linux 2.2: Changes and New
 | |
|        Features "
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/1999-05/gear_01.html
 | |
|        Keywords: ports, porting.
 | |
|        Description: Article from Linux Magazine on porting from 2.0 to
 | |
|        2.2 kernels.
 | |
| 
 | |
|      * Title: "Porting Device Drivers To Linux 2.2: part II"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/1999-06/gear_01.html
 | |
|        Keywords: ports, porting.
 | |
|        Description: Second part on porting from 2.0 to 2.2 kernels.
 | |
| 
 | |
|      * Title: "How To Make Sure Your Driver Will Work On The Power
 | |
|        Macintosh"
 | |
|        Author: Paul Mackerras.
 | |
|        URL: http://www.linux-mag.com/1999-07/gear_01.html
 | |
|        Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "An Introduction to SCSI Drivers"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/1999-08/gear_01.html
 | |
|        Keywords: SCSI, device, driver.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "Advanced SCSI Drivers And Other Tales"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/1999-09/gear_01.html
 | |
|        Keywords: SCSI, device, driver, advanced.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "Writing Linux Mouse Drivers"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/1999-10/gear_01.html
 | |
|        Keywords: mouse, driver, gpm.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "More on Mouse Drivers"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/1999-11/gear_01.html
 | |
|        Keywords: mouse, driver, gpm, races, asynchronous I/O.
 | |
|        Description: The title still says it all.
 | |
| 
 | |
|      * Title: "Writing Video4linux Radio Driver"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/1999-12/gear_01.html
 | |
|        Keywords: video4linux, driver, radio, radio devices.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "Video4linux Drivers, Part 1: Video-Capture Device"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/2000-01/gear_01.html
 | |
|        Keywords: video4linux, driver, video capture, capture devices,
 | |
|        camera driver.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "Video4linux Drivers, Part 2: Video-capture Devices"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/2000-02/gear_01.html
 | |
|        Keywords: video4linux, driver, video capture, capture devices,
 | |
|        camera driver, control, query capabilities, capability, facility.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "PCI Management in Linux 2.2"
 | |
|        Author: Alan Cox.
 | |
|        URL: http://www.linux-mag.com/2000-03/gear_01.html
 | |
|        Keywords: PCI, bus, bus-mastering.
 | |
|        Description: The title says it all.
 | |
| 
 | |
|      * Title: "Linux 2.4 Kernel Internals"
 | |
|        Author: Tigran Aivazian and Christoph Hellwig.
 | |
|        URL: http://www.moses.uklinux.net/patches/lki.html
 | |
|        Keywords: Linux, kernel, booting, SMB boot, VFS, page cache.
 | |
|        Description: A little book used for a short training course.
 | |
|        Covers building the kernel image, booting (including SMP bootup),
 | |
|        process management, VFS and more.
 | |
| 
 | |
|      * Title: "Linux IP Networking. A Guide to the Implementation and
 | |
|        Modification of the Linux Protocol Stack."
 | |
|        Author: Glenn Herrin.
 | |
|        URL: http://www.cs.unh.edu/cnrg/gherrin
 | |
|        Keywords: network, networking, protocol, IP, UDP, TCP, connection,
 | |
|        socket, receiving, transmitting, forwarding, routing, packets,
 | |
|        modules, /proc, sk_buff, FIB, tags.
 | |
|        Description: Excellent paper devoted to the Linux IP Networking,
 | |
|        explaining anything from the kernel's to the user space
 | |
|        configuration tools' code. Very good to get a general overview of
 | |
|        the kernel networking implementation and understand all steps
 | |
|        packets follow from the time they are received at the network
 | |
|        device till they are delivered to applications. The studied kernel
 | |
|        code is from 2.2.14 version. Provides code for a working packet
 | |
|        dropper example.
 | |
|        
 | |
|      * Title: "Get those boards talking under Linux."
 | |
|        Author: Alex Ivchenko.
 | |
|        URL: http://www.edn.com/article/CA46968.html
 | |
|        Keywords: data-acquisition boards, drivers, modules, interrupts,
 | |
|        memory allocation.
 | |
|        Description: Article written for people wishing to make their data
 | |
|        acquisition boards work on their GNU/Linux machines. Gives a basic
 | |
|        overview on writing drivers, from the naming of functions to
 | |
|        interrupt handling.
 | |
|        Notes: Two-parts article. Part II is at
 | |
|        URL: http://www.edn.com/article/CA46998.html
 | |
|        
 | |
|      * Title: "Linux PCMCIA Programmer's Guide"
 | |
|        Author: David Hinds.
 | |
|        URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
 | |
|        Keywords: PCMCIA.
 | |
|        Description: "This document describes how to write kernel device
 | |
|        drivers for the Linux PCMCIA Card Services interface. It also
 | |
|        describes how to write user-mode utilities for communicating with
 | |
|        Card Services.
 | |
| 
 | |
|      * Title: "The Linux Kernel NFSD Implementation"
 | |
|        Author: Neil Brown.
 | |
|        URL:
 | |
|        http://www.cse.unsw.edu.au/~neilb/oss/linux-commentary/nfsd.html
 | |
|        Keywords: knfsd, nfsd, NFS, RPC, lockd, mountd, statd.
 | |
|        Description: The title says it all.
 | |
|        Notes: Covers knfsd's version 1.4.7 (patch against 2.2.7 kernel).
 | |
|        
 | |
|      * Title: "A Linux vm README"
 | |
|        Author: Kanoj Sarcar.
 | |
|        URL: http://reality.sgi.com/kanoj_engr/vm229.html
 | |
|        Keywords: virtual memory, mm, pgd, vma, page, page flags, page
 | |
|        cache, swap cache, kswapd.
 | |
|        Description: Telegraphic, short descriptions and definitions
 | |
|        relating the Linux virtual memory implementation.
 | |
|        
 | |
|      * Title: "(nearly) Complete Linux Loadable Kernel Modules. The
 | |
|        definitive guide for hackers, virus coders and system
 | |
|        administrators."
 | |
|        Author: pragmatic/THC.
 | |
|        URL: http://packetstormsecurity.org/docs/hack/LKM_HACKING.html
 | |
|        Keywords: syscalls, intercept, hide, abuse, symbol table.
 | |
|        Description: Interesting paper on how to abuse the Linux kernel in
 | |
|        order to intercept and modify syscalls, make
 | |
|        files/directories/processes invisible, become root, hijack ttys,
 | |
|        write kernel modules based virus... and solutions for admins to
 | |
|        avoid all those abuses.
 | |
|        Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
 | |
|        kernels.
 | |
|        
 | |
|      BOOKS: (Not on-line)
 | |
|    
 | |
|      * Title: "Linux Device Drivers"
 | |
|        Author: Alessandro Rubini.
 | |
|        Publisher: O'Reilly & Associates.
 | |
|        Date: 1998.
 | |
|        Pages: 439.
 | |
|        ISBN: 1-56592-292-1
 | |
|        
 | |
|      * Title: "Linux Device Drivers, 2nd Edition"
 | |
|        Author: Alessandro Rubini and Jonathan Corbet.
 | |
|        Publisher: O'Reilly & Associates.
 | |
|        Date: 2001.
 | |
|        Pages: 586.
 | |
|        ISBN: 0-59600-008-1
 | |
|        Notes: Further information in
 | |
|        http://www.oreilly.com/catalog/linuxdrive2/
 | |
| 
 | |
|      * Title: "Linux Device Drivers, 3nd Edition"
 | |
|        Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
 | |
|        Publisher: O'Reilly & Associates.
 | |
|        Date: 2005.
 | |
|        Pages: 636.
 | |
|        ISBN: 0-596-00590-3
 | |
|        Notes: Further information in
 | |
|        http://www.oreilly.com/catalog/linuxdrive3/
 | |
|        PDF format, URL: http://lwn.net/Kernel/LDD3/
 | |
| 
 | |
|      * Title: "Linux Kernel Internals"
 | |
|        Author: Michael Beck.
 | |
|        Publisher: Addison-Wesley.
 | |
|        Date: 1997.
 | |
|        ISBN: 0-201-33143-8 (second edition)
 | |
|        
 | |
|      * Title: "The Design of the UNIX Operating System"
 | |
|        Author: Maurice J. Bach.
 | |
|        Publisher: Prentice Hall.
 | |
|        Date: 1986.
 | |
|        Pages: 471.
 | |
|        ISBN: 0-13-201757-1
 | |
|        
 | |
|      * Title: "The Design and Implementation of the 4.3 BSD UNIX
 | |
|        Operating System"
 | |
|        Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
 | |
|        Karels, John S. Quarterman.
 | |
|        Publisher: Addison-Wesley.
 | |
|        Date: 1989 (reprinted with corrections on October, 1990).
 | |
|        ISBN: 0-201-06196-1
 | |
|        
 | |
|      * Title: "The Design and Implementation of the 4.4 BSD UNIX
 | |
|        Operating System"
 | |
|        Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
 | |
|        John S. Quarterman.
 | |
|        Publisher: Addison-Wesley.
 | |
|        Date: 1996.
 | |
|        ISBN: 0-201-54979-4
 | |
|        
 | |
|      * Title: "Programmation Linux 2.0 API systeme et fonctionnement du
 | |
|        noyau"
 | |
|        Author: Remy Card, Eric Dumas, Franck Mevel.
 | |
|        Publisher: Eyrolles.
 | |
|        Date: 1997.
 | |
|        Pages: 520.
 | |
|        ISBN: 2-212-08932-5
 | |
|        Notes: French.
 | |
| 
 | |
|      * Title: "Unix internals -- the new frontiers"
 | |
|        Author: Uresh Vahalia.
 | |
|        Publisher: Prentice Hall.
 | |
|        Date: 1996.
 | |
|        Pages: 600.
 | |
|        ISBN: 0-13-101908-2
 | |
| 
 | |
|      * Title:  "The  Design  and Implementation of the 4.4 BSD UNIX
 | |
|        Operating System"
 | |
|        Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
 | |
|        John S. Quarterman.
 | |
|        Publisher: Addison-Wesley.
 | |
|        Date: 1996.
 | |
|        ISBN: 0-201-54979-4
 | |
| 
 | |
|      * Title: "Programming for the real world - POSIX.4"
 | |
|        Author: Bill O. Gallmeister.
 | |
|        Publisher: O'Reilly & Associates, Inc..
 | |
|        Date: 1995.
 | |
|        Pages: ???.
 | |
|        ISBN: I-56592-074-0
 | |
|        Notes: Though not being directly about Linux, Linux aims to be
 | |
|        POSIX. Good reference.
 | |
| 
 | |
|      * Title:  "UNIX  Systems  for  Modern Architectures: Symmetric
 | |
|        Multiprocesssing and Caching for Kernel Programmers"
 | |
|        Author: Curt Schimmel.
 | |
|        Publisher: Addison Wesley.
 | |
|        Date: June, 1994.
 | |
|        Pages: 432.
 | |
|        ISBN: 0-201-63338-8
 | |
| 
 | |
|      * Title:  "The  Design  and Implementation of the 4.3 BSD UNIX
 | |
|        Operating System"
 | |
|        Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J.
 | |
|        Karels, John S. Quarterman.
 | |
|        Publisher: Addison-Wesley.
 | |
|        Date: 1989 (reprinted with corrections on October, 1990).
 | |
|        ISBN: 0-201-06196-1
 | |
| 
 | |
|      * Title: "The Design of the UNIX Operating System"
 | |
|        Author: Maurice J. Bach.
 | |
|        Publisher: Prentice Hall.
 | |
|        Date: 1986.
 | |
|        Pages: 471.
 | |
|        ISBN: 0-13-201757-1
 | |
| 
 | |
|      MISCELLANEOUS:
 | |
| 
 | |
|      * Name: linux/Documentation
 | |
|        Author: Many.
 | |
|        URL: Just look inside your kernel sources.
 | |
|        Keywords: anything, DocBook.
 | |
|        Description: Documentation that comes with the kernel sources,
 | |
|        inside the Documentation directory. Some pages from this document
 | |
|        (including this document itself) have been moved there, and might
 | |
|        be more up to date than the web version.
 | |
| 
 | |
|      * Name: "Linux Source Driver"
 | |
|        URL: http://lsd.linux.cz
 | |
|        Keywords: Browsing source code.
 | |
|        Description: "Linux Source Driver (LSD) is an application, which
 | |
|        can make browsing source codes of Linux kernel easier than you can
 | |
|        imagine. You can select between multiple versions of kernel (e.g.
 | |
|        0.01, 1.0.0, 2.0.33, 2.0.34pre13, 2.0.0, 2.1.101 etc.). With LSD
 | |
|        you can search Linux kernel (fulltext, macros, types, functions
 | |
|        and variables) and LSD can generate patches for you on the fly
 | |
|        (files, directories or kernel)".
 | |
| 
 | |
|      * Name: "Linux Kernel Source Reference"
 | |
|        Author: Thomas Graichen.
 | |
|        URL: http://innominate.org/~graichen/projects/lksr/
 | |
|        Keywords: CVS, web, cvsweb, browsing source code.
 | |
|        Description: Web interface to a CVS server with the kernel
 | |
|        sources. "Here you can have a look at any file of the Linux kernel
 | |
|        sources of any version starting from 1.0 up to the (daily updated)
 | |
|        current version available. Also you can check the differences
 | |
|        between two versions of a file".
 | |
| 
 | |
|      * Name: "Cross-Referencing Linux"
 | |
|        URL: http://lxr.linux.no/source/
 | |
|        Keywords: Browsing source code.
 | |
|        Description: Another web-based Linux kernel source code browser.
 | |
|        Lots of cross references to variables and functions. You can see
 | |
|        where they are defined and where they are used.
 | |
| 
 | |
|      * Name: "Linux Weekly News"
 | |
|        URL: http://lwn.net
 | |
|        Keywords: latest kernel news.
 | |
|        Description: The title says it all. There's a fixed kernel section
 | |
|        summarizing developers' work, bug fixes, new features and versions
 | |
|        produced during the week. Published every Thursday.
 | |
| 
 | |
|      * Name: "Kernel Traffic"
 | |
|        URL: http://kt.zork.net/kernel-traffic/
 | |
|        Keywords: linux-kernel mailing list, weekly kernel news.
 | |
|        Description: Weekly newsletter covering the most relevant
 | |
|        discussions of the linux-kernel mailing list.
 | |
| 
 | |
|      * Name: "CuTTiNG.eDGe.LiNuX"
 | |
|        URL: http://edge.kernelnotes.org
 | |
|        Keywords: changelist.
 | |
|        Description: Site which provides the changelist for every kernel
 | |
|        release. What's new, what's better, what's changed. Myrdraal reads
 | |
|        the patches and describes them. Pointers to the patches are there,
 | |
|        too.
 | |
| 
 | |
|      * Name: "New linux-kernel Mailing List FAQ"
 | |
|        URL: http://www.tux.org/lkml/
 | |
|        Keywords: linux-kernel mailing list FAQ.
 | |
|        Description: linux-kernel is a mailing list for developers to
 | |
|        communicate. This FAQ builds on the previous linux-kernel mailing
 | |
|        list FAQ maintained by Frohwalt Egerer, who no longer maintains
 | |
|        it. Read it to see how to join the mailing list. Dozens of
 | |
|        interesting questions regarding the list, Linux, developers (who
 | |
|        is ...?), terms (what is...?) are answered here too. Just read it.
 | |
| 
 | |
|      * Name: "Linux Virtual File System"
 | |
|        Author: Peter J. Braam.
 | |
|        URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
 | |
|        Keywords: slides, VFS, inode, superblock, dentry, dcache.
 | |
|        Description: Set of slides, presumably from a presentation on the
 | |
|        Linux VFS layer. Covers version 2.1.x, with dentries and the
 | |
|        dcache.
 | |
| 
 | |
|      * Name: "Gary's Encyclopedia - The Linux Kernel"
 | |
|        Author: Gary (I suppose...).
 | |
|        URL: http://www.lisoleg.net/cgi-bin/lisoleg.pl?view=kernel.htm
 | |
|        Keywords: links, not found here?.
 | |
|        Description: Gary's Encyclopedia exists to allow the rapid finding
 | |
|        of documentation and other information of interest to GNU/Linux
 | |
|        users. It has about 4000 links to external pages in 150 major
 | |
|        categories. This link is for kernel-specific links, documents,
 | |
|        sites... Look there if you could not find here what you were
 | |
|        looking for.
 | |
| 
 | |
|      * Name: "The home page of Linux-MM"
 | |
|        Author: The Linux-MM team.
 | |
|        URL: http://linux-mm.org/
 | |
|        Keywords: memory management, Linux-MM, mm patches, TODO, docs,
 | |
|        mailing list.
 | |
|        Description: Site devoted to Linux Memory Management development.
 | |
|        Memory related patches, HOWTOs, links, mm developers... Don't miss
 | |
|        it if you are interested in memory management development!
 | |
| 
 | |
|      * Name: "Kernel Newbies IRC Channel"
 | |
|        URL: http://www.kernelnewbies.org
 | |
|        Keywords: IRC, newbies, channel, asking doubts.
 | |
|        Description: #kernelnewbies on irc.openprojects.net. From the web
 | |
|        page: "#kernelnewbies is an IRC network dedicated to the 'newbie'
 | |
|        kernel hacker. The audience mostly consists of people who are
 | |
|        learning about the kernel, working on kernel projects or
 | |
|        professional kernel hackers that want to help less seasoned kernel
 | |
|        people. [...] #kernelnewbies is on the Open Projects IRC Network,
 | |
|        try irc.openprojects.net or irc.<country>.openprojects.net as your
 | |
|        server and then /join #kernelnewbies". It also hosts articles,
 | |
|        documents, FAQs...
 | |
|        
 | |
|      * Name: "linux-kernel mailing list archives and search engines"
 | |
|        URL: http://vger.kernel.org/vger-lists.html
 | |
|        URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
 | |
|        URL: http://marc.theaimsgroup.com/?l=linux-kernel
 | |
|        URL: http://groups.google.com/group/mlist.linux.kernel
 | |
|        URL: http://www.cs.helsinki.fi/linux/linux-kernel/
 | |
|        URL: http://www.lib.uaa.alaska.edu/linux-kernel/
 | |
|        Keywords: linux-kernel, archives, search.
 | |
|        Description: Some of the linux-kernel mailing list archivers. If
 | |
|        you have a better/another one, please let me know.
 | |
|      _________________________________________________________________
 | |
|    
 | |
|    Document last updated on Sat 2005-NOV-19
 |