Changes between Initial Version and Version 5 of Ticket #59


Ignore:
Timestamp:
2011-03-09T21:46:10Z (13 years ago)
Author:
Jakub Jermář
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #59

    • Property Cc jakub@… added
    • Property Keywords fs fat gsoc11 added
    • Property Componentfs/fat
    • Property Milestone 0.5.00.5.1
    • Property See also#58
    • Property Summary FAT driver improvement: FAT12, FAT32, FAT64FAT server improvement: FAT12, FAT32, FAT64
  • Ticket #59 – Description

    initial v5  
    1 Extend the FAT driver to support other variants than FAT16. Notably FAT12 and FAT32, perhaps also FAT64 (ExFAT).
     1Implement support for FAT12, FAT32 and FAT64 file system formats in HelenOS.
     2
     3 Details::
     4 Extend the FAT file system server and the associated utilities such as mkfat and mkfat.py to support variants of FAT other than the currently supported FAT16. Notably FAT12 and FAT32, perhaps also FAT64 (ExFAT). In case of FAT12, the change will be rather straightforward as it should be sufficient to make the current FAT server understand the 12-bit file allocation table. In case of FAT32, it may become necessary to reconsider the current approach of assigning file system node indices due to much larger maximum number of files that can be stored on FAT32. The effort needed to support FAT64 may be equal to writing the entire file system server from scratch.
     5
     6 What Gains and Benefits will this bring?::
     7 The current FAT file system server cannot deal with file systems formatted as FAT12, FAT32 or even FAT64. Especially the FAT32 format can be commonly found on contemporary removable media such as flash disks. By improving support for other FAT formats, HelenOS will be able to mount them and access data stored on them.
     8
     9 Difficulty::
     10 Depending on the chosen variant, this project's difficulty may range from easy (FAT12), to medium (FAT32) to hard (FAT64).
     11
     12 Required skills::
     13 A successful applicant will have good skills of programming in the C language and also the ability to program in a multi-server environment, which includes communicating using HelenOS IPC. Familiarity with any variant of FAT is an advantage.
     14
     15
     16 Documentation::
     17 - [wiki:DeveloperDocs#FileSystems]
     18 - [http://www.ecma-international.org/publications/standards/Ecma-107.htm Standard ECMA-107] Volume and File Structure of Disk Cartridges for Information Interchange
     19 - [http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx Microsoft EFI FAT32 File System Specification]
     20 - [http://en.wikipedia.org/wiki/ExFAT#External_links Wikipedia page on exFAT]
     21 - [http://trac.helenos.org/browser/mainline/uspace/srv/fs/fat/fat.h#L145 Note] on assigning file system node indices in our [browser:/mainline/uspace/srv/fs/fat/fat.h fat.h]
     22
     23 Possible mentors::
     24 HelenOS Core Team, Jakub Jermar