The virtual file system is implemented as a binary file. When running on an Intel architecture, you need the following binary file [login to view URL]". These files will also be made available upon confirmation.
This file system contains only 32 blocks, the block size is 32 bytes, and so the whole file system is only 1024 bytes in size. Four types of blocks are used within the file system: the Header Block, File Entry Block, Data Block, and Free Block. The formats of these blocks are:
Header Block :
the block number
the block type
an unused short
a free block number
the block number of a File Entry Block.
File Entry Block:
the block number
the block type
the block number of another File Entry Block or zero
the byte size of the file
the number of the first Data Block for this file
the remainder of the block is used for the file name.
Data Block:
the block number
the block type
the block number of the next Data Block or zero
the remainder of the block is used for file data.
Free Block:
the block number
the block type
the block number of the next Free Block or zero.
For a particular file, there exists a directory entry containing at least the file's name, and several data blocks containing the file's data. A file containing 70 bytes requires at least 3 data blocks: the first data block stores the first 28 bytes of the file, the second block stores the next 28 bytes of the file, the third block stores the remaining 14 bytes. In addition, these 3 data blocks are dispersed throughout the file system, and therefore functions that access all data of a file must locate these dispersed data blocks to obtain the file's data.
A skeleton source code, program and [login to view URL] file will be emailed upon confirmation.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).
## Platform
1. C language must be used.
2. The program must run on Linux.