Final Year Project: Using Linux Filesystems Under Windows   Chris Bryden BEng. Electronics and Software Engineering    School of Computer Science   University of Birmingham 1 1.  Introduction The use of the Linux operating system is rapidly spreading amongst home and commercial users alike. Often Microsoft Windows users migrating to Linux install it on a separate disk partition, employing  a dual boot system to enable the user  to  specify  which  operating  system  to  use  at  system  start-up.  Linux  is equipped with the capability of reading the filesystem that is used by Windows, however   Windows   exclusively   reads   its   own   filesystem.   This   presents   a considerable  inconvenience  to  users  in  that  files  located  on  a  Linux  partition cannot be accessed when Windows is being used. To access a file on the Linux filesystem, the user must re-boot the computer, start Linux, and copy the file to the  Windows  partition.  The  computer  then  has  to  again  be  re-booted  to  start Windows  and  use  the  file.  It  would,  therefore,  be  a  considerable  advantage  if files on the Linux partition could be accessed from within Windows.   It is on developing an application that achieves this task that this project is based. Linux  uses  a  filesystem  called  the  Second  Extended  Filesystem  (ext2), and  Windows  95  uses  a  filesystem  known  as  VFAT.    The  VFAT  filesystem  is essentially  the  same  as  the  FAT  (File  Allocation  Table)  filesystem  used  by previous versions of Windows and MS-DOS, except that it allows the use of long filenames.  The  two  filesystems  are  not  compatible  and  MS-DOS  or  Windows does  not  even  recognise  the  existence  of  a  partition  that  contains  an  ext2 filesystem. It is for these reasons of overcoming fundamental incompatibility and the  direct  usefulness  of  the  application    that  makes  this    an  interesting  and   technically challenging project. To  ensure  maximum  flexibility,  both  in  development  an  implementation, the functions used to access the ext2 filesystem have been incorporated into a Windows dynamically linked library (EXT2LIB.DLL).  This approach was chosen because it separates the user interface from the ‘nuts and bolts’ of accessing the filesystem.  This  means  that  the  library  can  be  used  as  a  component  when developing an application that accesses the ext2 filesystem.  Alongside the library, a Windows application, Cmdlin,  has been developed that uses the library to  provide  a  simple  command  line  style  user  interface.  This  allows  the  user  to view  partition  information  for  the  hard  disks  connected  to  the  PC,  mount  a selected ext2 partition, and then use familiar ‘cd’ and ‘ls’ commands to browse the directory structure contained in the filesystem and a ‘cp’ command to copy files from the ext2 to the FAT partition. This user interface has been designed to provide an environment that will be familiar to most computer users and is simple enough to serve as a useful tool for demonstrating the implementation and use of  the  ext2lib  library.  The  cmdlin  user  interface  and  the  ext2lib  library  together make up an application that performs the task of reading an ext2 filesystem from within Windows.