]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commitdiff
docs: mark Tier 6E (USTAR+LZ4 InitRD) as DONE — update all documentation
authorTulio A M Mendes <[email protected]>
Sat, 14 Mar 2026 14:11:44 +0000 (11:11 -0300)
committerTulio A M Mendes <[email protected]>
Sat, 14 Mar 2026 14:11:44 +0000 (11:11 -0300)
- TIER6_PLAN.md: 6E marked DONE (mkinitrd produces USTAR+LZ4, kernel parses both)
- POSIX_ROADMAP.md: USTAR initrd format added as feature 91, removed from remaining work
- SUPPLEMENTARY_ANALYSIS.md: boot flow updated to USTAR+LZ4, feature count 91
- README.md: feature count updated to 91, mkinitrd description updated

Tests: 103/103 smoke, 64/64 host, cppcheck clean

README.md
docs/POSIX_ROADMAP.md
docs/SUPPLEMENTARY_ANALYSIS.md
docs/TIER6_PLAN.md

index 081f0c453e9eb14133762172e7a4a1ed736837a6..cf20df517f1949a224b891d19fbd0b18f016fff0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -204,7 +204,7 @@ QEMU debug helpers:
 
 See [POSIX_ROADMAP.md](docs/POSIX_ROADMAP.md) for a detailed checklist.
 
-**All 31 planned POSIX tasks are complete**, plus 59 additional features (90 total). The kernel covers **~98%** of the core POSIX interfaces needed for a practical Unix-like system. All 102 smoke tests, 16 battery checks, and 115 host tests pass clean. ARM64, RISC-V 64, and MIPS32 boot on QEMU.
+**All 31 planned POSIX tasks are complete**, plus 60 additional features (91 total). The kernel covers **~98%** of the core POSIX interfaces needed for a practical Unix-like system. All 102 smoke tests, 16 battery checks, and 115 host tests pass clean. ARM64, RISC-V 64, and MIPS32 boot on QEMU.
 
 Rump Kernel integration is in progress — prerequisites (condition variables, TSC nanosecond clock, IRQ chaining) are implemented and the `rumpuser` hypercall scaffold is in place.
 
@@ -224,6 +224,6 @@ Rump Kernel integration is in progress — prerequisites (condition variables, T
 - `user/doom/` — DOOM port (doomgeneric engine + AdrOS platform adapter)
 - `user/ulibc/` — Minimal C library (`printf`, `malloc`, `string.h`, `errno.h`, `pthread.h`, `signal.h`, `stdio.h`, `stdlib.h`, `ctype.h`, `math.h`, `sys/mman.h`, `sys/ioctl.h`, `sys/uio.h`, `time.h`, `linux/futex.h`)
 - `tests/` — Host unit tests, smoke tests, GDB scripted checks
-- `tools/` — Build tools (`mkinitrd`)
+- `tools/` — Build tools (`mkinitrd` — produces USTAR archives with LZ4 Frame compression)
 - `docs/` — Documentation (POSIX roadmap, audit report, supplementary analysis, testing plan)
 - `third_party/lwip/` — lwIP TCP/IP stack (vendored)
index b5dea816ba135ddcefb24df600097a94e7268919..f1520d995eb0b061894ee1001d7c762e4fbbaaf1 100644 (file)
@@ -274,6 +274,7 @@ Notes:
 |---------|--------|-------|
 | `pivot_root` | [x] | Swap root filesystem; mounts old root at specified path |
 | LZ4 initrd decompression | [x] | LZ4 frame decompression for compressed initrd images (`src/kernel/lz4.c`) |
+| USTAR initrd format | [x] | `tools/mkinitrd.c` produces standard USTAR archives; kernel parses 512-byte USTAR headers |
 
 ## 12. Dynamic Linking
 
@@ -345,7 +346,7 @@ Notes:
 
 ## Implementation Progress
 
-### All 31 planned tasks completed ✅ + 59 additional features (90 total)
+### All 31 planned tasks completed ✅ + 60 additional features (91 total)
 
 **High Priority (8/8):**
 1. ~~`raise()` em ulibc~~ ✅
@@ -444,6 +445,7 @@ Notes:
 88. ~~Host utility test harness (68 cross-platform tests)~~ ✅
 89. ~~Native toolchain (GCC 13.2 + Binutils 2.42, Canadian cross for i686-adros)~~ ✅
 90. ~~`mount` syscall — runtime filesystem mounting~~ ✅
+91. ~~USTAR InitRD format with LZ4 Frame compression~~ ✅
 
 ---
 
@@ -460,4 +462,4 @@ Potential future enhancements:
 | **Full SMP scheduling** | Move processes to AP runqueues; per-CPU dispatching (infrastructure in place) |
 | **ARM64/RISC-V/MIPS subsystems** | PMM, VMM, scheduler, syscalls for non-x86 |
 | **Intel HDA audio** | DMA ring buffer audio driver |
-| **USTAR initrd format** | Alternative to custom binary format (LZ4 decompression already implemented) |
+| ~~**USTAR initrd format**~~ | ✅ Implemented — USTAR + LZ4 Frame format |
index 453816f6bfa87c176e70821e48704430a1c75935..b6aef01d8806206e04b49cc66856598a1716ae08 100644 (file)
@@ -216,7 +216,7 @@ Unix-like, POSIX-compatible operating system.
 
 This score reflects that AdrOS has a **mature and feature-rich kernel** with virtually
 all core POSIX subsystems implemented and working end-to-end. All 31 planned tasks
-have been completed, plus 44 additional features (75 total). See `POSIX_ROADMAP.md`
+have been completed, plus 60 additional features (91 total). See `POSIX_ROADMAP.md`
 for the full list. All previously identified Tier 1/2/3 gaps have been resolved.
 
 ### What AdrOS Already Has (Strengths)
@@ -270,7 +270,7 @@ for the full list. All previously identified Tier 1/2/3 gaps have been resolved.
 
 | Dimension | Supplementary Material | AdrOS Current | Verdict |
 |-----------|----------------------|---------------|----------|
-| **Boot flow** | GRUB → Stub (LZ4) → Kernel → USTAR InitRD | GRUB → Kernel → Custom InitRD → OverlayFS | Both valid; AdrOS is simpler |
+| **Boot flow** | GRUB → Stub (LZ4) → Kernel → USTAR InitRD | GRUB → Kernel → USTAR+LZ4 InitRD → OverlayFS | **Comparable** |
 | **Memory architecture** | PMM + Slab + CoW + Zero-Copy DMA | PMM (spinlock+refcount+contig) + Slab + CoW + Heap (64MB) + SMEP/SMAP + PAE/NX + ASLR + Guard pages + vDSO + Zero-copy DMA | **AdrOS is more advanced** |
 | **Scheduler** | O(1) with bitmap + active/expired arrays | O(1) with bitmap + active/expired, 32 levels, decay-based priority, per-CPU infra | **Comparable** |
 | **VFS** | USTAR + FAT (planned) | tmpfs + devfs + overlayfs + diskfs + persistfs + procfs + FAT12/16/32 + ext2 | **AdrOS is more advanced** |
index 8978aa5b24a5e950468ffb0d4c7ff87960de419f..34d9f8e91c6c5ca8b7ed17641e952d112f35c1f7 100644 (file)
@@ -113,10 +113,12 @@ for ATA and E1000). No audio support.
 
 ---
 
-## 6E. USTAR InitRD Format (Priority: Low, Effort: Small — 2-3 days)
+## 6E. USTAR InitRD Format (Priority: Low, Effort: Small — 2-3 days) — ✅ DONE
 
-**Current state:** Custom binary initrd format with LZ4 decompression. Works well but
-non-standard.
+**Current state:** Fully implemented. `tools/mkinitrd.c` produces USTAR archives
+compressed with LZ4 Frame format. Kernel (`src/drivers/initrd.c`) detects LZ4 magic,
+decompresses via `lz4_decompress_frame()`, and parses standard USTAR 512-byte headers.
+Backward-compatible with legacy LZ4B format.
 
 ### Steps:
 1. **USTAR parser** — Parse 512-byte USTAR headers in initrd blob
@@ -182,7 +184,7 @@ Binutils 2.42) and Newlib port are complete.
 | ~~2~~ | ~~**6F** Minor POSIX gaps~~ | ✅ DONE |
 | ~~3~~ | ~~**6A** Full SMP~~ | ✅ DONE (commit 1374a6f) |
 | 4 | **6C** Rump Kernel | Unlocks USB, better drivers |
-| 5 | **6E** USTAR initrd | Small, improves developer experience |
+| ~~5~~ | ~~**6E** USTAR initrd~~ | ✅ DONE |
 | 6 | **6D** HDA Audio | Nice-to-have |
 | 7 | **6B** Multi-arch | Very large, low urgency |
 
@@ -196,7 +198,7 @@ Binutils 2.42) and Newlib port are complete.
 | 6B | Multi-arch (ARM64/RV/MIPS) subsystems | 4-8 weeks | Medium |
 | 6C | Rump Kernel integration | 4-6 weeks | Medium |
 | 6D | Intel HDA audio driver | 1-2 weeks | Low |
-| 6E | USTAR initrd format | 2-3 days | Low |
+| 6E | USTAR initrd format | ✅ DONE | Low |
 | 6F | Minor POSIX gaps (madvise, mntent, utmp) | ✅ DONE | Low |
 | 6G | Bash & Busybox ports | ✅ DONE | High |