Logo ©1994-2007 Kevin Boone
My professional interests
Computing
Law
Education
Science and research

My leisure interests
Martial arts
Heritage railways
Garden railways
Motorcycles
DIY

Downloads
Linux downloads
Windows downloads
Java downloads
Perl downloads
Home automation downloads

About me
Home & family
My CV

Site info
Contact the author
Download policy
Keyword index

  Home > Computing > Linux

File handling in the Linux kernel

Last modified: Fri Aug 3 08:31:04 2007

This series of articles attempts to explain in detail what happens in the Linux kernel when applications read and write files. It is quite ambitious in scope, covering the whole process from the C-language calls that manipulate files, through the standard C library, the VFS layer, filesystem handlers, block devices, and right down to the code that wiggles the voltages on the pins of the disk controller. Although there are no shortage of general overviews available of the Linux kernel and its organization, and although there's lots of detail around about how specific pieces of code work, there doesn't seem to be available a single document that ties everything together. At least until now.
      These articles are intended for people who want to write Linux kernel modules for file, filesystem, or block device management. They may be of value to developers who are interested in other areas of the Linux kernel, as they touch on memory management, device drivers, interrupt handlers, and system calls in general. They all assume a general familiary with Linux, a working knowledge of C, and an understanding of the general principles of operating system design.
      Linux is available for many different machine architectures; even within a particular architecture there are different version of the kernel in widespread use. At the time of writing (January 2004) the first non-test version of the 2.6.0 kernel had just been announced. These articles are based on late versions of 2.4 kernel series (2.4.18 and later). Some of the content will be relevant to earlier or later kernels, but some won't. I have tried to avoid getting into architecture-specific details wherever possible; but where it was impossible to avoid I have taken examples from the x86 architecture, that being what I'm most familiar with.
      Comments, criticisms, and suggestions welcome; please send them to the usual place.

Next: introduction

   
Search

WebThis site

Shameless plug

By the author of this site. Buy on-line from Amazon USA | UK

Editorial
So you want to be a university lecturer? Read this first!

Speak like your boss: new developments in managerese

Computing features
File handling in the Linux kernel: an in-depth look at how Linux handles files, filesystems, and file I/O

All sorts of Linux stuff

Confused about CLASSPATH? answers are here

First steps in EJB using jBoss (recently revised for jBoss 3.2)