Skip to content

File System

Distendo edited this page May 15, 2026 · 1 revision

Filesystem

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.

Specifications

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)

Operations

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

Internal Structure

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

Persistence

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=ide

When a disk is present, the kernel may read/write sectors to it (depending on implementation).

Settings File

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.

Common File Operations

# 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

Clone this wiki locally