b'\n_START_ARTICLE_\nMultics\n_START_SECTION_\nDescripci\xc3\xb3n\n_START_PARAGRAPH_\nLos planes iniciales y el desarrollo de Multics comenzaron en 1964. Originalmente, era un proyecto cooperativo liderado por el cient\xc3\xadfico estadounidense Fernando J. Corbat\xc3\xb3 del MIT, con la participaci\xc3\xb3n de la corporaci\xc3\xb3n General Electric y los laboratorios Bell. Los laboratorios Bell abandonaron el proyecto en el a\xc3\xb1o 1969, y en 1970 el negocio de computaci\xc3\xb3n de General Electric, incluyendo Multics, fue adquirido por Honeywell._NEWLINE_Multics fue concebido como un producto comercial por General Electric, y alcanz\xc3\xb3 este logro para Honeywell, pero no tuvo un gran \xc3\xa9xito. Sin embargo, tuvo un gran impacto en el campo de la computaci\xc3\xb3n gracias a sus muchas ideas nuevas y valiosas. Aunque en su \xc3\xa9poca recibi\xc3\xb3 muchas cr\xc3\xadticas , la historia ha demostrado que eran infundadas._NEWLINE_Un gran n\xc3\xbamero de caracter\xc3\xadsticas intentaban proporcionar alta disponibilidad, de manera que el servicio de computaci\xc3\xb3n igualase a los servicios de telefon\xc3\xada y a la red el\xc3\xa9ctrica. Para alcanzar este logro, se utiliz\xc3\xb3 una estructura modular tanto en el software como en el hardware, y el sistema pod\xc3\xada crecer simplemente a\xc3\xb1adiendo m\xc3\xa1s recursos - poder de computaci\xc3\xb3n, memoria principal, almacenamiento de disco, etc. Listas de control de acceso sobre cada archivo proporcionaban un m\xc3\xa9todo flexible para compartir informaci\xc3\xb3n, adem\xc3\xa1s de la privacidad requerida. Conten\xc3\xada diferentes mecanismos est\xc3\xa1ndar para permitir a los ingenieros analizar el rendimiento del sistema, adem\xc3\xa1s de varios mecanismos para la optimizaci\xc3\xb3n del rendimiento.\n_START_SECTION_\nAportes de MULTICS\n_START_PARAGRAPH_\nMultics fue uno de los primeros sistemas operativos en el cual fue implementado un \xc3\xbanico nivel de almacenamiento para el acceso a los datos, desechando la clara distinci\xc3\xb3n entre los archivos (llamados segmentos en Multics) y los procesos en memoria._NEWLINE_Hasta entonces, la memoria de un proceso consist\xc3\xada solamente en segmentos que estaban asignados en su espacio de direcciones; para leer o escribir en ellos, el proceso simplemente utilizaba instrucciones normales de la CPU, y el sistema operativo ten\xc3\xada cuidado de asegurarse que todas las modificaciones fueran guardadas en disco._NEWLINE_En la terminolog\xc3\xada del est\xc3\xa1ndar POSIX, era como si cada archivo fuese asignado; sin embargo, en Multics no exist\xc3\xada el concepto de memoria de proceso, separado del de la memoria utilizada para mantener mapeados sobre los archivos, como hace Unix. Toda la memoria del sistema formaba parte de alg\xc3\xban segmento, que aparec\xc3\xada en el sistema de archivos; incluida la memoria temporal del proceso, la pila del n\xc3\xbacleo, etc. Esta era una desventaja pr\xc3\xa1ctica, dadas las particularidades de la arquitectura del hardware de las m\xc3\xa1quinas en las que se ejecutaba, y no del concepto b\xc3\xa1sico, era que el tama\xc3\xb1o de los segmentos estaba limitado a 256K palabras de 36 bits, aproximadamente igual a 1MB actual, y por lo tanto se deb\xc3\xada utilizar c\xc3\xb3digo extra para trabajar con archivos mayores que esto, llamados archivos multisegmento. En los d\xc3\xadas anteriores a las bases de datos grandes, y los posteriores gr\xc3\xa1ficos de mapas de bits de gran tama\xc3\xb1o, no era frecuente encontrarse con esta limitaci\xc3\xb3n._NEWLINE_Otro aporte de Multics, fue el concepto de enlace din\xc3\xa1mico, mediante el cual un proceso en ejecuci\xc3\xb3n puede solicitar que otros segmentos se a\xc3\xb1adan a su espacio de direcciones. Estos segmentos pueden incluir c\xc3\xb3digo que puede ser ejecutado. Con esta caracter\xc3\xadstica disponible, las aplicaciones autom\xc3\xa1ticamente utilizaban la \xc3\xbaltima versi\xc3\xb3n de cualquier rutina externa que llamaban, estas rutinas estaban en otros segmentos, que se enlazaban din\xc3\xa1micamente s\xc3\xb3lo cuando un proceso intentaba ejecutarlas. Como diferentes procesos, pertenecientes a diferentes usuarios, pod\xc3\xadan utilizar diferentes reglas de b\xc3\xbasqueda, diferentes usuarios pod\xc3\xadan autom\xc3\xa1ticamente acabar utilizando diferentes versiones de las rutinas externas._NEWLINE_Igualmente importante, con la configuraci\xc3\xb3n adecuada de las caracter\xc3\xadsticas de seguridad de Multics, fue que el c\xc3\xb3digo en el otro segmento pod\xc3\xada ganar acceso a las estructuras de datos mantenidas en un proceso diferente._NEWLINE_De este modo, para interactuar con una aplicaci\xc3\xb3n ejecut\xc3\xa1ndose en parte como un demonio (en otro proceso) un proceso de usuario simplemente realiza una llamada normal a un procedimiento, hacia un segmento de c\xc3\xb3digo con el que se enlaz\xc3\xb3 din\xc3\xa1micamente (un segmento de c\xc3\xb3digo que implementa alguna operaci\xc3\xb3n asociada con este demonio). El c\xc3\xb3digo en este segmento puede entonces modificar los datos mantenidos y utilizados por el demonio. Cuando la acci\xc3\xb3n necesaria para comenzar la solicitud se completa, una simple instrucci\xc3\xb3n de retorno del proceso retorna el control del proceso de usuario al c\xc3\xb3digo del usuario._NEWLINE_Estas dos ideas, se utilizan todav\xc3\xada en la mayor\xc3\xada de los sistemas operativos, independientemente del r\xc3\xa1pido y enorme avance realizado en el campo de la computaci\xc3\xb3n desde la d\xc3\xa9cada de 1960._NEWLINE_Multics tambi\xc3\xa9n soportaba una reconfiguraci\xc3\xb3n en l\xc3\xadnea muy agresiva; las CPUs, los bancos de memoria, unidades de disco, etc. pod\xc3\xadan ser a\xc3\xb1adidas y quitadas mientras el sistema continuaba funcionando; entrando en servicio, o elimin\xc3\xa1ndose cuando fuera necesario. Era una pr\xc3\xa1ctica com\xc3\xban en el sistema del MIT, donde se realiz\xc3\xb3 la mayor\xc3\xada de los desarrollos de software iniciales, dividir el sistema; que era un sistema multiprocesador; en dos sistemas separados, al eliminiar suficiente componentes para formar un segundo sistema, dejando el resto todav\xc3\xada ejecutando la los usuarios que ten\xc3\xadan una sesi\xc3\xb3n abierta. Las comprobaciones sobre el software desarrollado pod\xc3\xadan realizarse en la segunda m\xc3\xa1quina; cuando las pruebas conclu\xc3\xadan, los componentes del segundo sistema se a\xc3\xb1ad\xc3\xadan de nuevo en el sistema principal, sin tener que apagarlo en ning\xc3\xban momento. Como se soportaban varias CPUs, fue uno de los primeros sistemas multiprocesador._NEWLINE_Multics tambi\xc3\xa9n fue notable por su innovador \xc3\xa9nfasis en su dise\xc3\xb1o para obtener seguridad inform\xc3\xa1tica, y fue posiblemente el primer sistema operativo dise\xc3\xb1ado como un sistema seguro desde su inicio. Independientemente de esto, las primeras versiones de Multics se mostraron vulnerables, no una vez, sino de forma repetida._NEWLINE_Esto condujo a m\xc3\xa1s trabajo para mejorar la seguridad que traz\xc3\xb3 las t\xc3\xa9cnicas de seguridad modernas, e hizo los sistemas mucho m\xc3\xa1s seguros; al adoptarse el hardware de segunda generaci\xc3\xb3n, con soporte hardware para los anillos de seguridad (un refinamiento multinivel del concepto de modo maestro), las intrusiones se convirtieron en algo muy extra\xc3\xb1o._NEWLINE_Adem\xc3\xa1s de haber sido el primer sistema operativo que proporcion\xc3\xb3 un sistema de archivos jer\xc3\xa1rquico, los nombres de los archivos casi pod\xc3\xadan tener una longitud y sintaxis arbitraria; dado un archivo o directorio este pod\xc3\xada tener varios nombres (t\xc3\xadpicamente uno largo y otro corto); tambi\xc3\xa9n se soportaban enlaces simb\xc3\xb3licos entre directorios._NEWLINE_Fue el primero en utilizar el concepto, hoy convertido en caracter\xc3\xadstica est\xc3\xa1ndar, de tener una pila por proceso en el n\xc3\xbacleo, con una pila separada para cada anillo de seguridad. Tambi\xc3\xa9n fue uno de los primeros sistemas escritos en un lenguaje de alto nivel denominado PL/1, aunque el sistema Burroughs B5000, que utilizaba ALGOL precedi\xc3\xb3 a Multics.\n_START_SECTION_\nHistoria del proyecto\n_START_PARAGRAPH_\nMultics se desarroll\xc3\xb3 inicialmente para el computador central de General Electric GE-645, un sistema de 36 bits; despu\xc3\xa9s fue soportado por la serie de m\xc3\xa1quinas Honeywell 6180._NEWLINE_El personal de los Laboratorios Bell abandon\xc3\xb3 el proyecto en 1969. Algunas de las personas que hab\xc3\xadan trabajado en su desarrollo se dedicaron a crear el sistema operativo UNIX. Aunque de un modo superficial, UNIX muestra la influencia de Multics en muchas \xc3\xa1reas, incluido el nombre de los comandos. Sin embargo, la filosof\xc3\xada de dise\xc3\xb1o fue muy diferente, centr\xc3\xa1ndose en mantener el sistema tan peque\xc3\xb1o y simple como fuese posible, y de este modo corrigiendo lo que se ve\xc3\xada como una deficiencia de Multics. El nombre "Unix" (originalmente "Unics", por "UNIplexed information and Computing Service" en vez de "MULTIplexed Computer and Information Service") es un hack de "Multics". Se rumorea que la U de UNIX significia "Uniplexado" en oposici\xc3\xb3n al concepto "Multiplexado" de Multics, resaltando la intenci\xc3\xb3n de los dise\xc3\xb1adores de rechazar la complejidad de Multics en favor de una aproximaci\xc3\xb3n pr\xc3\xa1ctica m\xc3\xa1s directa._NEWLINE_La empresa estadounidense Honeywell compr\xc3\xb3 la divisi\xc3\xb3n de computaci\xc3\xb3n de General Electric, lanz\xc3\xb3 una mejor base de hardware, y continu\xc3\xb3 el desarrollo del sistema hasta 1985. Se realizaron unas 80 instalaciones por valor de varios millones de d\xc3\xb3lares, en universidades, industrias, y administraciones. El sistema universitario de Francia cont\xc3\xb3 con varias instalaciones en los inicios de la d\xc3\xa9cada de 1980. Despu\xc3\xa9s Honeywell dej\xc3\xb3 de soportar Multics, y entonces los usuarios migraron a otros sistemas, incluyendo otras distribuciones de UNIX. La \xc3\xbaltima m\xc3\xa1quina en usar Multics fue apagada el 31 de octubre de 2000, en el Ministerio de Defensa de Canad\xc3\xa1. _NEWLINE_En la actualidad, el c\xc3\xb3digo fuente de Multics ha sido liberado por el MIT y se puede descargar desde su p\xc3\xa1gina.\xe2\x80\x8b\n_START_SECTION_\nRetrospectiva\n_START_PARAGRAPH_\nEs m\xc3\xa1s que sorprendente descubrir que el n\xc3\xbacleo de este sistema operativo para computadoras centrales multiprocesador, que fue criticada en sus d\xc3\xadas iniciales por su tama\xc3\xb1o y complejidad, ocupaba 135 kB de c\xc3\xb3digo. El primer GE-645 del MIT tuvo 512K palabras de memoria (2 MB), de manera que el n\xc3\xbacleo s\xc3\xb3lo utilizaba una peque\xc3\xb1a porci\xc3\xb3n de la memoria principal de Multics._NEWLINE_Medido de otra forma, el sistema completo, incluyendo no s\xc3\xb3lo el sistema operativo, sino tambi\xc3\xa9n el complejo compilador de PL/I, los comandos de usuario, y las bibliotecas de subrutinas, conten\xc3\xada aproximadamente 1500 m\xc3\xb3dulos de c\xc3\xb3digo fuente con una longitud media, cada uno, de unas 200 l\xc3\xadneas de c\xc3\xb3digo fuente, y se compilaban para producir aproximadamente 4,5 MB de c\xc3\xb3digo de procedimientos, que aunque hoy parezca peque\xc3\xb1o, era muy grande para los est\xc3\xa1ndares de la \xc3\xa9poca._NEWLINE_Los compiladores de Multics generalmente optimizaban la densidad de c\xc3\xb3digo antes que la velocidad de ejecuci\xc3\xb3n, por ejemplo se utilizaban peque\xc3\xb1as subrutinas llamadas operadores para secuencias de c\xc3\xb3digo frecuentes, realizar comparaciones directas con el tama\xc3\xb1o de los objetos de c\xc3\xb3digo en los sistemas m\xc3\xa1s modernos no tiene sentido. La alta densidad de c\xc3\xb3digo era una buena opci\xc3\xb3n de optimizaci\xc3\xb3n para un sistema multiusuario con una memoria principal cara, como Multics.'