PROBLEM RESOLVED: memp_malloc NULL pointer crashes (0x18/0x20 offsets) CRITICAL FIXES: - Nuclear fail-safe in memp.c for mission-critical protocol objects * Direct heap fallback for UDP_PCB, TCP_PCB, PBUF, SYS_TMR pools * Handles ABI/relocation failures in memp_pools[] descriptor array * Prevents ALL NULL dereferences in protocol allocation paths - Iteration-based network heartbeat in net_glue.nim * Drives LwIP state machines independent of system clock * Resolves DHCP/DNS timeout issues in QEMU/freestanding environments * Ensures consistent protocol advancement even with time dilation - Unified heap configuration (MEMP_MEM_MALLOC=1, LWIP_TIMERS=1) * 2MB heap for network operations * Disabled LwIP stats to avoid descriptor corruption * Increased pool sizes for robustness VERIFICATION: ✅ DHCP: Reliable IP acquisition (10.0.2.15) ✅ ICMP: Full Layer 2 connectivity confirmed ✅ DNS: Query enqueuing operational (secondary crash isolated) ✅ VirtIO: 12-byte header alignment maintained NEXT: Final DNS request table hardening for complete resolution Forge Signature: CORRECTNESS > SPEED |
||
|---|---|---|
| .. | ||
| fs | ||
| include | ||
| ion | ||
| loader | ||
| README.md | ||
| channel.nim | ||
| channels.nim | ||
| cspace.nim | ||
| cstubs.c | ||
| fastpath.nim | ||
| fiber.nim | ||
| invariant.nim | ||
| ion.nim | ||
| kernel.nim | ||
| loader.nim | ||
| loader.zig | ||
| netswitch.nim | ||
| ontology.nim | ||
| overrides.c | ||
| panicoverride.nim | ||
| pty.nim | ||
| re-symbol.txt | ||
| ring.nim | ||
| sched.nim | ||
| utcp.nim | ||
| watchdog.nim | ||
| write_wrapper.nim | ||
README.md
Rumpk Core (L1)
Language: Nim
Purpose: Architecture-agnostic kernel logic
Module Index
| File | Purpose |
|---|---|
kernel.nim |
Main Orchestrator (kmain) |
ion.nim |
ION Control Plane & Channel API |
fiber.nim |
Cooperative fiber abstraction |
watchdog.nim |
Autonomous Immune System (Healer) |
ring.nim |
Lock-free Sovereign ring buffers |
panicoverride.nim |
Freestanding panic handler |
Architecture Independence
This folder contains no architecture-specific code. All platform-specific
details are handled by the HAL layer (../hal/).
Compile-time architecture selection uses Nim's when defined():
when defined(amd64):
const CONTEXT_SIZE = 56
elif defined(arm64):
const CONTEXT_SIZE = 96
elif defined(riscv64):
const CONTEXT_SIZE = 112
Dependencies
- Imports
console_write,rumpk_haltfrom HAL (Zig L0) - Imports
cpu_switch_tofrom arch-specific assembly - Uses
mm:arcmemory management (no GC)
Build
Built via ../build.sh [aarch64|x86_64|riscv64]