Complete rewrite and expansion of the storage subsystem. Introduces a unified
VFS, proper filesystem drivers, volume and storage management, a suite of new
GUI and CLI applications, and boot drive auto-mounting.
Storage Architecture
Replaced storagemanagement.pas with storagemanager.pas, unified physical
device registry with BIOS drive byte correlation for boot device detection
New storagetypes.pas, shared type definitions across the storage stack
New volumemanager.pas, volume discovery, registration, and lifecycle
New iorequest.pas / iobuffer.pas, async I/O request plumbing
New fdtable.pas, per-process file descriptor table
New filesystemmanager.pas, filesystem driver registry
Filesystem Drivers
New fat32.pas, full FAT32 read/write driver (replaces stub)
New iso9660.pas, read-only ISO9660 driver for CD-ROM boot media
New flatfs.pas, custom flat filesystem driver
Retained asfs.pas with minor fixes
Partition Support
New gpt.pas, GUID Partition Table parser
New MBR.pas, Master Boot Record parser
Driver Refactors
AHCI split into AHCI/AHCI.pas + AHCI/AHCITypes.pas (296 to 1074 lines)
IDE split into IDE/IDE.pas + IDE/ata.pas + IDE/atapi.pas + IDE/idetypes.pas
Removed legacy ATA_ISR.pas
VFS
Major rewrite of vfs.pas (+1900 lines net)
Path resolution, directory listing, mounting, symlinks, working directory support
Auto-mount volumes at /disk/volN; boot volume auto-mounted at /boot
Boot Drive Detection
Multiboot boot_device byte decoded in kernel.pas and passed to storagemanager
isBootDevice flagged on the correct physical device and propagated through volumes
/boot VFS directory created and populated automatically on startup
Bug Fixes
FAT32 triple fault on deleted directoriesgetDirEntries now skips $E5
(deleted) entries; previously stale cluster pointers caused a triple fault when
navigating into recently deleted directories
New Programs
diskutil.pas, GUI disk utility (device/volume inspector, format, partitions)
notepad.pas, GUI text editor with open/save/selection/word-wrap
## Overview
Complete rewrite and expansion of the storage subsystem. Introduces a unified
VFS, proper filesystem drivers, volume and storage management, a suite of new
GUI and CLI applications, and boot drive auto-mounting.
## Storage Architecture
- Replaced `storagemanagement.pas` with `storagemanager.pas`, unified physical
device registry with BIOS drive byte correlation for boot device detection
- New `storagetypes.pas`, shared type definitions across the storage stack
- New `volumemanager.pas`, volume discovery, registration, and lifecycle
- New `iorequest.pas` / `iobuffer.pas`, async I/O request plumbing
- New `fdtable.pas`, per-process file descriptor table
- New `filesystemmanager.pas`, filesystem driver registry
## Filesystem Drivers
- New `fat32.pas`, full FAT32 read/write driver (replaces stub)
- New `iso9660.pas`, read-only ISO9660 driver for CD-ROM boot media
- New `flatfs.pas`, custom flat filesystem driver
- Retained `asfs.pas` with minor fixes
## Partition Support
- New `gpt.pas`, GUID Partition Table parser
- New `MBR.pas`, Master Boot Record parser
## Driver Refactors
- AHCI split into `AHCI/AHCI.pas` + `AHCI/AHCITypes.pas` (296 to 1074 lines)
- IDE split into `IDE/IDE.pas` + `IDE/ata.pas` + `IDE/atapi.pas` + `IDE/idetypes.pas`
- Removed legacy `ATA_ISR.pas`
## VFS
- Major rewrite of `vfs.pas` (+1900 lines net)
- Path resolution, directory listing, mounting, symlinks, working directory support
- Auto-mount volumes at `/disk/volN`; boot volume auto-mounted at `/boot`
## Boot Drive Detection
- Multiboot `boot_device` byte decoded in `kernel.pas` and passed to `storagemanager`
- `isBootDevice` flagged on the correct physical device and propagated through volumes
- `/boot` VFS directory created and populated automatically on startup
## Bug Fixes
- **FAT32 triple fault on deleted directories** `getDirEntries` now skips `$E5`
(deleted) entries; previously stale cluster pointers caused a triple fault when
navigating into recently deleted directories
## New Programs
- `diskutil.pas`, GUI disk utility (device/volume inspector, format, partitions)
- `notepad.pas`, GUI text editor with open/save/selection/word-wrap
- `filepicker.pas`, reusable inline file picker component
- `diskcmd.pas`, disk inspection CLI commands
- `partcmd.pas`, partition management CLI commands
- `volcmd.pas`, volume management CLI commands
## Process Management Integration
- `diskutil` and `notepad` call `processmanager.create()` on launch and
`processmanager.kill()` on close
- Both apps appear in `PS` and respond to `KILL` / `TERMINATE`
- Windows associated with their owning process via `windows.setWindowOwner()`
## Stats
53 files changed, 17176 insertions(+), 2997 deletions(-)
- Decode multiboot boot_device byte in storagemanager to identify boot device
- Add isBootDevice to TStorage_Device; propagate isBootDrive to volumes
- Create /boot VFS directory at init; mount boot volume there in auto_mount_volumes
- Fix getDirEntries skipping \-marked (deleted) FAT32 entries to prevent
triple fault when navigating into a deleted directory via file picker
- diskutil: add proc_pid global, diskutil_entry idle proc, create process
on launch with setWindowOwner, kill on close, zero proc_pid in init
- notepad: add pid field to TNotepadState, notepad_entry idle proc, create
process on launch with setWindowOwner, kill pid in doCloseWindow
- both apps now appear in PS and are manageable via KILL/TERMINATE
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Overview
Complete rewrite and expansion of the storage subsystem. Introduces a unified
VFS, proper filesystem drivers, volume and storage management, a suite of new
GUI and CLI applications, and boot drive auto-mounting.
Storage Architecture
storagemanagement.paswithstoragemanager.pas, unified physicaldevice registry with BIOS drive byte correlation for boot device detection
storagetypes.pas, shared type definitions across the storage stackvolumemanager.pas, volume discovery, registration, and lifecycleiorequest.pas/iobuffer.pas, async I/O request plumbingfdtable.pas, per-process file descriptor tablefilesystemmanager.pas, filesystem driver registryFilesystem Drivers
fat32.pas, full FAT32 read/write driver (replaces stub)iso9660.pas, read-only ISO9660 driver for CD-ROM boot mediaflatfs.pas, custom flat filesystem driverasfs.paswith minor fixesPartition Support
gpt.pas, GUID Partition Table parserMBR.pas, Master Boot Record parserDriver Refactors
AHCI/AHCI.pas+AHCI/AHCITypes.pas(296 to 1074 lines)IDE/IDE.pas+IDE/ata.pas+IDE/atapi.pas+IDE/idetypes.pasATA_ISR.pasVFS
vfs.pas(+1900 lines net)/disk/volN; boot volume auto-mounted at/bootBoot Drive Detection
boot_devicebyte decoded inkernel.pasand passed tostoragemanagerisBootDeviceflagged on the correct physical device and propagated through volumes/bootVFS directory created and populated automatically on startupBug Fixes
getDirEntriesnow skips$E5(deleted) entries; previously stale cluster pointers caused a triple fault when
navigating into recently deleted directories
New Programs
diskutil.pas, GUI disk utility (device/volume inspector, format, partitions)notepad.pas, GUI text editor with open/save/selection/word-wrapfilepicker.pas, reusable inline file picker componentdiskcmd.pas, disk inspection CLI commandspartcmd.pas, partition management CLI commandsvolcmd.pas, volume management CLI commandsProcess Management Integration
diskutilandnotepadcallprocessmanager.create()on launch andprocessmanager.kill()on closePSand respond toKILL/TERMINATEwindows.setWindowOwner()Stats
53 files changed, 17176 insertions(+), 2997 deletions(-)
All good, big change, big for the project.