The OS is single-user and employs cooperative multitasking (CMT). While most current desktop OSes use preemptive multitasking (PMT) and multithreading, RISC OS remains with a CMT system. By 2003, many users had called for the OS to migrate to PMT. The OS memory protection is not comprehensive.
The core of the OS is stored in ROM, giving a fast bootup time and safety from operating system corruption. RISC OS 4 and 5 are stored in 4 MB of flash memory, or as a ROM image on SD Card on single board computers such as the Beagleboard or Raspberry Pi, allowing the operating system to be updated without having to replace the ROM chip. The OS is made up of a number of modules. These can be added to and replaced, including soft-loading of modules not present in ROM at run time and on-the-fly replacement. This design has led to OS developers releasing rolling updates to their versions of the OS, while third parties are able to write OS replacement modules to add new features. OS modules are accessed via software interrupts (SWIs), similar to system calls in other operating systems.
Most of the OS has defined ABIs to handle filters and vectors. The OS provides many ways in which the programmer can intercept and modify its operation. This simplifies the task of modifying its behaviour, either in the GUI or deeper. As a result, there are a number of third-party programs which allow the OS look and feel to be customised.