The most abundant Operating System for the Acorn Archimedes ARM-based computer systems, it was (like the Archimedes itself) technologically far more advanced that its contemporaries when it was released, but fell behind by the mid 90s. It generally runs from ROM, and uses a minimal amount of RAM, and pioneered many advanced features for which its equal still hasn't been found today.

The lineage of RISC OS (pronounced 'Risc OS', but written 'RISC OS') goes all the way back to Acorn MOS and the BBC Micro. The BBC's innovative sideways RAM/sideways ROM system, while primarily designed to extend the RAM available to the BBC's 6502 processor, had the useful side-effect of creating a highly modular operating system (MOS had to be able to deal with whatever ROMs the user decided to plug in, after all!). A standard set of OS interfaces available though BBC Basic abstracted the hardware and the OS from applications: OSCLI, OS_Byte, OS_Word and the abstract character-based VDU driver call.

In designing the Operating System for the new Archimedes machines, one of the most desirable features was backwards compatability: there was an enormous base of educational software available for the BBC Micro, and they wanted to leverage as much of this as possible. RISC OS's stopgap progenitor, Arthur ("A RISC OS Before THURsday"), was based around the same kernel interfaces as MOS, which were included as a subset of the Arthur kernel interface; all well-defined abstract entry points defined by the ARM SWI instruction. Since most BBC Micro applications were written primarily in BASIC and therefore used the abstract interfaces by default, many BBC programs would run on Arthur with little or no conversion at all. For those that needed 6502 code, Acorn supplied an emulator, 65Host, which mimicked the BBC Micro model B hardware almost exactly, though more slowly. It's rare to find a program that will run on a B but not on 65Host.

The sideways ROM concept was generalised to that of a Relocatable Module, much like a dynamically linked library on other platforms, with naming services and interfaces managed by the kernel. Almost all components of the operating system were implemented as modules, including the filesystems, the editor, windowing system, etc. Modules could be part of the RISC OS ROM, reside in ROM on expansion cards (or "podules" as they were known) or be loaded into RAM. In this sense it was a true microkernel OS.

Areas where Arthur was weak were in memory management and process model, and in UI design. The OS was strictly single-tasking, only one 'process' existed at a time, and the whole address space was visible to that process. The windowing system, while clean and well-designed, meant that each application had to build its entire graphical operating environment from scratch, since it was the only process on the machine: file access, clocks, calendars, notepads etc.

The first proper release of RISC OS, which was given the release number 2.00 to reflect its descent from Arthur, knocked most of these problems out of the way in one fell swoop, and was such a reliable and stable platfom that the basic operating system had only one tiny incremental release (purely to add support for the faster ARM 3 processor) in the four years between the initial release and the release of RISC OS 3.

The windowing system (know as WindowManager or simply "The WIMP"), with some extra kernel support, grew the ability to manage multiple protected memory address spaces. The Arthur Wimp SWI interface was extended to allow context switching on event requests, and an inter-process message-passing protocol was provided, giving a safe and robust cooperative multi-tasking environment. Modular applications managed many of the mundane tasks that an application writer would have to have done under Arthur: a unified Filer module handled user-level file management, and communicated with applications via the message passing protocol to tell them where to load or save files from.

Also included was an anti-aliased outline font subsystem, which provided vector fonts, anti-aliased (in a very efficient manner, too) with cached bitmaps. To this day, the only other operating system that seems to come close to a font system as rational and aesthetically pleasing as RISC OS's is BeOS.

The next major revision of RISC OS, version 3 (generally speaking, 3.1; version 3.0 was specific to the A5000) saw some of the standard applications (text, bitmap and vector editors, alarm clock and system configuration GUI) moved into ROM, which was a huge convenience booster for those of us who lived without hard disc drives, as well as providing some interesting graphical features (such as the ability to use customised toosplrites for window components; what the rest of the world now calls 'skins'), and the ability to read/write DOS and Atari format floppy discs.

Also added with RISC OS 3 was Acorn Replay, a full-motion video framework and kernel set of decoders and renderers, which got surprisingly good quality reproduction of MPEG movies even on the likes of an 8MHz A3000. Needless to say, much extreme cleverness was involved, the inner kernels being written by those most familiar with the hardware involved, in typical Acorn fashion.

Despite these improvements, RISC OS 3 still retained the major weaknesses of RISC OS 2. While memory protection between applications was well-supported, crucial kernel areas were left entirely unprotected. This includes the ARM vector table; a sure-fire way to kill any RISC OS machine is to go to BASIC (hit F12 and type BASIC) and issue the command
!&18=&0
This amusing command reassigns the Fast Interrupt Request handler to a no-op, and immediately kills the machine next time an interrupt occurs.

Other weaknesses are the lack of pre-emptive multitasking, virtual memory filesystem caching or asynchronous I/O: these three combined can make disc access painful and tedious. This is, however, an advantage in embedded applications where real time constraints might forbid page faults or swapping, and indeed RISC OS lives on as an embedded OS in Pace set-top boxes, and some low-cost internet TVs.

Following Acorn's demise, further RISC OS development is controlled by RISC OS Ltd, with the release of RISC OS 4 in 2000 introducing some concessions towards vitrual memory amongst other minor improvements.


Information all taken from my pre-existing knowledge of RISC OS. No NDAs or proprietary knowledge were harmed in the production of this writeup.