Nemesis [Leslie 96] is a single-address operating system which was developed at the University of Cambridge under the ægis of the Pegasus [Leslie 93] and Pegasus II projects. Nemesis runs on a number of platforms including Pentium and upwards PC architecture machines, the Digital 3000/AXP series of workstations [DEC 94], DECchip EB164 and DECchip EB64 Alpha evaluation boards [DEC 93] and the Digital Network Appliance Reference Board[Group 97].
Development of Nemesis has reached a reasonably stable state, and the present document is a general introduction to interested parties. It does not help a Nemesis user in any but the most general educative way; those interested in using Nemesis should contact the Nemesis team at Cambridge.
Nemesis was designed in Cambridge by a team that included Paul Barham, Richard Black, Robin Fairbairns, Eoin Hyden, Ian Leslie, Derek McAuley and Timothy Roscoe.
The first version of Nemesis was written from scratch during 1994-1995 by Timothy Roscoe, David Evers and Paul Barham. (This first version ran on Digital 3000/400 AXP and 5000/25 (Maxine) [Voth 91] workstations, EB64 evaluation boards and the Fairisle FPC3 Port Controller [Hayter 94].) Other related systems are Nemo [Hyden 94] and Fawn [Black 94], both of which had some influence on the original implementation. This first version of Nemesis constituted a deliverable of the original Pegasus project.
Since then, Nemesis has been further developed by Paul Barham, Richard Black, Steven Hand, Dickon Reed, Austin Donnelly, Stephen Early, Neil Stratford, Paul Menage and KookJin Nam. A variety of deliverables of the Pegasus II project constitute ports of Nemesis, or developments of Nemesis, but the project has also to deliver a variety of things that are, in Nemesis parlance, applications. Nemesis is moving out of the laboratory!
Chapter 1 of this overview (which is drawn from [Barham 96] and [Barham 97]) outlines the structure of Nemesis, its design principles and the rationale for many of the design decisions made in its construction.
Chapter 2 (which is drawn from [Roscoe 95b]) outlines the architecture of Nemesis' naming and binding model, which enables efficient separation of, and co-operation between, applications in a single address space.
Other chapters may be added in future, but none are currently planned.
Comments, either pointing out problems or omissions, or correcting errors, will be welcomed by the editors. Such comments should mailed direct to one of the editors, firstname.lastname@example.org, email@example.com or firstname.lastname@example.org