Analysis of the Ext2fs structure
an analysis of the structure of the Second Extended File System and is based
on a study of the Linux kernel source files
Bus-Independent Device Accesses
Linux provides an API which abstracts performing IO across all busses and devices, allowing device drivers to be written independently of bus type
Concrete Architecture of the Linux Kernel
to describe the concrete (as-built) architecture of the Linux kernel. A concrete architecture description of the Linux kernel serves as a high-level specification for developers to modify and extend the existing kernel source code
Design and Implementation of the Second Extended Filesystem
first published in the Proceedings of the First Dutch International Symposium on Linux, ISBN 90-367-0385-9
DEVFS and SCSI
DEVFS and SCSI discusses the impact on the scsi subsystem of devfs, emphasizing naming issues.
Device Drivers Concluded
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
Dissecting Interrupts and Browsing DMA
the fourth in a series of five 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
Dynamic Kernels: Discovery
this article, the second of five, 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
Dynamic Kernels: Modularized Device Drivers
the first in 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 and introduction to thte topic, preparing the reader to understand next month's installment
Global spinlock list and usage
an attempt to document both the existence and usage of the spinlocks in the Linux 2.4.5 kernel
I/O Event Handling Under Linux
"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"
Inside the Linux 2.6 Completely Fair Scheduler Scheduler
The task scheduler is a key part of any operating system, and Linux® continues to evolve and innovate in this area. In kernel 2.6.23, the Completely Fair Scheduler (CFS) was introduced. This scheduler, instead of relying on run queues, uses a red-black tree implementation for task management. Explore the ideas behind CFS, its implementation, and advantages over the prior O(1) scheduler.
Journaling the Linux ext2fs Filesystem
This paper describes a work-in-progress to design and implement a transactional metadata journal for the Linux ext2fs filesystem.
Kernel API changes from 2.2 to 2.4
"2.4 linux kernel promises to have many cleanups and new features added. Changes should include many improvements in speed, resource utilisation and scalability compared to 2.0. Some of these improvements will require changes to the kernel API (the programming interface to internal kernel services)"
Linux and the DEC "Tulip" Chip
contains information on using Linux with the Intel/Digital 21040/21041/21140/21142/21143 "Tulip" chips, as used on the SMC PCI EtherPower and many other ethercards
Linux Block Device Architecture
an article explaining the Linux block device layer
Linux Devfs (Device File System) FAQ
devfs is an alternative to "real" character and block special devices on your root filesystem. Kernel device drivers can register devices by name rather than major and minor numbers. These devices will appear in devfs automatically, with whatever default ownership and protection the driver specified
Linux Device Drivers, 2nd Edition
by Alessandro Rubini & Jonathan Corbet
Linux Kernel 2.4 Internals
An introduction to the Linux 2.4 kernel by Tigran Aivazian.
Linux Kernel Map
An interactive map of the Linux kernel.
Linux Kernel Module Programming Guide
by Ori Pomerantz: so you want to write a kernel module. You know C, you've written a number of normal programs to run as processes, and now you want to get to where the real action is, to where a single wild
pointer can wipe out your file system and a core dump means a reboot
Linux Kernel Threads in Device Drivers
shows how to create and stop a kernel thread
Linux PCMCIA Programmer's Guide
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
nearly Complete Linux Loadable Kernel Modules
the definitive guide for hackers, virus coders and system administrators
Network Buffers And Memory Management
Alan Cox writes "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"
PCI Management in Linux 2.2
"Peripheral Component Interconnect (PCI) is a widely used bus standard that provides several advantages over other bus standards, such as EISA"
Printing debug info without printk
directly renders to screen bypassing limitations of printk (such as early in the boot sequence)
Putting kernel sources in CVS
how to use CVS to manage your kernel sources
Scheduling in UNIX and Linux
a short and incomplete introduction to how tasks interact with the kernel
The Devil's in the Details
the third of five on writing character device drivers, introduces concepts of reading, writing, and using ioctl-calls
The Linux RAID-1, 4, 5 Code
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
The Venus kernel interface
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
Tour Of the Linux Kernel Source
describes directories, files, variables, data structures and more
Video4linux Drivers, Part 2: Video-capture Devices
provides the functions to control the use of the device and to query its facilities
Writing Tulip 21140 Media Description Tables
information on writing transceiver descriptions table for cards with incomplete EEPROM information