Links:
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 Conceptual Architecture of the Linux Kernel describes the abstract or conceptual software architecture of the Linux kernel. This level of architecture is concerned with the large-scale subsystems within the kernel, but not with particular procedures or variables 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" Journaling the Linux ext2fs Filesystem (ftp only) wriiten by Stephen C. Tweedie 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)" Kernel Hacking HOWTO aimed at those who are confident compiling the Linux kernel, would like to contribute to it's development, but feel intimidated by the 2 million lines of kernel source code 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 Multiprocessing with the Completely Fair Scheduler This article introduces the Completely Fair Scheduler (CFS) for Linux. Get acquainted with the major features of the CFS, see how it works, and look ahead to some of the expected changes for the 2.6.24 release. 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" Overview of the Virtual File System this document provides the reader with a brief introduction to the Linux Virtual File System 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) Programming Guide for Linux USB Device Drivers 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 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