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.