Final Year Project:
Using Linux Filesystems Under Windows
Chris Bryden
BEng. Electronics and Software Engineering
School of Computer Science
University of Birmingham
25
The diagram below illustrates how all the functions shown to be required
in the mini case study above are fitted together. The arrows in the diagram
indicate when a function is calling another function. For functions that call more
than one other function, the numbers on the arrows indicate the order in which
the other functions are called. For example, for the case of copying a file, the
function first reads the inode to determine file size, etc., then to copy the file it
requires the list of allocated blocks for the inode so it calls the read block list
function. Finally the blocks need to be read, and the copy function calls the read
block function.
In addition to these functions that perform the operations on the ext2
filesystem, it is necessary to provide a path for layer 2 to obtain the partition
information. Layer 2 cannot simply call the read partition information function
from layer 0 as this compromises the integrity of the three layer approach. An
additional function is supplied in layer 1 to retrieve the partition information and
pass it to layer 2.
Read Block
Read Inode
Read Block List
Convert path
name to inode
number
Read Directory
Listing
Copy a file
2
1
1
2
Read Group-
Descriptor from
buffer
1
2
2
1
3
3
On startup
read
superblock into
memory
On startup
read group
descriptors
into memory
Layer 2
Layer 0
The arrow signifies
'calls'