Final Year Project:
Using Linux Filesystems Under Windows
Chris Bryden
BEng. Electronics and Software Engineering
School of Computer Science
University of Birmingham
6
3. The Second Extended File System
References: [2] [3] [4]
3.1 A Brief History of Linux Filesystems
Linux was originally developed as an extension to the Minix operating
system and, therefore, the only filesystem to be supported was the Minix
filesystem. This had two major limitations: the Minix filesystem stores block
addresses as 16 bit integers so the filesystem size is limited to 64 Megabytes,
and the directories contain fixed size entries with the maximum filename length
of 14 characters. Due to these limitations work began on adding support for new
filesystems into the Linux kernel.
To allow new filesystems to be added more easily into the Linux kernel, an
additional layer, the Virtual File System (VFS) layer was developed. This layer
sits between the system calls interface and the actual filesystem code to provide
an indirection layer which handles the file oriented system calls and calls the
necessary functions in the filesystem code.
Once the VFS had been implemented, a new filesystem, The Extended
File System was implemented and added to Linux 0.96c. This new filesystem
was largely based on the Minix filesystem, but removed the two major limitations,
for the Extended File System the maximum partition size was 2 Gigabytes and
the maximum file name length was 255 characters. The Extended File System
still had some unresolved problems though: There was no support for inode
modification and data modification timestamps, separate access and the
filesystem used linked lists to keep a record of free blocks and inodes and this
produced poor performance and the lists became unsorted leading to filesystem
fragmentation.
To resolve these problems, in January 1993 two new filesystems were
released in their alpha stage,. The Xia filesystem and the Second Extended
Filesystem (Ext2fs). The Xia system was heavily based on the Minix filesystem
kernel code and offered few improvements over this system. Ext2fs was based
on the Extended Filesystem code with many improvements and offered
significant advantages, not least that it was designed with evolution in mind and
contains space for many future improvements. Ext2fs is now very stable and has
become the filesystem of choice for most Linux users.