Introduction

This document has been written by Louis-Dominique Dubeau. It contains an analysis of the structure of the Second Extended File System and is based on a study of the Linux kernel source files. This document does not contain specifications written by the Ext2fs development team.

Ext2fs was designed by Rémy Card (1) as an extensible and powerful file system for Linux. It is also the most successful file system so far in the Linux community.

The first Linux file system was Minixfs: a file system originally developed for the Minix operating system. This file system had many disadvantages. Among them was: the 64MB limit on partitions, the 14 characters limit on file names and no built in extensibility.

To overcome those problems, Rémy Card wrote extfs. This file system was mostly based upon the original Minixfs code and implementation. However, it removed the 64MB size limit on partitions, and increased the file name size limit to 255 characters.

In his quest for the perfect file system, Rémy was still unsatisfied. So he decided to write an brand new file system: ext2fs. This file system not only has the advantages of extfs but also provides a better space allocation management, allows the use of special flags for file management, the use of access control lists and is extensible.

Will someday Rémy come up with ext3fs? Who knows? However, in the meantime ext2fs is the de-facto standard Linux file system. This document describes the physical layout of an ext2 file system on disk and the management policies that every ext2 file system managers should implement. The information in this document is accurate as of version 0.5 of ext2fs (Linux kernel version 1.0). The information about access control lists is not included because no implementation of ext2fs enforce them anyway.

Go to the next section.