School of Computing

RMoX: A raw-metal occam experiment

Fred Barnes, Christian Jacobsen, and Brian Vinter

In J.F. Broenink and G.H. Hilderink, editors, Communicating Process Architectures 2003, volume 61 of Concurrent Systems Engineering Series, pages 182-196, Amsterdam, The Netherlands, September 2003. IOS Press.


Operating-systems are the core software component of many modern computer systems, ranging from small specialised embedded systems through to large distributed operating-systems. This paper presents RMoX: a highly concurrent CSP-based operating-system written in occam. The motivation for this stems from the overwhelming need for reliable, secure and scalable operating-systems. The majority of operating-systems are written in C, a language that easily offers the level of flexibility required (for example, interfacing with assembly routines). C compilers, however, provide little or no mechanism to guard against race-hazard and aliasing errors, that can lead to catastrophic run-time failure (as well as to more subtle errors, such as security loop-holes).

The RMoX operating-system presents a novel approach to operating-system design (although this is not the first CSP-based operating-system). Concurrency is utilised at all levels, resulting in a system design that is well defined, easily understood and scalable. The implementation, using the KRoC extended occam, provides guarantees of freedom from race-hazard and aliasing errors, and makes extensive use of the recently added support for dynamic process creation and channel mobility.

Whilst targeted at mainstream computing, the ideas and methods presented are equally applicable for small-scale embedded systems --- where advantage can be made of the lightweight nature of RMoX (providing fast interrupt responses, for example).

Download publication 310 kbytes (PostScript)

Bibtex Record

author = {Fred Barnes and Christian Jacobsen and Brian Vinter},
title = {{RMoX}: A Raw-Metal occam Experiment},
month = {September},
year = {2003},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    publication_type = {inproceedings},
    submission_id = {16402_1064496200},
    ISBN = {1-58603-381-6},
    booktitle = {Communicating Process Architectures 2003},
    editor = {J.F. Broenink and G.H. Hilderink},
    volume = {61},
    series = {Concurrent Systems Engineering Series},
    address = {Amsterdam, The Netherlands},
    publisher = {IOS Press},
    ISSN = {1383-7575},
    refereed = {yes},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014