When did Memory- and IO Protection Emerge (Esp. in Minis)?

Toby Thain toby at telegraphics.com.au
Tue May 3 12:34:19 CDT 2016

On 2016-05-03 12:17 PM, Paul Koning wrote:
>> On May 3, 2016, at 11:52 AM, Erik Baigar <erik at baigar.de> wrote:
>> Dear Experts,
>> during discussing the Rolms I came accross the following question:
>> What was the first (Minicomputer) architecture which offered
>> memory- and IO protection? I'd define the minimum requirements as:
>>  - Existence of a superuser mode (Rolm calls this Executive mode)
>>  - Existence of a user mode (With at least two users, Rolm offers 4)
>>  - In superuser mode, IO and memory protection for each user can be
>>    set up individually.
>>  - Any access violation is trapped and handeled by superuser code.
>>  - Of course commands for mode switching and setting up the
>>    memory and IO ranges must exist.
>> ...
>> Probably OS/2 in 1987 was one of the first home computer OSes to
>> support memory protection (how about IO protection?), BSD on some
>> Digital PDP-* was earlier (1977?) but still after the 1602.
> No, the PDP-11 offered this starting with the 11/45, in 1971.
> In larger computers the feature is much older. Consider the CDC 6600
(1964). While not all the properties you mentioned apply because I/O is
in separate peripheral processors, the notion of a privileged mode and
address mapping is there. And even that isn't the oldest example, I think.

Professor Per Brinch Hansen's 2001 book, "Classic Operating Systems":

   [the Atlas computer at Manchester University in the early 1960s] was 
the first system to exploit _supervisor calls_ known as "extracodes":
   Extracode routines form simple extensions of the basic order code, 
and also provide specific entry to supervisor routines.
   ... The Atlas supervisor has been called "the first recognisable 
modern operating system" (Lavington 1980).

The book reprints the 1961 paper, "The Atlas Supervisor," Tom Kilburn, 
R. Bruce Payne and David J. Howarth:

   The fixed store contains about 250 subroutines which can be called in 
from an object program by single instructions called extracodes. When 
these routines are being obeyed, extracode control is used: extracode 
control is also used by the supervisor, which requires access to the 
"private" stores. ...
   The supervisor program controls all those functions of the system 
that are not obtained merely by allowing the central computer to proceed 
with obeying an object program. ...
   Supervisor extracode routines (S.E.R.'s) form the principal 
"branches" of the supervisor program. ... They are protected from 
interference by object programs by using subsidiary store as working 
space, together with areas of core and drum store which are locked out 
in the usual way whilst an object program is being executed ... The 
S.E.R.'s thus apply mutual protection between themselves and an object 

Great book, that repeatedly shows how many ideas we think of as "modern" 
are actually quite old. :)


> 	paul

More information about the cctalk mailing list