Files
zosbuilder/components/rfs/schema/schema.sql
Jan De Landtsheer bf62e887e8 feat: Create minimal Zero-OS initramfs with console support
- Fixed build system to clone source repositories instead of downloading binaries
- Enhanced scripts/fetch-github.sh with proper git repo cloning and branch handling
- Updated scripts/compile-components.sh for RFS compilation with build-binary feature
- Added minimal firmware installation for essential network drivers (73 modules)
- Created comprehensive zinit configuration set (15 config files including getty)
- Added util-linux package for getty/agetty console support
- Optimized package selection for minimal 27MB initramfs footprint
- Successfully builds bootable vmlinuz.efi with embedded initramfs
- Confirmed working: VM boot, console login, network drivers, zinit init system

Components:
- initramfs.cpio.xz: 27MB compressed minimal Zero-OS image
- vmlinuz.efi: 35MB bootable kernel with embedded initramfs
- Complete Zero-OS toolchain: zinit, rfs, mycelium compiled from source
2025-08-16 23:25:59 +02:00

47 lines
1.3 KiB
SQL

-- inode table and main entrypoint of the schema
CREATE TABLE IF NOT EXISTS inode (
ino INTEGER PRIMARY KEY AUTOINCREMENT,
parent INTEGER,
name VARCHAR(255),
size INTEGER,
uid INTEGER,
gid INTEGER,
mode INTEGER,
rdev INTEGER,
ctime INTEGER,
mtime INTEGER
);
CREATE INDEX IF NOT EXISTS parents ON inode (parent);
CREATE INDEX IF NOT EXISTS names ON inode (name);
-- extra data for each inode for special types (say link targets)
CREATE TABLE IF NOT EXISTS extra (
ino INTEGER PRIMARY KEY,
data VARCHAR(4096)
);
-- blocks per file, order of insertion is important
CREATE TABLE IF NOT EXISTS block (
ino INTEGER,
id VARCHAR(32),
key VARCHAR(32)
);
CREATE INDEX IF NOT EXISTS block_ino ON block (ino);
-- global flist tags, this can include values like `version`, `description`, `block-size`, etc..
-- it can also hold extra user-defined tags for extensions
CREATE TABLE IF NOT EXISTS tag (
key VARCHAR(10) PRIMARY KEY,
value VARCHAR(255)
);
-- routing table define ranges where blobs can be found. This allows "sharding" by be able to retrieve
-- blobs from different partitions using the prefix range (hashes that are )
CREATE TABLE IF NOT EXISTS route (
start integer, -- one byte hash prefix
end integer, -- one byte hash prefix
url VARCHAR(2048)
);