
Leí el sistema operativo Multics. En la palabra descriptiva del segmento (libro) hay una parte para el número de puertas del segmento. ¿Qué significa puerta? Sé que el proceso puede ingresar a un anillo con mayores privilegios si las puertas lo permiten (use una de las puertas de segmento válidas como punto de entrada), pero no sé correctamente qué significa puerta.
Gracias.
Respuesta1
Una puerta es simplemente un punto de entrada especialmente declarado (un punto de entrada se llamaría rutina, función o procedimiento en el lenguaje actual). El compilador o ensamblador generará información adicional para los puntos de entrada que son puertas. Se puede llamar a un punto de entrada de puerta mediante un código que se ejecuta en un anillo menos privilegiado que el de la puerta. Los puntos de entrada que no son de puerta no se pueden llamar desde un código que se ejecuta en anillos con números más altos (menos privilegiados).
Consulte la sección 8 del manual AL-39 y la descripción de la instrucción call6 para obtener más detalles. Aquí hay un fragmento:
Las puertas son procedimientos que residen en un anillo determinado y están destinados a proporcionar acceso controlado al anillo. Un programa que está en el anillo R puede entrar en un anillo interior r sólo llamando a uno de los procedimientos de puerta asociados con este anillo interior r. Las puertas deben codificarse cuidadosamente y no deben confiar en ningún dato que haya sido fabricado o modificado por la persona que llama en un anillo menos privilegiado. En particular, las puertas deben validar todos los argumentos que les pasa el llamante para no comprometer la protección de ningún segmento que resida en el anillo interior.
Respuesta2
Para su información, un mecanismo de puerta de llamada muy similar para la transición de anillo al que se usó en Multics también está disponible en todos los sistemas Intel x86 que admiten el "modo protegido", es decir, desde 80286 en adelante.