Шлюз - это просто специально объявленная точка входа (точка входа на современном языке называется процедурой, функцией или процедурой). Компилятор или ассемблер сгенерирует дополнительную информацию для точек входа, которые являются воротами. Точка входа в шлюз может быть вызвана кодом, который работает по менее привилегированному кольцу, чем у шлюза. Точки входа без шлюза не могут быть вызваны из кода, выполняемого в кольцах с более высокими номерами (менее привилегированными).
См. Раздел 8 руководства AL-39 и описание инструкции call6 для более подробной информации. Вот фрагмент:
Ворота - это процедуры, расположенные в данном кольце и предназначенные для обеспечения контролируемого доступа к кольцу. Программа, находящаяся в кольце R, может войти во внутреннее кольцо r только путем вызова одной из процедур шлюза, связанных с этим внутренним кольцом r. Ворота должны быть тщательно закодированы и не должны доверять любым данным, которые были изготовлены или изменены вызывающим абонентом в менее привилегированном кольце. В частности, ворота должны проверить все аргументы, переданные им вызывающей стороной, чтобы не поставить под угрозу защиту любого сегмента, находящегося во внутреннем кольце.