What does gate mean in the Multics operating system?

4

I read Multics operating system. In the segment descriptor word (book) there is one part for number of gates for the segment. What does gate mean? I know the process can enter a higher-privileged ring if the gates allow (use one of the valid segment gates as an entry point) but I don't know correctly what does gate mean?

Thanks.

Fatime

Posted 2013-11-29T01:45:56.497

Reputation: 53

Answers

4

A gate is simply a specially declared entry point (an entry point would be called a routine, function, or procedure in today's language). The compiler or assembler will generate additional information for entry points that are gates. A gate entry point can be called by code that is running at a less privileged ring than that of the gate. Non gate entry points cannot be called from code running in higher numbered (less privileged) rings.

See section 8 of the AL-39 manual and the description of the call6 instruction for more detail. Here's a snippit:

Gates are procedures residing in a given ring and intended to provide controlled access to the ring. A program that is in ring R can enter an inner ring r only by calling one of the gate procedures associated with this inner ring r. Gates must be carefully coded and must not trust any data that has been manufactured or modified by the caller in a less privileged ring. In particular, gates must validate all arguments passed to them by the caller so as not to compromise the protection of any segment residing in the inner ring.

Mike Mondy

Posted 2013-11-29T01:45:56.497

Reputation: 66

0

FYI, a very similar call gate mechanism for ring transition as was used in Multics is also available in all Intel x86 systems supporting "protected mode", so from 80286 on.

Greg A. Woods

Posted 2013-11-29T01:45:56.497

Reputation: 191