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.