This page is intended to provide an informal overview of the internals of the RISC OS kernel, to help inform OS maintainers of how everything fits together.
The kernel source is located at castle/RiscOS/Sources/Kernel in CVS. There are three main branches of interest:
There are five main parts to the kernel source:
The kernel workspace is defined in hdr.KernelWS. Historically the bulk of the workspace has occupied the first 32K of RAM (along with the processor vectors), but ongoing work on the Cortex branch is aiming to allow the workspace to be moved to &FFFF0000 on systems which support “high processor vectors”, thereby eliminating problems caused by null pointer accesses.
Although the majority of the kernel workspace is kept private, there are several locations exported publicly to the rest of the OS in hdr.PublicWS.
Significant workspace locations are listed below:
CursorChunkAddress marks the start of a second area of workspace (currently) located at &FAFF0000. This area is used for the cursor & sound DMA buffers, along with the OSCLI workspace and SWI/IRQ despatchers.