Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > alt.os.development > #9398 > unrolled thread
| Started by | "Mike Gonta" <mikegonta@gmail.com> |
|---|---|
| First post | 2016-04-04 14:38 -0400 |
| Last post | 2016-04-04 18:51 -0400 |
| Articles | 3 — 2 participants |
Back to article view | Back to alt.os.development
The AOD Virtual Partition Specification - First Draft - 2016-04-04 - "Mike Gonta" <mikegonta@gmail.com> - 2016-04-04 14:38 -0400
Re: The AOD Virtual Partition Specification - First Draft - 2016-04-04 - James Harris <james.harris.1@gmail.com> - 2016-04-04 22:35 +0100
Re: The AOD Virtual Partition Specification - First Draft - 2016-04-04 - "Mike Gonta" <mikegonta@gmail.com> - 2016-04-04 18:51 -0400
| From | "Mike Gonta" <mikegonta@gmail.com> |
|---|---|
| Date | 2016-04-04 14:38 -0400 |
| Subject | The AOD Virtual Partition Specification - First Draft - 2016-04-04 - |
| Message-ID | <nducbn$lol$1@gioia.aioe.org> |
The AOD Virtual Partition Specification An alt.os.development Community Project - First Draft - 2016-04-04 - The Virtual Partition makes it possible for a hobbyist system to manage a FAT32 volume as easily as a FAT12 floppy disk image. Restricting access to the root directory combined with the small sizes of the FAT and root directory tables, resulted in a simple FAT12 driver. The USB flash drive and FAT32 have replaced the floppy disk, however increase capacity and differences with FAT32 have prevented the use of that same simple driver. The Virtual Partition is a subset of the three FAT32 file system components - FAT table, root directory and data space. It is these smaller, "fixed size" tables that make a simple driver simple. One of the differences with FAT32 is that the root directory is stored as a file and not as a table. By pre-allocating a small number of contiguous root directory clusters, we effectively have our root directory table once again. A "fence file" (an empty file the same size our Virtual Partition) is the first file written to the root directory. This file reserves the space of our Virtual Partition for the hobbyist system so that "other files" (written to a folder in the root directory) can be written to the drive. The "fence file" is then deleted so that all files now written - up to the end of our Virtual Partition - will be accessible to the hobbyist system. Typically, in the hobbyist FAT12 driver when a table entry is modified the entire small table was simply written back to the drive. A simple enhancement is to calculate the sector in the table that contains the modification and only write that sector back. Table sizes of up to 64KB can be easily managed. This size provides up to 2048 root files and (with one sector per cluster) 8MB of data space, more than sufficient for the hobbyist system. Mike Gonta look and see - many look but few see http://mikegonta.com http://tawk.to/mikegonta
[toc] | [next] | [standalone]
| From | James Harris <james.harris.1@gmail.com> |
|---|---|
| Date | 2016-04-04 22:35 +0100 |
| Message-ID | <ndumhn$o7k$1@dont-email.me> |
| In reply to | #9398 |
On 04/04/2016 19:38, Mike Gonta wrote: > The AOD Virtual Partition Specification > An alt.os.development Community Project > - First Draft - 2016-04-04 - > > The Virtual Partition makes it possible for a hobbyist > system to manage a FAT32 volume as easily as a FAT12 > floppy disk image. Restricting access to the root > directory combined with the small sizes of the FAT and > root directory tables, resulted in a simple FAT12 driver. Can you quantify the difference - say in lines of code for the source or bytes for the object code - between a full-and-complete FAT32 driver and an equivalent driver for your proposed structure? If I may make some criticisms (which are intended to be helpful, of course) of your proposal I would say: The description needs to begin not with what a VP does but what it _is_. For example, "A VP is a specific way to lay out the initial disk blocks of a FAT32 volume, as detailed below. Organising the beginning of the volume in the way suggested allows the software which accesses it to be reduced in size by x%. This, in turn, allows the driver software to be included in a volume boot sector which, at 512 bytes, is not large enough to work with a generic FAT32 volume." "This is often better than having the volume boot sector load a FAT32 driver because ...." Is "virtual partition" the best term? It seems more to be a specific type of FAT32. Perhaps a name like "FAT32mg" would be clearer? (Lots of things could be called virtual partitions.) -- James Harris
[toc] | [prev] | [next] | [standalone]
| From | "Mike Gonta" <mikegonta@gmail.com> |
|---|---|
| Date | 2016-04-04 18:51 -0400 |
| Message-ID | <ndur6i$1c91$1@gioia.aioe.org> |
| In reply to | #9399 |
"James Harris" wrote: > Mike Gonta wrote: >> The AOD Virtual Partition Specification >> An alt.os.development Community Project >> - First Draft - 2016-04-04 - >> >> The Virtual Partition makes it possible for a hobbyist >> system to manage a FAT32 volume as easily as a FAT12 >> floppy disk image. Restricting access to the root >> directory combined with the small sizes of the FAT and >> root directory tables, resulted in a simple FAT12 driver. > Can you quantify the difference - say in lines of code for > the source or bytes for the object code - between a > full-and-complete FAT32 driver and an equivalent driver > for your proposed structure? Hi James, How long is a piece of string? One is a subset of the other and thus smaller, simpler and easier. > If I may make some criticisms (which are intended to be > helpful, of course) of your proposal I would say: > > The description needs to begin not with what a VP does but > what it _is_. The Virtual Partition is nothing and does nothing. The FAT32 volume is completely FAT32 (by the MS specification). It is only "formatted" slightly different. There is nothing added or changed. Existing software is totally unaware of it's purpose. > For example, "A VP is a specific way to lay out the > initial disk blocks of a FAT32 volume, as detailed below. There is absolutely no lay out. > Organising the beginning of the volume in the way > suggested allows the software which accesses it to be > reduced in size by x%. This, in turn, allows the driver > software to be included in a volume boot sector which, at > 512 bytes, is not large enough to work with a generic > FAT32 volume." Nothing is organized. The Virtual Partition is simply a couple of "tricks of the trade" that make life easier. For example, ancient DOS used the trick of requiring the two named files to be 1st and 2nd in the root directory so that only the first sector of the root would have to be loaded. > "This is often better than having the volume boot sector > load a FAT32 driver because ...." The web is full of examples of single sector boot loaders for FAT32 (simply more tricks). > Is "virtual partition" the best term? It seems more to be > a specific type of FAT32. It really has nothing to do with FAT32. > Perhaps a name like "FAT32mg" would be clearer? (Lots of > things could be called virtual partitions.) It's a partition in the manner in which the driver recognizes it. The only difference is the way in which the driver locates and handles the three major components. The data still follows the root which follows the FAT, but the (virtual) sizes of the tables are not used to calculate the beginning/s of the following table/s. PS. I realize that your "examples" were my examples. But those are not things that it "does", rather they are analogies to the simple FAT12 driver and the Virtual Partition enabling the same simplicity with FAT32. Mike Gonta look and see - many look but few see http://mikegonta.com http://tawk.to/mikegonta
[toc] | [prev] | [standalone]
Back to top | Article view | alt.os.development
csiph-web