Filing system improvements (step 3)
Guide target £6,400
Building on the foundations laid in step 2, this next step will add a whole new format to the native RISC OS filing systems enabling it to efficiently access up to 256 drives each up to 16 billion GB (16 EB) in size.
Overview
The existing FileCore E+ format has run out of road. Readily available new harddiscs are terabytes in size, and the current 2 29 sector limit isn’t able to efficiently use this space, being limited to 256GB (with 512 bytes per sector) or 2TB (with 4k bytes per sector).
In addition the map, used to describe where fragments of a file are on the disc, has grown to over 4MB. If we allow many more drives per filing system than the current limit of 8, the computer’s address space will quickly become exhausted. This is because the map is always accessible even when FileCore isn’t using it, regardless of how much free memory is installed in the computer.
To address both of these shortcomings a new disc format is required, one that is able to address large capacity drives while being tailored to RISC OS’ needs such as recording file type information.
Technical details
In the design of any new layout an assessment should be made whether an existing layout from another operating system might be adopted, or whether to extend E+, or create a custom layout. Regardless, the developer will need to work with 3rd party disc tool vendors to ensure that there is a recovery strategy available when the new format becomes available.
Internally FileCore will be extended per the design of DiscOp64 (2 64 bytes per disc, and 256 discs per filing system). A compromise may be needed where this hits other OS limits, for example availability of CMOS locations or icons on the icon bar, as long as these can be trivially lifted in future.
Each object on disc should have provision to store:
- A long filename made up of Unicode characters
- Metadata comprising
- The conventional 3 words of filetype/date stamp/access information
- Extended permissions describing user and group level access information
- Space to allow arbitrary metadata to be associated
- The 64b file size
- A reference to its location, in whatever the equivalent of the disc map is in the new format
New hooks will be added to FileCore to allow 3rd party modules to journal changes to the disc, either via service call or some kind of registration scheme. With a list of such changes it would in theory be possible to rewind the state of the disc to an earlier point, though such tools are not part of this bounty.
Deliverables
- Updated source code to FileCore module
- Support for the existing L, D, E, F, E+, F+ formats will be retained
- The additional metadata will not be utilitised at this stage
- Updated clients, where required, for ADFS4/SCSIFS/RamFS/SDFS
- We are not expecting to maintain the assembler version of ADFS any longer
- Desktop elements which assume the drive number is 1 digit long
- Updated HForm utility able to lay down the new format on a blank drive
- Documentation of the new format support, and any known limitations
Donations | 29 |
---|---|
Guide target | £6,400.00 |
Total | £6,400.00 (100%) |
State | Open |
Help |
More information about the bounty scheme Bounty scheme discussion forum |