Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > alt.os.development > #9341 > unrolled thread

The Virtual Partition - say goodbye to FAT12

Started by"Mike Gonta" <mikegonta@gmail.com>
First post2016-03-31 17:51 -0400
Last post2016-04-02 21:30 -0400
Articles 8 on this page of 28 — 5 participants

Back to article view | Back to alt.os.development


Contents

  The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-03-31 17:51 -0400
    Re: The Virtual Partition - say goodbye to FAT12 Robert Wessel <robertwessel2@yahoo.com> - 2016-03-31 20:48 -0500
      Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-01 06:50 -0400
        Re: The Virtual Partition - say goodbye to FAT12 Robert Wessel <robertwessel2@yahoo.com> - 2016-04-01 11:06 -0500
          Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-01 13:45 -0400
            Re: The Virtual Partition - say goodbye to FAT12 Robert Wessel <robertwessel2@yahoo.com> - 2016-04-01 17:06 -0500
              Re: The Virtual Partition - say goodbye to FAT12 James Harris <james.harris.1@gmail.com> - 2016-04-01 23:16 +0100
                Re: The Virtual Partition - say goodbye to FAT12 Robert Wessel <robertwessel2@yahoo.com> - 2016-04-01 17:29 -0500
                  Re: The Virtual Partition - say goodbye to FAT12 Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-01 20:24 -0400
                    Re: The Virtual Partition - say goodbye to FAT12 Robert Wessel <robertwessel2@yahoo.com> - 2016-04-02 00:10 -0500
                      Re: The Virtual Partition - say goodbye to FAT12 Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-02 12:03 -0400
                        Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-02 20:19 -0400
                      Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-02 20:08 -0400
                    Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-02 20:02 -0400
                  Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-02 19:55 -0400
                Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-02 19:30 -0400
              Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-02 18:55 -0400
                Re: The Virtual Partition - say goodbye to FAT12 Robert Wessel <robertwessel2@yahoo.com> - 2016-04-04 00:40 -0500
    Re: The Virtual Partition - say goodbye to FAT12 "wolfgang kern" <nowhere@never.at> - 2016-04-01 09:20 +0200
      Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-01 07:01 -0400
        Re: The Virtual Partition - say goodbye to FAT12 "wolfgang kern" <nowhere@never.at> - 2016-04-04 10:42 +0200
          Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-05 15:58 -0400
            Re: The Virtual Partition - say goodbye to FAT12 "wolfgang kern" <nowhere@never.at> - 2016-04-05 22:19 +0200
              Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-05 18:24 -0400
    Re: The Virtual Partition - say goodbye to FAT12 James Harris <james.harris.1@gmail.com> - 2016-04-01 09:55 +0100
      Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-01 07:11 -0400
    Re: The Virtual Partition - say goodbye to FAT12 Rod Pemberton <NoHaveNotOne@bcczxcfre.cmm> - 2016-04-01 20:24 -0400
      Re: The Virtual Partition - say goodbye to FAT12 "Mike Gonta" <mikegonta@gmail.com> - 2016-04-02 21:30 -0400

Page 2 of 2 — ← Prev page 1 [2]


#9395

From"wolfgang kern" <nowhere@never.at>
Date2016-04-04 10:42 +0200
Message-ID<ndt9d6$mjd$1@gioia.aioe.org>
In reply to#9352
Hello Mike,
...
>> It's already more than 20 years ago when I decided for a FAT-less 
>> filesystem for my OS.

>> I still kept my old routines to support at least read from any FAT
>> (4..32  bit)-volume, but I wont ever use FAT for a system container.

>> So I'd ask why ? but may already see your reason in create and store 
>> your system files by DOS/windoze tools.
 
> The FAT file system (good/bad/or ugly) is used everywhere.
> It's perfect for small bootable systems (hobby OS, games,
> utilities, embedded systems, IOT).

I never found FAT a 'perfect' solution... my system is small in 
size and its FS doesn't need such delaying/detouring overhead.

> The Virtual Partition enables a simple system FAT32 file
> system driver to be as as simple as a FAT12 driver.

My OS may have problems with a smaller than 32MB FAT32 because it 
follows the whitepaper rules and determine the FAT-type by cluster 
count only. FAT-Gen (page 14): "There is no such thing as a FAT32 
volume that has less than 65524 clusters".
So if your FAT32 use just one sector/cluster the volume must be at 
least 32 MB large (+256KB/FAT) which may not fit in a floppy image.

Your solution may work on smaller volumes too as long not present 
clusters are marked as 'bad'.

What's wrong by using FAT16 instead of FAT12 for small systems ? 
__
wolfgang 

[toc] | [prev] | [next] | [standalone]


#9407

From"Mike Gonta" <mikegonta@gmail.com>
Date2016-04-05 15:58 -0400
Message-ID<ne15em$17vu$1@gioia.aioe.org>
In reply to#9395
"wolfgang kern" wrote:

> What's wrong by using FAT16 instead of FAT12 for small
> systems ?

Hi wolfgang,

What's "wrong" with using FAT12 for small systems?

The Virtual Partition enables the use of the exact same
simple FAT12 driver for an unmodified fully compliant FAT32
volume. What's wrong with that?

The only difference in the driver is that the FAT table
entries are 32 bit instead of 12 bit. As a bonus, the 32 bit
entries are easier to handle than the odd sized (not a
native CPU word size) 12 bit which can also cross a sector
boundary for added complications. Of course, a full blown
FAT32 driver is expected to process the entries as the
actual 28 bit that it is and maintain the top 4 (reserved)
bits. It's way past the need to be concerned about the
mature FAT32 file system anymore (and even if the bits are
used - say by a file utility) the hobbyist system can safely
ignore them. Of course, handling them correctly is only a
minor thing anyway. Some other small nit picks that would
make the drivers different such as having the directory
entry for the file start cluster in two parts in two
different places is also easily ignored (and just as easily
handled) since the size of the Virtual Partition - even when
8MB would have a max cluster number of only 16K which easily
fits in the original 16 bit entry anyway.


Mike Gonta
look and see - many look but few see

http://mikegonta.com
http://tawk.to/mikegonta 

[toc] | [prev] | [next] | [standalone]


#9409

From"wolfgang kern" <nowhere@never.at>
Date2016-04-05 22:19 +0200
Message-ID<ne175o$1bc7$1@gioia.aioe.org>
In reply to#9407
Hello Mike, 
 
>> What's wrong by using FAT16 instead of FAT12 for small
>> systems ?
 
> Hi wolfgang,
 
> What's "wrong" with using FAT12 for small systems?

Me too see FAT12 as a weird historical requirement, I meant that 
FAT16 could replace FAT12 with lesser overhead.

> The Virtual Partition enables the use of the exact same
> simple FAT12 driver for an unmodified fully compliant FAT32
> volume. What's wrong with that?

Yeah, you haven't said it before.
So most of us are still in doubt what your FAT32-modifaction 
was all about...
Meanwile a few of us older AOD's may have got your idea :)
 
> The only difference in the driver is that the FAT table
> entries are 32 bit instead of 12 bit. As a bonus, the 32 bit
> entries are easier to handle than the odd sized (not a
> native CPU word size) 12 bit which can also cross a sector
> boundary for added complications. Of course, a full blown
> FAT32 driver is expected to process the entries as the
> actual 28 bit that it is and maintain the top 4 (reserved)
> bits. It's way past the need to be concerned about the
> mature FAT32 file system anymore (and even if the bits are
> used - say by a file utility) the hobbyist system can safely
> ignore them. Of course, handling them correctly is only a
> minor thing anyway. Some other small nit picks that would
> make the drivers different such as having the directory
> entry for the file start cluster in two parts in two
> different places is also easily ignored (and just as easily
> handled) since the size of the Virtual Partition - even when
> 8MB would have a max cluster number of only 16K which easily
> fits in the original 16 bit entry anyway.

After all, you could have just said that you only made the FAT-32 
root directory a fix-size like old FAT12/16 instead of dynamic.
so why that many posts and distracting words for a single matter :)
__
wolfgang 

[toc] | [prev] | [next] | [standalone]


#9410

From"Mike Gonta" <mikegonta@gmail.com>
Date2016-04-05 18:24 -0400
Message-ID<ne1dvj$1oe9$1@gioia.aioe.org>
In reply to#9409
"wolfgang kern" wrote:
> "Mike Gonta" wrote:
>> "wolfgang kern" wrote:

> Hello Mike,
>>> What's wrong by using FAT16 instead of FAT12 for small
>>> systems ?
>
>> Hi wolfgang,
>
>> What's "wrong" with using FAT12 for small systems?
>
> Me too see FAT12 as a weird historical requirement, I
meant that FAT16 could replace FAT12 with lesser overhead.

And now FAT32 can replace both.

>> The Virtual Partition enables the use of the exact same
>> simple FAT12 driver for an unmodified fully compliant
>> FAT32 volume. What's wrong with that?
>
> Yeah, you haven't said it before.
> So most of us are still in doubt what your
> FAT32-modifaction was all about...
> Meanwhile a few of us older AOD's may have got your idea :)

Maybe, but I'm not quite sure.

>> The only difference in the driver is that the FAT table
>> entries are 32 bit instead of 12 bit. As a bonus, the 32 bit
>> entries are easier to handle than the odd sized (not a
>> native CPU word size) 12 bit which can also cross a sector
>> boundary for added complications. Of course, a full blown
>> FAT32 driver is expected to process the entries as the
>> actual 28 bit that it is and maintain the top 4 (reserved)
>> bits. It's way past the need to be concerned about the
>> mature FAT32 file system anymore (and even if the bits are
>> used - say by a file utility) the hobbyist system can safely
>> ignore them. Of course, handling them correctly is only a
>> minor thing anyway. Some other small nit picks that would
>> make the drivers different such as having the directory
>> entry for the file start cluster in two parts in two
>> different places is also easily ignored (and just as easily
>> handled) since the size of the Virtual Partition - even when
>> 8MB would have a max cluster number of only 16K which easily
>> fits in the original 16 bit entry anyway.
>
> After all, you could have just said that you only made the
> FAT-32 root directory a fix-size like old FAT12/16 instead
> of dynamic.

Basically that and the "fence file" is essentially what the
AOD Virtual Partition is all about. Keep in mind that I
didn't "make" it, it's merely "formatted" that way and still
fully dynamic. The pre-allocation merely makes those clusters
contiguous so the users of the AOD Virtual Partition can
merely load a "fixed" size contiguous table, existing
software still happily follows the cluster chain to do so.

> so why that many posts and distracting words for a single
> matter :)

Yes, I know, I talk too much.


Mike Gonta
look and see - many look but few see

http://mikegonta.com
http://tawk.to/mikegonta 

[toc] | [prev] | [next] | [standalone]


#9348

FromJames Harris <james.harris.1@gmail.com>
Date2016-04-01 09:55 +0100
Message-ID<ndlctm$s0s$1@dont-email.me>
In reply to#9341
On 31/03/2016 22:51, Mike Gonta wrote:
> http://forum.osdev.org/viewtopic.php?f=1&t=30254

If I understand it, the idea is effectively to have a FAT32 partition 
begin with a FAT12 image. But why? Aside from saving a partition table 
entry and making it easier to reassign the small FAT12 block as normal 
file space I cannot see a reason to do this.

Is it to make it easier to boot from a FAT32 partition?

-- 
James

[toc] | [prev] | [next] | [standalone]


#9353

From"Mike Gonta" <mikegonta@gmail.com>
Date2016-04-01 07:11 -0400
Message-ID<ndll2m$uid$1@gioia.aioe.org>
In reply to#9348
"James Harris" wrote:
> Mike Gonta wrote:
>> http://forum.osdev.org/viewtopic.php?f=1&t=30254
>
> If I understand it, the idea is effectively to have a FAT32
> partition begin with a FAT12 image. But why? Aside from
> saving a partition table entry and making it easier to
> reassign the small FAT12 block as normal file space I
> cannot see a reason to do this.

Hi James,
The Virtual Partition is completely virtual.
The is _absolutely_ no FAT12 (or FAT16) involved in any way.
There is no actual partition, even the flash drive is not
partitioned and it will work even if it is.

> Is it to make it easier to boot from a FAT32 partition?

The Virtual Partition does make it easier to boot FAT32 (but
that's only gravy).
The Virtual Partition enables a simple system FAT32 file
system driver to be as as simple as a FAT12 driver. See my
response to "Robert Wessel"


Mike Gonta
look and see - many look but few see

http://mikegonta.com
http://tawk.to/mikegonta

[toc] | [prev] | [next] | [standalone]


#9367

FromRod Pemberton <NoHaveNotOne@bcczxcfre.cmm>
Date2016-04-01 20:24 -0400
Message-ID<20160401202439.7bfe882a@_>
In reply to#9341
On Thu, 31 Mar 2016 17:51:44 -0400
"Mike Gonta" <mikegonta@gmail.com> wrote:

> http://forum.osdev.org/viewtopic.php?f=1&t=30254
> 

I think James just misspoke ...  By "partition," I think
he meant "filesystem image" which you call a "formatted
image" in your osdev.org post.

So, you've taken a number of fields for a FAT32
filesystem image which are normally not fixed and
made them fixed fields, similar to a FAT12 filesystem
image.  This is so that you could modify a FAT12 driver
to load a root directory and FAT tables from a FAT32
filesystem image, like what is normally done for FAT12.
Is that the essence here?

At the end of your description, there is something about
modifying certain values, e.g. "changed back to 17" and
"keep track of the latest of these two values to go back
and forth."  What is this about?

Since this doesn't set up any actual partitions, it can
only be used on devices that are recognized as removable
media such as floppies and USB sticks, or filesystem images
for emulators.  I.e., this won't work on a device recognized
as a hard disk which needs to have a partition.  Correct?


Rod Pemberton

[toc] | [prev] | [next] | [standalone]


#9384

From"Mike Gonta" <mikegonta@gmail.com>
Date2016-04-02 21:30 -0400
Message-ID<ndproi$1ff7$1@gioia.aioe.org>
In reply to#9367
"Rod Pemberton" wrote:
> "Mike Gonta" wrote:
>
>> deadlink://forum.osdev.org/viewtopic.php?f=1&t=30254

Hi Rod,

Sorry, dead link.

> I think James just misspoke ...  By "partition," I think
> he meant "filesystem image" which you call a "formatted
> image" in your osdev.org post.

No problem.

> So, you've taken a number of fields for a FAT32
> filesystem image which are normally not fixed and
> made them fixed fields, similar to a FAT12 filesystem
> image.

Actually, the "fixed" location analogy was in reference to
simplifying the the driver by using assumptions that for
practical purposes hold true. For example, on a 1.44 MB
floppy disk image (here I am safely assuming that the
physical floppy disk is long gone and forgotten even though
this is not really true - http://www.floppydisk.com/ )
just don't use the reserved sectors and the locations of
the fat tables and root directory can safely be assumed to
be fixed. While this keeps things simple, best practices
dictate that the locations should be calculated from the
BPB values. Doing so does not overly complicate the driver.
Concerning FAT32, just because something can be done,
doesn't mean that it ever will be done. For practical
purposes, the first root directory cluster will always be
cluster #2. The whole purpose of relocating it (as well as
having a backup copy of the boot sector - but not the
second stage - and a second - or more - copy of the fat
table are things of the past and completely redundant today
with flash media and modern hard drives anyways.

> This is so that you could modify a FAT12 driver to load a
> root directory and FAT tables from a FAT32 filesystem
> image, like what is normally done for FAT12. Is that the
> essence here?

Correct. Either modify an existing one or writing a new
one from the same simple specification (and thus avoiding
the unnecessary complications of a full blown driver in
favor of a simple one.

> At the end of your description, there is something about
> modifying certain values, e.g. "changed back to 17" and
> "keep track of the latest of these two values to go back
> and forth."  What is this about?

I had an idea that I could use the "Last Cluster Used"
field in the FAT32 FSI to "reserve" the Virtual Partition
clusters by changing the values back and forth depending
on which type of files were being written by which system.
At first it appeared that it would work, but the way that
Windows mounts a flash drive is complicated. The excellent
critique of "Robert Wessel" prompted me to do so more
extensive testing only to discover that I couldn't depend
on it to produce the desired results. As far as the the
who's doing what and when business goes - this will be
clearly explained (some might say as clear as mud) in the
AOD Virtual Partition Specification and Protocol which I am
still working on.

> Since this doesn't set up any actual partitions, it can
> only be used on devices that are recognized as removable
> media such as floppies and USB sticks, or filesystem
> images for emulators.

There are no such restrictions. The Virtual Partition will
work exactly the same (and perfectly fine) on a FAT32
partitioned volume.

>  I.e., this won't work on a device recognized as a hard
>  disk which needs to have a partition.

It will work perfectly fine in this (what I personally
believe to be a rather strange) situation as well.


Mike Gonta
look and see - many look but few see

http://mikegonta.com
http://tawk.to/mikegonta 

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | alt.os.development


csiph-web