Microkernel
The VernisOS microkernel runs the minimum services in kernel mode: process scheduling, IPC, and module loading. Everything else runs in user space.
Kernel Components
Process Scheduler
Round-robin scheduler with priority levels. Context switches between user processes and kernel threads.
IPC Manager
Message queue-based inter-process communication. Supports synchronous and asynchronous message passing.
Module Loader
Dynamic module loading at runtime. Modules register with the kernel via a defined interface.
Memory Manager
Physical page allocator with demand paging. Isolates process address spaces.
Interrupt Handler
Hardware interrupt dispatch with priority-based handling. Timer, keyboard, and disk interrupts.
Syscall Interface
System call table for user-space to kernel transitions. 16 base syscalls available.
Kernel Initialization
// kernel_main.c โ Entry point after bootloader
void kernel_main(void) {
// Initialize hardware abstraction layer
hal_init();
// Set up physical memory manager
pmm_init();
// Initialize process scheduler
scheduler_init();
// Set up IPC message queues
ipc_init();
// Load kernel modules (AI engine, VernisFS, etc.)
module_loader_init();
// Initialize AI engine (Rust no_std bridge)
ai_engine_init();
// Mount VernisFS
vernisfs_mount();
// Start first user-space process (CLI shell)
process_create("shell", shell_main);
// Enter scheduler loop (never returns)
scheduler_run();
}Module System
Kernel modules can be loaded and unloaded at runtime using the module_load and module_unload CLI commands. Each module registers with the kernel through a standardized interface.
> module_list
Loaded modules:
[01] ai_anomaly โ Anomaly detection engine
[02] ai_tune โ Auto-tuning optimizer
[03] ai_scan โ System scanner
[04] ai_trust โ Trust scoring
[05] ai_monitor โ Performance monitor
[06] ai_predict โ Predictive analysis