Final Year Project: Using Linux Filesystems Under Windows   Chris Bryden BEng. Electronics and Software Engineering    School of Computer Science   University of Birmingham 9 subdirectory  itself.  The  inode  can  then  be  read  from  disk  and  subsequent  file operations performed.   3.3  The Structure of the Second Extended File System This   section   intends   to   provide   a   reference   to  the  second  extended filesystem,  it’s  layout  on  disk  and  how  this  fits  together  to  produce  a  working filesystem. The section starts by outlining the different data structures stored on disk  and  then  shows how these are used to manipulate files. The focus of the analysis  will  be  on  the  aspects  of  the  filesystem  that  are  involved  in  read  only access, as it is these areas that are currently implemented in this project. The second extended filesystem implements the standard unix file types: regular  files,  directories,  device  special  files  and  symbolic  links.  It  can  handle extremely  big  partitions,  up  to  4  Terrabytes  with  recent  work  done  on  the  VFS layer.  The long filename support in ext2fs currently limits the filename length to 255 characters, but this could be extended to 1012 if necessary. In addition to these standard features, ext2fs implements many advanced features such as : · =File attributes allow the kernel behaviour, when acting on a set of files, to be modified by the user. Attributes can be set on a file or directory. In the case of directory attributes, all files within that directory inherit the attributes. · =The logical block size used throughout the filesystem can be modified when the filesystem is created, sizes are typically 1024, 2048 or 4096 bytes.   · =Ext2fs keeps track of the filesystem state, a special flag (in the superblock) is used by the kernel code to indicate the status of the filesystem. When an ext2 filesystem is mounted in read/write mode it’s state is set to ‘not clean’, only if the  filesystem  is  unmounted  correctly  is  the  flag  set  back  to  ‘clean’.  This allows the kernel to determine whether a filesystem is likely to contain errors when attempting to mount it so checks can be performed.