Go to the next section.

Copyright (C) 1994 Louis-Dominique Dubeau.

You may without charge, royalty or other payment, copy and distribute copies of this work and derivative works of this work in source or binary form provided that:

(1) you appropriately publish on each copy an appropriate copyright notice; (2) faithfully reproduce all prior copyright notices included in the original work (you may add your own copyright notice); and (3) agree to indemnify and hold all prior authors, copyright holders and licensors of the work harmless from and against all damages arising from the use of the work.

You may distribute sources of derivative works of the work provided that:

(1) (a) all source files of the original work that have been modified, (b) all source files of the derivative work that contain any party of the original work, and (c) all source files of the derivative work that are necessary to compile, link and run the derivative work without unresolved external calls and with the same functionality of the original work ("Necessary Sources") carry a prominent notice explaining the nature and date of the modification and/or creation. You are encouraged to make the Necessary Sources available under this license in order to further development and acceptance of the work.

EXCEPT AS OTHERWISE RESTRICTED BY LAW, THIS WORK IS PROVIDED WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY OR TITLE. EXCEPT AS OTHERWISE PROVIDED BY LAW, NO AUTHOR, COPYRIGHT HOLDER OR LICENSOR SHALL BE LIABLE TO YOU FOR DAMAGES OF ANY KIND, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

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.