stringtranslate.com

Núcleo de acento

Accent es un núcleo de sistema operativo , más conocido por ser el predecesor del núcleo Mach . Desarrollado originalmente en la Universidad Carnegie Mellon (CMU), Accent fue influenciado por el núcleo Aleph desarrollado en la Universidad de Rochester . Accent mejora a Aleph, corrige varios problemas y reorienta el soporte de hardware para redes de máquinas de estación de trabajo (específicamente, Three Rivers PERQ ) en lugar de minicomputadoras . Accent fue parte del Proyecto SPICE en CMU que funcionó de 1981 a 1985. El desarrollo de Accent condujo directamente a la introducción de Mach, utilizado en NeXTSTEP , GNU Hurd y los sistemas operativos modernos de Apple, incluidos Mac OS e iOS .

El proyecto original de Aleph utilizaba la copia de datos para permitir que los programas se comunicaran. Las aplicaciones podían abrir puertos , lo que les permitiría recibir datos enviados por otros programas. La idea era escribir una serie de servidores que controlarían los recursos de la máquina y pasarían los datos hasta que llegaran al usuario final. En este sentido, era similar en concepto a Unix , aunque la implementación era muy diferente, ya que utilizaba mensajes en lugar de memoria. Esto resultó tener una serie de problemas, en particular que copiar memoria en su Data General Eclipse era muy costoso.

En 1979, uno de los ingenieros de Aleph, Richard Rashid , se fue a CMU y comenzó a trabajar en una nueva versión de Aleph que evitaba sus problemas. En particular, Accent se centró en las estaciones de trabajo con una MMU , utilizando la MMU para "copiar" grandes bloques de memoria mediante mapeo , haciendo que la memoria pareciera estar en dos lugares diferentes. Solo los datos que habían sido modificados por un programa u otro tendrían que copiarse físicamente, utilizando el algoritmo de copia en escritura .

Para entender la diferencia, considere dos programas que interactúan, uno alimentando un archivo a otro. Con Aleph, los datos del proveedor tendrían que copiarse 2kB a la vez (debido a las características de Eclipse) en el proceso del usuario. Con Accent, los datos simplemente "aparecían" en el proceso del usuario por el costo de unas pocas instrucciones enviadas a la MMU. Solo si el proceso del usuario cambiaba los datos, sería necesario copiar algo, e incluso entonces, solo las partes de los datos que realmente cambiaron.

Otro problema de Aleph era que sus puertos se identificaban mediante identificadores únicos que se asignaban de forma secuencial. Para un programa era fácil "adivinarlos", lo que le permitía acceder a recursos del equipo que no le habían sido concedidos. Esto hacía que el sistema Aleph fuera bastante inseguro.

Para solucionar este problema, Accent hizo que los identificadores de puerto fueran internos únicamente para el núcleo. A las instancias de un programa que abría puertos se les devolvían identificadores diferentes, almacenados en un mapeo en el núcleo. Siempre que se enviaba un mensaje al núcleo para su entrega, primero verificaba que el programa tenía acceso al puerto en cuestión comparándolo con la tabla de mapeo para ese programa. Adivinar los números de puerto ya no funcionaba, los identificadores de puerto del programa no daban ninguna pista de los identificadores "reales" en el núcleo y cualquier intento de hablar en uno que no hubiera sido entregado explícitamente por el núcleo era un error. Por lo tanto, los puertos de Accent representaban capacidades , otorgando derechos para usar recursos como resultado de recibir un identificador de puerto válido. Este tipo de sistema de capacidades, que utiliza identificadores específicos del sujeto para las capacidades, se denomina sistema de lista C.

Después de unos años, el proyecto Accent empezó a parecer cada vez menos interesante. A principios de los años 80, muchos pensaban que las futuras mejoras en el rendimiento se lograrían añadiendo más CPU a las máquinas, algo que el núcleo Accent no estaba realmente preparado para manejar. Además, el problema se vio agravado por la aparición de una nueva generación de estaciones de trabajo más potentes, lo que significaba que, de todos modos, era probable que hubiera que adaptar Accent a ellas. Asimismo, Unix se había convertido en el sistema operativo de elección para el trabajo experimental, tanto en el diseño de sistemas operativos como en la plataforma de desarrollo de aplicaciones de usuario.

Para hacer frente a estos cambios, se decidió finalizar el trabajo en Accent y comenzar de nuevo. El nuevo sistema utilizaría el sistema de puertos de Accent dentro de un núcleo Unix, creando el famoso núcleo Mach .

Algunas características de Accent:

Referencias


Enlaces externos