Final Year Project:
Using Linux Filesystems Under Windows
Chris Bryden
BEng. Electronics and Software Engineering
School of Computer Science
University of Birmingham
59
descriptors and the superblock, not to mention files and directories, in order to
implement the filesystem commands.
As a read-only method of accessing an ext2 filesystem the library still has
deficiencies. Due to its reliance on DPMI to access the PC BIOS directly, it will
not work under Windows NT. Also, its use of DPMI limits it to being coded as a
16 bit library, rather than the more efficient 32 bit programs used by Windows 95.
This restriction to a 16 bit library has also meant that the long filenames used by
Windows 95 have not been supported. The C code used to implement the
library is not ideal in style and some rough edges still remain, especially in the
area of memory management. This is due to the fact that the project provided an
exercise whose main benefit was learning how to program in C. The code style
represents this learning process, with the implementation improving as the
project progressed. Unfortunately time did not permit re-coding of dubious
sections with the benefit of the knowledge gained during the project. The result
of this is that reliability and performance are not optimal.
Allowed further time there are many developments that could be made to
the project. Obviously, write enabling the library would be a huge advantage.
However this is a technically difficult proposition that would require a long
development time and major additions to the library. Also the library does not
currently handle symbolic links, correcting this is a smaller task, though. An
improvement that could be achieved without changing the library in any way is
implementing a graphical user interface. The best solution would be to write an
application that embeds the functions performed by the library within Windows
Explorer. This would mean that a mounted ext2 filesystem would appear as a
read-only disk within Explorer, enabling files to be dragged and dropped into
directories on the FAT/VFAT disks that are already visible to Explorer as
standard.
To conclude, the project has resulted in a genuinely useful and extendible
program, however, this seems a secondary achievement compared to the
amount that was learned about the ext2 filesystem (and filesystems in general),
programming for MS Windows in C and the requirements necessary to manage
a large project.