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.