Filing system improvements (step 2)
Pages: 1 2
Steve Revill (20) 1361 posts |
We’ve added the next filesystem bounty – it’s a biggy so please give generously! |
Jess Hampshire (158) 865 posts |
One of the most important one yet I think. It would be nice if the formatting / partitioning tool (or suite of tools) included the ability to add partition information to existing FC drives. (The main reason being to allow a disk to be formatted partially with the current tools now, ready for the future, but also to protect drives from other operating systems thinking they are blank). It would also be nice if there could be some presets in the new formatting tool. Purposes of this: 1. To create partitions the maximum size for efficiency (i.e. biggest partition for a particular sector size) 2. To create a first partition that is usable on systems without the improvement. 3. To create partition that do not span the 128GB UDMA/PIO boundary on the Iyonix Some other desirables: The improvements to be softloadable on older systems. Filecore support to be added to something like gparted so partition can be done on other systems, and perhaps a port to RISC OS. The partitioning tools to work on earlier versions of RISC OS. (Even though you may not be able to use the resulting disk on them) |
Rick Murray (539) 13840 posts |
To chuck in my 2p, I would suggest looking at Simtec’s IDEFS for inspiration. Some things a new FileCore will need – to understand NON native formats and to be able to favour a native format over a foreign one. An example is the Pi boot where the first partition is FAT and the second would be FileCore. FAT is necessary for booting the hardware, FileCore for booting RISC OS. I’m thinking if this comes to be, what effect would it have on DOSFS? And could this pave the way for extfs support? I’m less concerned about support for previous systems. It would be nice, but I’d prefer something working faster than if worrying about legacy machines . . . in much the same way that older versions (<4) don’t have support for long file names or the extended disc formats with such. It would be very nice for the formatter to detect a FileCore drive and write a proper partition table for it without otherwise altering the partition. |
Jess Hampshire (158) 865 posts |
Doesn’t it recognise that what it has found isn’t Filecore and offer it to other filesystems to attempt to mount? I don’t think partitioning would really change this, other than offering partitions rather than disks.
In that it wouldn’t be much use without partition support. It would be nice to see a new filesystem for RISC OS. I wonder if UDF would be a better choice (because we’d get DVD and BD support too). I hope FC isn’t extended beyond any low hanging fruit.
The utilities would either rely on the enhanced facilities in the new OS or not. I’d think it easier if they didn’t, because then it would be easy to create the disks that the new system will be able to read, before making it. But if the enhancements were softloadable, it wouldn’t matter anyway to end users.
Or a separate utility. |
André Timmermans (100) 655 posts |
Would it not be better for future developments to first split FileCore into 2 components: From that point the File System improvements could be done independantly in parallel: |
nemo (145) 2546 posts |
I was going to write a detailed argument for why partitions should be treated as drives, but I realised there’s a greater problem:
That’s not a format limitation, it’s an API limitation, and one that needs to be solved before it impacts upon how partitions are implemented (or anything else), IMHO. FileCore_SectorOp was coined to escape the 2^29 byte limitation of FileCore_DiscOp. There’s no reason why new interfaces could not be created to avoid drive number and related limitations. Removing the drive number from the disc address would be a welcome improvement. FileCore_MiscOp’s Mount call already separates the drive number from the disc address (sort of). FileCore_Create could support 510 drives with the addition of a single flag in the FS descriptor’s flags to turn R6 into a pointer to a byte array of map sizes (or we accept that the ‘map size/256’ is only a guess anyway and not rely on it at all). If those FileCore API restrictions were solved, then we would be free to represent FileCore partitions as logical drives and all other difficulties would disappear (or be totally reframed).
Whether or not one has too many drives or too many partitions appears to be moot – the effect is the same. My preference is for lots of icons and a scrolling icon bar, others may prefer a stacked representation (or perhaps more naturally for RO, a Filer-like ‘My Computer’ window containing the drives). I don’t think that aesthetic consideration should effect how partitions are represented at the API level.
Again, this complication disappears if partitions are “drives”. Finally, I should also point out that partitions have been handled for a very long time by various IDE and SCSI filing systems, and in all those cases partitions were represented as drives. I have a large number of dual-partitioned 640MB PD discs named after comedy duos to attest to that. |
Theo Markettos (89) 919 posts |
On the HForm question, I’d like to mention some prior art here which is acorn-fdisk For such a replacement, I’d suggest separating the creation of partition tables (on Linux the job of fdisk and similar) and the filling in of those partitions with filesystems (mkfs.* eg mkfs.vfat, mkfs.ext4, etc). In particular, if the code for making a FileCore partition is in a library, it can easily be turned into a mkfs.filecore for use with tools like gparted – that means Linux live CDs can ship with it. Likewise Windows/Mac/etc tools can be written. This would solve a lot of chicken-and-egg problems. For example, the BeagleBoard setup guide told you to use a FAT formatted device, put a self-extracting HForm and some U-boot files on it, *Settype HForm.bas, use that to format a USB stick, then self-extract Sparkplug, then download !Boot and unzip it with Sparkplug. I tried this when I got a BBxM but only had one USB stick, so re-formatted the stick with the HForm binary on it. Only HForm failed, so I’d now corrupted my stick and I couldn’t even re-run HForm as it wasn’t there any more. Would be much easier to say ‘download oursetup.exe, tell it where your USB stick is, and it’ll format and install a RISC OS distro on it’. Or ‘boot RISC OS with Ctrl-Alt-Shift-Win-Menu-Q held down and you’ll drop into the partition tool’. Compatibility with existing tools like gparted would involve:
I believe Ben has some code in this direction already. |
Chris Hall (132) 3554 posts |
I agree that partition support is overdue. Even if a newly-created filecore partition were just to write the necessary partition table entries to protect itself (the area currently unused) to recognise other areas of the drive which contain other partitions (and ignore them) and to allow extra FAT partitions to be created in areas unused by any existing partition and to allow one special FAT partition that maps onto !Boot.Loader to be optionally created that would be a major step forward. (That can all work within the constraint that there is only one filecore partition on a drive.) |
Malcolm Hussain-Gambles (1596) 811 posts |
I was wondering if the money for the USB bounty could be diverted? |
Jess Hampshire (158) 865 posts |
I would like to see a formatter (and partitioner) in ROM and a version of packman and working DHCP networking. The idea being if you just boot the ROM, and you have a harddrive and working internet connect you could install a full system. |
Alan Robertson (52) 420 posts |
It’s good to read a wide range of people’s thoughts and opinions on this really important bounty. Given the importance of this piece of work and the relatively low number of donations to date, I’m looking at ways to speed this up, otherwise we could be waiting until 18 months before the bounty is at a sufficient level before any coding even begins. what sort of $$$ figure do we think will be required before some wizard coder will take up the challenge of this? Ubuntu Edge crowdsourcing managed to secure $10Million dollars in 25 days; We’ve managed ~$150. so there’s room for improvement. |
nemo (145) 2546 posts |
And in what sense are those figures incommensurate?! ;-) As no one is doing anything round here for the dollars, but for the love of it, you may get a better result from “£150 and a big hug”. |
Alan Robertson (52) 420 posts |
Yeah, I know what you mean. The huge amount of work done so far has been for free. Pretty amazing really. I was just thinking perhaps we could up the ante; Donate: The more money we can get from outside our traditional community perhaps will speed up some development in some key areas. There are some really talented people round here who might be persuaded to return to RISC OS if a reasonable amount of cash and hugs was available on a bounty. <looking at you Nemo ;)> |
Malcolm Hussain-Gambles (1596) 811 posts |
Just a suggestion, what about using !Store as a mechanism for fund raising? Or how about some kind of donation mechanism? Something like 10 quid a month or something? This may have been looked at before etc. just an idea…maybe a good one, maybe a terrible one… |
Chris Evans (457) 1614 posts |
Alan: Not wanting to belittle the work of those you mentioned, you omitted to mention Jeffrey Lee. He I think has been RISC OS’s biggest programming contributor for some years now. Thank you Jeffrey. |
Rick Murray (539) 13840 posts |
Why priced in $s? |
David R. Lane (77) 766 posts |
@Malcolm Hussain-Gambles
I suggested a long time back that ROOL should have set up a scheme for donations by standing order, but this was never followed up. See Forums —> Bounties —> ROOL Administration |
Trevor Johnson (329) 1645 posts |
$1000 – Pandora console signed by Uwe, Raik, Jeffrey and EvilDragon |
Sprow (202) 1158 posts |
It was around 8 weeks before the launch of the Raspberry Pi so it’s quite possible it got forgotten. I can also imagine it’s not as simple as the suggestion is brilliant: as ROOL are now VAT registered the standing orders appearing in a bank account would need to be accounted for separately, and some link established back with the bounties webpage. I’m not sure the how the bounty webpage works, but it updates automatically when you make a donation via Paypal by some hocus pocus (ie. no human involved). As the only bounty that makes sense to have a recurring payment to is probably the admin bounty, it’s probably a disproportionate amount of effort to set up. Dunno. Paypal can do ‘subscription’ buttons which look reasonably simple HTML – maybe suggest that to ROOL?
Looking at the tasks listed in the bounty, it’s a pretty chunky amount of roadworks. Easily 3x more than the step 1 bounty, so the number is in £1000’s, not £10,000’s. Start hunting for coins down the back of the sofa! |
nemo (145) 2546 posts |
Alan wrote:
I might pay even more than that. Chris pointed out:
Indeed, and what motivates Jeffrey is beyond my comprehension. Some people are just more saintly than others. OTOH Eric Hoffer said, “There is no striving for glory without a vivid awareness of the audience”. ;-D |
Chris Evans (457) 1614 posts |
I don’t think Hoffa has it quite right. I recall feeling very smug when I worked in a Hospital and drove to work on Christmas Morning at 6a.m. with no one on the roads. Even if no one else knows, you know! More on topic for programmers I came across this video which I found very interesting. |
Tim Rowledge (1742) 170 posts |
Well I just tossed another 100 quid into the pot so let’s see if anyone nibbles… |
Steve Pampling (1551) 8170 posts |
6a.m. ? |
Andrew Hodgkinson (6) 465 posts |
Oi! I’m not cheap. Mutter, mutter, mutter… |
Steve Revill (20) 1361 posts |
It did.
Yes. The main blocker is some way to make the direct debit/standing order link into the bounties page so the totals get updated appropriately. I think the current code uses PayPal’s APIs to do what it does, rather than talking to our bank account, so adding this new feature is actually surprisingly tricky – or, we’d need to implement something that runs in parallel with the real direct debit to keep the bounties page in sync, but with the inherent risk that it could be overlooked if a direct debit stops, leaving things in a bit of a mess (especially if someone claimed the bounty with more in it that it should have!). I need to chew this over with Andrew, who implemented the current stuff. |
Pages: 1 2