DOS specifications ("standards") (Developers)
> > 3. MBR amendments to support blocks (sectors) above 4G
>
> GPT is right there. I don't think extending the MBR scheme is going to be
> supported by many implementations.
GPT is baroque -- even its name points this out ("GUID" partition table).
What I had in mind would be almost trivial to implement, and with open source systems, I might even be able to do it myself.
I have two schemes in mind:
(a) add a new signature and/or checksum to the existing MBR format. Perhaps the CHS fields could be used to store the extended LBA fields. Alternatively, some additional space could be reserved.
(b) again, add a signature and/or checksum. Simply use additional sectors/blocks for the extensions. Even with existing disks, there is usually plenty of space before the start of the first partition.
> (For a hack, we could try to support "33 bit LBA" schemes, ie the 32-bit
> fields for start and length are kept, but it is valid for start and length
> to *both* be up to FFFF_FFFFh, so (with 512 B/s) a 2 TiB - 512 B FAT32
> partition may start at sector FFFF_FFFFh. That is, allowing to use nearly 4
> TiB of hard disk space. I'm considering adding that to my early loader
> (iniload), debugger, and kernel. Most difficult would be the boot sector
> loaders due to space being at a premium there.)
That is a reasonable stopgap solution. In fact, it might even be supported already by some systems, depending on whether they truncate the LBA numbers to 32 bits.
> > 4. large file support (llseek, etc.)
>
> > Where it makes sense, existing specifications should be amended, but
> some
> > things may be better to redo from scratch.
>
> There's
> FAT+
> for FAT32 (and big-cluster FAT16) to store files up to 256 GiB - 1 B in
> size. (Up from the prior limit of either (commonly) 2 GiB - 1 B or (if
> using unsigned values) 4 GiB - 1 B). EDR-DOS is the only implementation of
> this yet.
Thanks, that is an interesting alternative. It does seem a bit too much like a hack.
My current idea is inspired by the old Linux UMSDOS. Basically, a specially named (eg. "FAT$EXT$.FS$"; could reasonably be marked as System and Hidden) and formatted (could even be human readable) file to store the additional data. It could exist in every directory where it is needed, or it could be stored in a single file, perhaps in the root directory. This file could also be used as a means to store other additional file properties such as long filenames or crypto-related stuff). In this scheme, large files would be stored as multiple regular files, each up to 2 or 4 GB in length.
For systems that don't support the scheme, command line utilities could be provided to access and manipulate the data file. The large files themselves could be accessed one chunk at a time using existing software.
A TSR could be written to add support for the scheme to existing systems. Alternatively, it could be supported directly through DJGPP and/or DOS extenders.
> And here's
> a
> description of EDR-DOS's llseek function 7142h. This interface, and
> corresponding seek offset and size field extensions in the SFTs, allows
> using 64-bit seeks.
Excellent.
-Albert.
Complete thread:
- DOS specifications ("standards") - awik, 18.11.2020, 16:57 (Developers)
- DOS specifications ("standards") - awik, 18.11.2020, 18:48
- DOS specifications ("standards") - RayeR, 18.11.2020, 20:07
- DOS specifications ("standards") - awik, 19.11.2020, 13:32
- DOS specifications ("standards") - glennmcc, 18.11.2020, 20:22
- DOS specifications ("standards") - awik, 19.11.2020, 13:44
- DOS specifications ("standards") - Zyzzle, 19.11.2020, 02:23
- DOS specifications ("standards") - awik, 19.11.2020, 14:02
- DOS specifications ("standards") - RayeR, 19.11.2020, 19:11
- DOS specifications ("standards") - awik, 19.11.2020, 14:02
- DOS specifications ("standards") - Laaca, 19.11.2020, 11:27
- DOS specifications ("standards") - awik, 19.11.2020, 15:03
- DOS specifications ("standards") - RayeR, 20.11.2020, 02:04
- DOS specifications ("standards") - tkchia, 19.11.2020, 14:12
- DOS specifications ("standards") - awik, 19.11.2020, 15:11
- DOS specifications ("standards") - RayeR, 19.11.2020, 19:06
- DOS specifications ("standards") - ecm, 20.11.2020, 16:08
- DOS specifications ("standards") - awik, 21.11.2020, 16:43
- DOS specifications ("standards") - tkchia, 21.11.2020, 17:37
- DOS specifications ("standards") - awik, 21.11.2020, 18:58
- DOS specifications ("standards") - tom, 22.11.2020, 14:58
- DOS specifications ("standards") - awik, 21.11.2020, 18:58
- DOS specifications ("standards") - marcov, 22.11.2020, 22:35
- DOS specifications ("standards") - RayeR, 23.11.2020, 05:49
- DOS specifications ("standards") - 33-bit LBA support - ecm, 23.11.2020, 10:01
- DOS specifications ("standards") - tkchia, 21.11.2020, 17:37
- DOS specifications ("standards") - ecm, 25.12.2020, 21:27
- DOS specifications ("standards") - awik, 21.11.2020, 16:43
- Hosting/Sharing - rr, 23.11.2020, 21:19
- DOS specifications ("standards") - Ro2003, 13.01.2024, 09:06
- DOS specifications ("standards") - awik, 16.01.2024, 11:28
- DOS specifications ("standards") - jadoxa, 17.01.2024, 02:15
- DOS specifications ("standards") - Rugxulo, 17.01.2024, 03:40
- DOS specifications ("standards") - jadoxa, 17.01.2024, 02:15
- DOS specifications ("standards") - awik, 16.01.2024, 11:28