Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?


share|improve this question
up vote 4 down vote accepted

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.

share|improve this answer
Thanks for answer. – Fatime Dec 3 '13 at 8:42

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.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .