Multicos

AjustarCompartirImprimirCitar
Sistema operativo de distribución del tiempo

Multics ("Servicio de información y computación multiplexado") es un influyente sistema operativo temprano de tiempo compartido basado en el concepto de un solo nivel de memoria. Nathan Gregory escribe que Multics "ha influido en todos los sistemas operativos modernos desde las microcomputadoras hasta los mainframes".

La planificación y el desarrollo iniciales de Multics comenzaron en 1964, en Cambridge, Massachusetts. Originalmente fue un proyecto cooperativo liderado por el MIT (Proyecto MAC con Fernando Corbató) junto con General Electric y Bell Labs. Fue desarrollado en la computadora GE 645, que fue especialmente diseñada para ello; el primero se entregó al MIT en enero de 1967. GE ofreció sus sistemas 635 anteriores con un sistema de tiempo compartido temprano conocido como "Mark I" y tenía la intención de ofrecer el 645 con Multics como un sucesor más grande. Bell se retiró del proyecto en 1969 cuando quedó claro que no entregaría un sistema funcional a corto plazo. Poco tiempo después, GE decidió abandonar por completo la industria informática y vendió la división a Honeywell en 1970. Honeywell ofreció Multics comercialmente, pero con un éxito limitado.

Multics tiene numerosas funciones destinadas a garantizar una alta disponibilidad para que admita una utilidad informática similar a las utilidades de teléfono y electricidad. La estructura de hardware modular y la arquitectura de software se utilizan para lograr esto. El sistema puede crecer en tamaño simplemente agregando más del recurso apropiado, ya sea potencia informática, memoria principal o almacenamiento en disco. Las listas de control de acceso separadas en cada archivo brindan un intercambio de información flexible, pero privacidad total cuando es necesario. Multics tiene una serie de mecanismos estándar que permiten a los ingenieros analizar el rendimiento del sistema, así como una serie de mecanismos de optimización del rendimiento adaptativo.

Debido a sus muchas ideas novedosas y valiosas, Multics ha tenido una influencia significativa en la informática a pesar de sus fallas. Su efecto más duradero en la industria informática fue inspirar la creación de Unix, que fue desarrollado en Bell para permitir que su equipo Multics continuara su investigación utilizando máquinas más pequeñas, primero una PDP-7 y finalmente la PDP-11.

Ideas novedosas

Manual de referencia de comandos multics

Multics implementa un almacenamiento de un solo nivel para el acceso a los datos, descartando la clara distinción entre archivos (llamados segmentos en Multics) y memoria de proceso. La memoria de un proceso consta únicamente de segmentos que se mapearon en su espacio de direcciones. Para leerlos o escribirlos, el proceso simplemente usa las instrucciones normales de la unidad central de procesamiento (CPU), y el sistema operativo se encarga de asegurarse de que todas las modificaciones se guardaron en el disco. En terminología POSIX, es como si cada archivo fuera mmap()ed; sin embargo, en Multics no existe el concepto de memoria de proceso, separada de la memoria utilizada para almacenar archivos mapeados, como lo tiene Unix. Toda la memoria del sistema forma parte de algún segmento, que aparece en el sistema de archivos; esto incluye la memoria temporal temporal del proceso, su pila de kernel, etc.

Los segmentos están limitados a 256 kilopalabras, poco más de 1 MB, porque el hardware de Multics tenía direcciones de palabras de 18 bits para el contenido de un segmento. Los archivos más grandes son "archivos de varios segmentos" y se manejan de manera diferente. El límite de 256kW rara vez se encontraba en la práctica, porque en ese momento, un megabyte de memoria era prohibitivamente costoso.

Otra nueva idea importante de Multics fue la vinculación dinámica, en la que un proceso en ejecución puede hacer que las rutinas externas estén disponibles al agregar los segmentos que las contienen a su espacio de direcciones. Esto permite que las aplicaciones utilicen siempre la última versión de cualquier rutina externa, ya que esas rutinas se mantienen en otros segmentos, que se vinculan dinámicamente solo cuando un proceso intenta por primera vez comenzar a ejecutarse en ellos. Dado que diferentes procesos pueden usar diferentes reglas de búsqueda, diferentes usuarios pueden terminar usando diferentes versiones de rutinas externas. Igualmente importante, con la configuración adecuada en las instalaciones de seguridad de Multics, el código en el otro segmento puede obtener acceso a las estructuras de datos mantenidas en un proceso diferente. La vinculación dinámica en Multics no requiere bibliotecas especiales de vínculos dinámicos (DLL); un programa puede vincularse dinámicamente a cualquier segmento ejecutable al que tenga derechos de acceso.

Por lo tanto, para interactuar con una aplicación que se ejecuta en parte como un demonio (en otro proceso), el proceso de un usuario simplemente realiza una instrucción de llamada de procedimiento normal a un segmento de código al que se había vinculado dinámicamente (un código segmento que implementó alguna operación asociada al daemon). El código de ese segmento puede modificar los datos mantenidos y utilizados en el daemon. Cuando se completa la acción necesaria para iniciar la solicitud, una instrucción de retorno de procedimiento simple devuelve el control del proceso del usuario al código del usuario.

Multics también admite una reconfiguración en línea extremadamente agresiva: se pueden agregar y quitar unidades de procesamiento central, bancos de memoria, unidades de disco, etc. mientras el sistema continúa funcionando. En el sistema del MIT, donde se realizó la mayor parte del desarrollo de software inicial, era una práctica común dividir el sistema multiprocesador en dos sistemas separados durante las horas libres mediante la eliminación incremental de suficientes componentes para formar un segundo sistema de trabajo, dejando el resto aún funcionando para el sistema original. Usuarios Conectados. Las pruebas de desarrollo del software del sistema se podían realizar en el segundo sistema, luego los componentes del segundo sistema se volvían a agregar al sistema del usuario principal, sin siquiera haberlo apagado. Multics admite varias CPU; es uno de los primeros sistemas multiprocesador.

Multics es el primer sistema operativo importante diseñado como un sistema seguro desde el principio. A pesar de esto, las primeras versiones de Multics se vieron comprometidas repetidamente. Esto condujo a más trabajo que hace que el sistema sea más seguro y prefiguró técnicas modernas de ingeniería de seguridad. Los robos se volvieron muy raros una vez que se adoptó la base de hardware de segunda generación; tiene soporte de hardware para seguridad orientada a anillos, un refinamiento de varios niveles del concepto de modo maestro. Un proyecto del equipo tigre de la Fuerza Aérea de EE. UU. probó la seguridad de Multics en 1973 bajo la palabra clave ZARF. El 28 de mayo de 1997, la Agencia de Seguridad Nacional de Estados Unidos desclasificó este uso de la palabra clave ZARF.

Multics es el primer sistema operativo que proporciona un sistema de archivos jerárquico, y los nombres de los archivos pueden tener una longitud y una sintaxis casi arbitrarias. Un archivo o directorio determinado puede tener varios nombres (por lo general, una forma larga y corta), y también se admiten enlaces simbólicos entre directorios. Multics es el primero en utilizar el concepto ahora estándar de pilas por proceso en el kernel, con una pila separada para cada anillo de seguridad. También es el primero en tener un procesador de comandos implementado como código de usuario ordinario, una idea que luego se usó en el shell de Unix. También es uno de los primeros escritos en un lenguaje de alto nivel (Multics PL/I), después del sistema Burroughs MCP escrito en ESPOL, una versión ampliada de ALGOL.

La implementación de Multics en entornos informáticos seguros también impulsó el desarrollo de aplicaciones de soporte innovadoras. En 1975, Morrie Gasser de MITRE Corporation desarrolló un generador de palabras aleatorias pronunciables para abordar los requisitos de contraseña de instalaciones como el Centro de Servicios de Datos de la Fuerza Aérea (AFDSC) que procesa información clasificada. Para evitar contraseñas adivinables, la AFDSC decidió asignar contraseñas pero concluyó que la asignación manual requería demasiados gastos administrativos. Por lo tanto, se investigó un generador de palabras aleatorias y luego se desarrolló en PL/I. En lugar de basarse en fonemas, el sistema empleó segmentos fonémicos (aproximaciones de segundo orden del inglés) y otras reglas para mejorar la pronunciabilidad y la aleatoriedad, que se modelaron estadísticamente frente a otros enfoques. Un descendiente de este generador se agregó a Multics durante Project Guardian.

Historial del proyecto

En 1964, Multics se desarrolló inicialmente para el mainframe GE-645, un sistema de 36 bits. Honeywell se hizo cargo del negocio de computadoras de GE, incluido Multics, en 1970; alrededor de 1973, Multics es compatible con las máquinas Honeywell 6180, que incluyeron mejoras de seguridad, incluido el soporte de hardware para anillos de protección.

Bell Labs se retiró del proyecto en 1969; algunas de las personas que habían trabajado allí crearon el sistema Unix. El desarrollo de Multics continuó en MIT y General Electric. En MIT en 1975, el uso de Multics estaba disminuyendo y no se recuperó en 1976 a los niveles anteriores. Finalmente, al recortar los precios, el MIT logró atraer a los usuarios de nuevo a Multics en 1978.

Honeywell continuó con el desarrollo del sistema hasta 1985. Se instalaron alrededor de 80 sitios multimillonarios en universidades, industrias y sitios gubernamentales. El sistema universitario francés contaba con varias instalaciones a principios de la década de 1980. Después de que Honeywell dejó de admitir Multics, los usuarios migraron a otros sistemas como Unix.

En 1985, Multics recibió la certificación como sistema operativo seguro de nivel B2 utilizando los Criterios de Evaluación de Sistemas Informáticos Confiables del Centro Nacional de Seguridad Informática (NCSC), una división de la NSA, el primer sistema operativo evaluado a este nivel.

Multics fue distribuido entre 1975 y 2000 por Groupe Bull en Europa y por Bull HN Information Systems Inc. en los Estados Unidos. En 2006, Bull SAS lanzó el código fuente de las versiones MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 y MR12.4 de Multics. MR12.5 bajo licencia de software libre.

La última instalación conocida de Multics que se ejecuta de forma nativa en el hardware de Honeywell se cerró el 30 de octubre de 2000 en el Departamento de Defensa Nacional de Canadá en Halifax, Nueva Escocia, Canadá.

Estado actual

En 2006, Bull HN lanzó el código fuente de MR12.5, la versión final de Multics de 1992, al MIT. La mayor parte del sistema ahora está disponible como software gratuito con la excepción de algunas piezas opcionales como TCP/IP.

En 2014, Multics se ejecutó con éxito en el hardware actual mediante un emulador. La versión 1.0 del emulador está disponible a partir de 2017. La versión 12.6f de Multics acompaña a la versión 1.0 del emulador y agrega algunas características nuevas, incluida la recuperación de la línea de comandos y la edición mediante el sistema de video.

Comandos

La siguiente es una lista de programas y comandos para tareas informáticas comunes que son compatibles con la interfaz de línea de comandos de Multics.

  • apl
  • ceil
  • change_wdir (cwd)
  • cobol
  • (cp)
  • eco
  • emacs
  • planta baja
  • fortran (ft)
  • gcos (gc)
  • ayuda
  • home_dir (hd)
  • si
  • lista (ls)
  • login (l)
  • logout
  • ltrim
  • correo (ml)
  • pascal
  • pl1
  • (pr)
  • print_wdir (pwd)
  • (rf)
  • rtrim
  • especie
  • teco
  • trunc
  • Donde (wh)
  • que
  • working_dir (wd)

Observaciones retrospectivas

Peter H. Salus, autor de un libro que cubre los primeros años de Unix, expresó una posición: "Con Multics intentaron tener un sistema operativo mucho más versátil y flexible, y fracasó estrepitosamente". Sin embargo, se dice que esta posición ha sido desacreditada en la comunidad informática porque muchos de los Multics' Las innovaciones técnicas se utilizan en los modernos sistemas informáticos comerciales.

El kernel residente permanente de Multics, un sistema ridiculizado en su día por ser demasiado grande y complejo, tenía 135 KB de código. El primer MIT GE-645 tenía 512 kilopalabras de memoria (2 MiB), una cantidad realmente enorme en ese momento, y el kernel usaba una porción moderada de la memoria principal de Multics.

Todo el sistema, incluido el sistema operativo y el complejo compilador PL/I, los comandos de usuario y las bibliotecas de subrutinas, consta de unos 1500 módulos fuente. Estos promedian aproximadamente 200 líneas de código fuente cada uno y compilan un total de aproximadamente 4,5 MiB de código de procedimiento, que era bastante grande para los estándares de la época.

Los compiladores de Multics generalmente optimizan más la densidad del código que el rendimiento de la CPU, por ejemplo, usando pequeñas subrutinas llamadas operadores para secuencias de código estándar cortas, lo que hace que la comparación del tamaño del código objeto con los sistemas modernos sea menos útil. La alta densidad de código es una buena opción de optimización para Multics como un sistema multiusuario con una memoria principal costosa.

Durante su historial comercial de productos, a menudo se comentaba internamente que el personal de ventas y marketing de Honeywell Information Systems (HIS) (más tarde Honeywell-Bull) estaba más familiarizado y se sentía más cómodo al presentar el caso comercial de la otra línea de computadoras de Honeywell, el DPS 6 en ejecución del SMOC. El DPS-6 y GCOS era una plataforma confiable y bien considerada para aplicaciones de inventario, contabilidad, procesamiento de textos y mercados verticales, como la banca, donde tenía una base de clientes considerable. Por el contrario, el potencial completo de la flexibilidad de Multics incluso para tareas mundanas no era fácil de comprender en esa época y sus características generalmente estaban fuera del conjunto de habilidades de los analistas de negocios contemporáneos. El alcance de esta desconexión se concretó con una anécdota transmitida por Paul Stachour, CNO/CSC:

Cuando American Phone y Telegraph cambiaron su nombre a tan solo AT plagaT en 1983, un empleado del departamento legal de Honeywell apareció y preguntó a un multiciano si podía arreglar que el nombre cambiara en todos sus documentos computarizados. Cuando se le preguntó cuándo se pudo completar el proceso, el Multiciano respondió: "Está hecho". El personal repitió que necesitaba cientos quizás miles de los documentos actualizados. The Multician explained that he had executed a global search and replace as the staffer was speaking, and the task was in fact completed.

Influencia en otros proyectos

Unix

El diseño y las características de Multics influyeron ligeramente en el sistema operativo Unix, que fue escrito originalmente por dos programadores de Multics, Ken Thompson y Dennis Ritchie. La influencia superficial de Multics en Unix es evidente en muchas áreas, incluida la denominación de algunos comandos. Pero la filosofía de diseño interno es bastante diferente, centrándose en mantener el sistema pequeño y simple, y así corregir algunas deficiencias percibidas de Multics debido a sus altas demandas de recursos en el hardware de computadora limitado de la época.

El nombre Unix (originalmente Unics) es en sí mismo un juego de palabras con Multics. Se rumorea que U en Unix representa uniplexed en oposición a multiplexed de Multics, lo que subraya aún más que los diseñadores' rechazos de Multics' complejidad a favor de un enfoque más directo y viable para computadoras más pequeñas. (Garfinkel y Abelson citan un origen alternativo: Peter Neumann en Bell Labs, al observar una demostración del prototipo, sugirió el nombre de juego de palabras UNICS, pronunciado 'eunuchs', como 'Multics castrado', aunque se dice que Dennis Ritchie lo negó).

Ken Thompson, en una entrevista transcrita de 2007 con Peter Seibel, se refiere a Multics como "sobrediseñado y sobreconstruido y sobre todo". Estaba cerca de inutilizable. Ellos [el Instituto de Tecnología de Massachusetts] todavía afirman que es un éxito monstruoso, pero claramente no lo fue. Sobre la influencia de Multics en Unix, Thompson afirmó que "las cosas que me gustaron lo suficiente (sobre Multics) como para tomar fueron el sistema de archivos jerárquico y el shell, un proceso separado que puede reemplazar con algún otro proceso".;.

Dennis Ritchie escribió que el diseño de UNIX fue influenciado por CTSS

Otros sistemas operativos

El sistema operativo de Prime Computer, PRIMOS, se denominó "Multics en una caja de zapatos" por William Poduska, uno de los fundadores de la empresa. Más tarde, Poduska pasó a fundar Apollo Computer, cuyos sistemas operativos AEGIS y posteriormente Domain/OS, a veces llamados "Multics in a matchbox", amplían el diseño de Multics a un entorno de estación de trabajo de gráficos en red.

El sistema operativo Stratus VOS de Stratus Computer (ahora Stratus Technologies) está fuertemente influenciado por Multics, y tanto su interfaz de usuario externa como su estructura interna tienen muchas similitudes con el proyecto anterior. Las funciones de alta confiabilidad, disponibilidad y seguridad de Multics se amplían en Stratus VOS para admitir una nueva línea de sistemas informáticos tolerantes a fallas que respaldan el procesamiento seguro y confiable de transacciones. Stratus VOS es el descendiente más directamente relacionado de Multics que aún se encuentra en uso activo de desarrollo y producción en la actualidad.

La arquitectura de protección de Multics, que restringe la capacidad del código en un nivel del sistema para acceder a los recursos en otro, se adoptó como base para las funciones de seguridad del sistema operativo VME de ICL.

El Sistema de Acceso Múltiple de Edimburgo (EMAS) se basa especialmente en el concepto de almacenamiento de un nivel utilizado por Multics, que brinda acceso a los archivos solo asignándolos a la memoria. Todo el espacio de memoria está asociado a un segmento.


Contenido relacionado

Oracle solaris

Solaris es un sistema operativo propietario de Unix desarrollado originalmente por Sun Microsystems. Después de la adquisición de Sun por parte de Oracle en...

Puerto de gráficos acelerados

Puerto de gráficos acelerados es un estándar de tarjeta de expansión paralela, diseñado para conectar una tarjeta de video a un sistema informático para...

Motor analítico

La máquina analítica fue una computadora mecánica de uso general propuesta y diseñada por el matemático inglés y pionero de la informática Charles...
Más resultados...
Tamaño del texto: