|
RADPx-OS Kernel (Radical Posix OS)
Crimson 0.1.4
POSIX-inspired kernel API with embedded and desktop VM targets
|
RADPx-OS exposes one stable C ABI through radkernel.h. The smaller subsystem headers, such as rad_vfs.h and rad_spi.h, include that ABI and exist so drivers and applications can include the subsystem they use.
Platform code fills rad_boot_info_t when firmware or a bootloader has already provided memory maps, command-line arguments, an initrd pointer, or an FDT pointer. The kernel is then initialized with rad_kernel_init() and driven by rad_kernel_poll() or rad_kernel_run().
Use rad_printk() for normal kernel logging and rad_early_printk() before the regular console path is registered.
The core runtime is intentionally explicit:
Architecture and SoC code is split under RADKernel/platforms. Portable A53 execution code belongs in platforms/a53; Broadcom-specific Pi drivers belong under platforms/a53/bcm283x. The x86 VM target remains the parity reference and will move under platforms/x86 once its target wrapper is thin enough to avoid behavior changes.
Opaque handles are owned by the caller after a successful open/create call. Close or destroy them with the matching close/destroy function. Functions return RAD_STATUS_OK on success, a negative rad_status_t value on kernel API errors, or a negative POSIX-style result for file descriptor/syscall wrappers.
Crimson 0.1.4 documents the intended public shape for beta work. APIs marked as experimental may change before the stable release; APIs marked stable-beta should keep source compatibility inside the Crimson branch unless a documented release note says otherwise.