Abstract clock interface for simulation time.
Interface for process lifecycle dispatch orchestration.
Abstract execution engine interface.
Abstract file-system interface.
Abstract interface for the Memory Management Unit.
Abstract interface for linear addressable memory.
Scheduler abstraction managing process state queues.
Strategy interface for scheduling algorithms.
Abstract interface for virtual memory management.
Registry/mediator for named IPC channels.
KernelBuilder & operator=(const KernelBuilder &)=delete
KernelBuilder & withClock(std::unique_ptr< IClock > clock)
KernelBuilder & withFileSystem(std::unique_ptr< IFileSystem > fileSystem)
KernelBuilder & withMmu(std::unique_ptr< IMMU > mmu)
KernelBuilder & withVirtualMemory(std::unique_ptr< IVirtualMemory > virtualMemory)
KernelBuilder & withCpu(std::unique_ptr< ICPU > cpu)
KernelBuilder & withExecutionEngine(std::unique_ptr< IExecutionEngine > executionEngine)
std::unique_ptr< IKernel > build()
Builds a fully wired kernel instance.
KernelBuilder & withSchedulingPolicy(std::unique_ptr< ISchedulingPolicy > policy)
KernelBuilder & withScheduler(std::unique_ptr< IScheduler > scheduler)
KernelBuilder(const KernelBuilder &)=delete
KernelBuilder & withDispatcher(std::unique_ptr< IDispatcher > dispatcher)
std::unique_ptr< Impl > impl_
KernelBuilder & withPageReplacementPolicy(std::unique_ptr< IPageReplacementPolicy > replacement)
KernelBuilder & withDefaultTickBudget(std::size_t ticks)
KernelBuilder & withSyscallTable(std::unique_ptr< SyscallTable > syscallTable)
KernelBuilder & withMemory(std::unique_ptr< IMemory > memory)
KernelBuilder(KernelBuilder &&) noexcept
KernelBuilder & withIpcManager(std::unique_ptr< IpcManager > ipcManager)
Dispatch table mapping SyscallId to handler functions.
IKernel facade interface for top-level kernel operations.
Dependency bundle used to construct a Kernel.