-
-
Notifications
You must be signed in to change notification settings - Fork 0
File System
Distendo edited this page May 15, 2026
·
1 revision
minios uses a simple in-memory flat filesystem. All files are stored in a fixed-size memory pool. There are no directories (except the root /), no permissions, and no timestamps.
| Property | Value |
|---|---|
| Max files | 64 |
| Filename length | 32 characters |
| Max file size | 4,096 bytes (4 KB) |
| Total pool | 65,536 bytes (64 KB) |
| Paths | Flat, no directories |
| Persistence | Manual (via disk image) |
All operations are available from the shell:
| Command | Description |
|---|---|
ls |
List all files |
cat <file> |
Display file contents |
touch <file> |
Create empty file |
edit <file> |
Open in Notepad for editing |
rm <file> |
Delete a file |
mv <old> <new> |
Rename a file |
create <file> |
Create file (with --shell flag for .sh) |
head <file> |
Show first lines |
hexdump <file> |
Show hex dump |
wc <file> |
Count lines, words, chars |
filesystem pool (64 KB)
├── file entry 0 [name, size, offset]
├── file entry 1 [name, size, offset]
├── ...
└── file entry 63 [name, size, offset]
data area (remaining pool space)
├── file 0 data (up to 4 KB)
├── file 1 data (up to 4 KB)
└── ...
Each file entry stores:
- Name (32 bytes, null-terminated)
- Size (in bytes)
- Offset into the data pool
The filesystem is in-memory only and lost on reboot unless you use a disk image:
qemu-system-i386 -kernel minios.bin -m 64 -vga std \
-nic user,model=rtl8139 \
-drive file=disk.img,format=raw,if=ideWhen a disk is present, the kernel may read/write sectors to it (depending on implementation).
The system saves configuration to /settings.cfg:
mouse_icon=0
bg_color=3357993
bg_pattern=0
boot_anim=1
anim_spd=2
desktop_env=0
This file is read on boot and written by the Settings app.
# Create a file
$ create hello.txt
# Write to it (via edit/Notepad)
$ edit hello.txt
# View it
$ cat hello.txt
# List all files
$ ls
# Copy (read then create+write — manual)
$ create a.txt
$ cat /a.txt
$ create b.txt
$ edit b.txt