Edinburgh Multiple Access System

From Wikipedia, the free encyclopedia

The Edinburgh Multi-Access System (EMAS) was a mainframe computer operating system developed at the University of Edinburgh, Scotland, during the 1970s. EMAS was developed because none of the manufacturers' operating systems (nor independent systems such as Multics) came close to satisfying the demanding performance requirements of Edinburgh University.

Originally running on the ICL 4/75 mainframe (based on the design of the IBM 360) it was later reimplemented on the ICL 2900 series of mainframes (as EMAS 2900 or EMAS-2) where it ran in service until the mid 1980s. Near the end of its life, the refactored version was back-ported (as EMAS-3) to the IBM XA architecture again, running on Amdahl 470 and NAS VL80 IBM mainframe clones into the early 1990s. It was a powerful and efficient general purpose multi-user system which supplied all the computing needs of Edinburgh University and the University of Kent (the only other site outside Edinburgh to adopt the operating system). The final EMAS system (the Edinburgh VL80) was decommissioned in July 1992.

If the Edinburgh culture had been different, EMAS could easily have been a world-class operating system well before the rise of Unix. Some claim that Unix was an inferior system for almost 20 years; like the developers of Multics, Edinburgh people frequently commiserate over the advanced features of EMAS such as dynamic linking, multi-level storage, an efficient scheduler, a separate user-space kernel ('director'), a user-level shell ('basic command interpreter'), and a memory mapped file architecture — features which Unix never had or did not acquire for some time. Despite these objective advantages, EMAS perished in obscurity for various nebulous reasons.

The Edinburgh Computer History Project [1] is attempting to salvage some of the lessons learned from the EMAS project and has the complete source code of EMAS online for public browsing.

EMAS was written entirely in the Edinburgh IMP programming language, with only a small number of critical functions using embedded assembler within IMP sources.

[edit] See also