Measured rather than adjusted. The longest path on a full install is 21 characters against a native cap of about 117, so neither that nor SplitDisk's 512 binds anything, and both can be raised if that ever changes. Looking for the evidence turned up the limit that did bind - the prompt's 127 bytes, fixed in the commit before this one.
1.5 KiB
1.5 KiB
Delete me after these things are fixed
Temporary notes from the SBFS v2 and CosmOS review, in priority order.
Bound the number of directory entries
The parent field is 16 bits and stores descriptor index + 1, with zero reserved for the
root. Descriptor index 65535 therefore cannot be represented as a parent because adding
one wraps to zero. SplitDisk currently accepts directory sizes large enough to exceed the
representable parent domain.
Define and validate a maximum directory-block/entry count such that every directory entry can be named as a parent. Apply the check while formatting and mounting/reading malformed images in both implementations.
Design strengths worth preserving
- Parent-as-index-plus-one makes every version one entry a valid root child without conversion.
- Directories consume one descriptor and no data blocks, leaving the descriptor array as the complete allocation map.
- Files remain contiguous and the block allocator remains ignorant of hierarchy.
- Path resolution below the service boundary gave existing applications directories without changing their interfaces.
- The current directory is a two-byte identity rather than a stored string, and the shell restores it after applications run.
- The independent host/native implementations and byte-identical disk agreement tests are unusually strong validation of the written format.
osFileStart/osFileWrite/osFileFetch/osFileDoneprovide the bounded-memory output abstraction needed by assemblers, compilers, linkers, and future sequential pipelines.