Multics

**Multics** (**Mult**iplexed **I**nformation and **C**omputing **S**ervice) foi unu de los primeros sistemes operativos de tiempu compartíu y tuvo una gran influencia nel desenvolvimientu de los posteriores sistemes operativos.

## Descripción
Los planes iniciales y el desenvolvimientu de Multics empezaron en 1964. Orixinalmente, yera un proyeutu cooperativu lideráu pol científicu d'Estaos Xuníos Fernando J. Corbató del MIT, cola participación de la corporación General Electric y los llaboratorios Bell. Los llaboratorios Bell abandonaron el proyeutu nel añu 1969, y en 1970 el negociu de computación de General Electric, incluyendo Multics, foi adquiríu por Honeywell.

Multics foi concebíu como un productu comercial por General Electric, y algamó esti llogru pa Honeywell, pero nun tuvo un gran ésitu. Sicasí, tuvo un gran impautu nel campu de la computación gracies a les sos munches idees nueves y pervalibles. Anque na so dómina recibió munches crítiques http://www.multicians.org/myths.html, la hestoria demostró que yeren infundaes.

Un gran númberu de carauterístiques intentaben apurrir alta disponibilidad, de manera que'l serviciu de computación igualara a los servicios de telefonía y a la rede llétrica. P'algamar esti llogru, utilizóse una estructura modular tantu nel software como nel hardware, y el sistema podía crecer a cencielles añadiendo más recursos - poder de computación, memoria principal, almacenamientu de discu, etc. Llistes de control d'accesu sobre cada archivu apurríen un métodu flexible pa compartir información, amás de la privacidá riquida. Contenía distintos mecanismos estándar pa dexar a los inxenieros analizar el rendimientu del sistema, amás de dellos mecanismos pa la optimización del rendimientu.

## Apurras de MULTICS

Multics foi unu de los primeros sistemes operativos nel cual foi implementáu un únicu nivel d'almacenamientu pal accesu a los datos, refugando la clara distinción ente los archivos (llamaos *segmentos* en Multics) y los procesos en memoria.

Hasta entós, la memoria d'un procesu consistía solamente en segmentos que taben asignaos nel so espaciu de direiciones; pa lleer o escribir nellos, el procesu a cencielles utilizaba instrucciones normales de la CPU, y el sistema operativu tenía curiáu d'asegurase que tolos cambeos fueren guardaes en discu.

Na terminoloxía del estándar POSIX, yera como si cada archivu fora asignáu; sicasí, en Multics nun esistía'l conceutu de *memoria de procesu*, separáu del de la memoria utilizada pa caltener mapeados sobre los archivos, como fai Unix. *Toa* la memoria del sistema formaba parte de *dalgún* segmentu, qu'apaecía nel sistema d'archivos; incluyida la memoria temporal del procesu, la pila del nucleu, etc. Esta yera una desventaxa práutica, daes les particularidaes de l'arquiteutura del hardware de les máquines nes que s'executaba, y non del conceutu básicu, yera que'l tamañu de los segmentos taba llindáu a 256K pallabres de 36 bits, aproximao igual a 1MB actual, y polo tanto tenía d'utilizase códigu extra pa trabayar con archivos mayores qu'esto, llamaos archivos multisegmento. Nos díes anteriores a les bases de datos grandes, y los posteriores gráficos de mapes de bits de gran tamañu, nun yera frecuente atopase con esta llimitación.

Otru apurra de Multics, foi'l conceutu d'enllaz dinámicu, por aciu el cual un procesu n'execución puede solicitar qu'otros segmentos añader al so espaciu de direiciones. Estos segmentos pueden incluyir códigu que puede ser executáu. Con esta carauterística disponible, les aplicaciones automáticamente utilizaben la última versión de cualquier rutina esterna que llamaben, estes rutines taben n'otros segmentos, que s'enllazaben dinámicamente namái cuando un procesu intentaba executales. Como distintos procesos, pertenecientes a distintos usuarios, podíen utilizar distintes regles de busca, distintos usuarios podíen automáticamente acabar utilizando distintes versiones de les rutines esternes.

Igualmente importante, cola configuración fayadiza de les carauterístiques de seguridá de Multics, foi que'l códigu nel otru segmentu podía ganar accesu a les estructures de datos calteníes nun procesu distintu.

D'esta miente, pa interactuar con una aplicación executándose en parte como un demoniu (n'otru procesu) un procesu d'usuariu a cencielles realiza una llamada normal a un procedimientu, escontra un segmentu de códigu col que s'enllazó dinámicamente (un segmentu de códigu qu'implementa dalguna operación acomuñada con esti demoniu). El códigu nesti segmentu puede entós modificar los datos caltener y utilizar pol demoniu. Cuando l'acción necesaria pa empezar la solicitú complétase, una simple instrucción de torna del procesu retorna'l control del procesu d'usuariu al códigu del usuariu.

Estos dos idees, utilícense inda na mayoría de los sistemes operativos, independientemente del rápidu y enorme meyora realizada nel campu de la computación dende la década de 1960.

Multics tamién soportaba una reconfiguración en llinia bien agresiva; les CPUs, los bancos de memoria, unidaes de discu, etc. podíen ser añadíes y quitaes mientres el sistema siguía funcionando; entrando en serviciu, o esaniciándose cuando fuera necesariu. Yera una práutica común nel sistema del MIT, onde se realizó la mayoría de los desarrollos de software iniciales, estremar el sistema; que yera un sistema multiprocesador; en dos sistemes separaos, al eliminiar abondu componentes pa formar un segundu sistema, dexando'l restu inda executando la los usuarios que teníen una sesión abierta. Les comprobaciones sobre'l software desenvueltu podíen realizase na segunda máquina; cuando les pruebes concluyíen, los componentes del segundu sistema añader de nuevu nel sistema principal, ensin tener qu'apagalo en nengún momentu. Como se soportaben delles CPUs, foi unu de los primeros sistemes multiprocesador.

Multics tamién foi notable pol so innovador énfasis nel so diseñu pa llograr seguridá informática, y foi posiblemente'l primer sistema operativu diseñáu como un sistema seguru dende'l so entamu. Independientemente d'esto, les primeres versiones de Multics amosáronse vulnerables, non una vegada, sinón de forma repitida.

Esto condució a más trabayu p'ameyorar la seguridá que trazó les téuniques de seguridá modernes, y fixo los sistemes muncho más seguros; al adoptase'l hardware de segunda xeneración, con soporte hardware pa los aniellos de seguridá (un refinamientu multinivel del conceutu de manera maestra), les intrusiones convertir en daqué bien estrañu.

Amás de ser el primer sistema operativu qu'apurrió un sistema d'archivos xerárquicu, los nomes de los archivos casi podíen tener un llargor y sintaxis arbitraria; dau un archivu o direutoriu esti podía tener dellos nomes (típicamente unu llargu y otru curtiu); tamién se soportaben enllaces simbólicos ente direutorios.

Foi'l primeru n'utilizar el conceutu, güei convertíu en carauterística estándar, de tener una pila por procesu nel nucleu, con una pila separada pa cada aniellu de seguridá. Tamién foi unu de los primeros sistemes escritos nun llinguaxe d'altu nivel denomináu PL/1, anque'l sistema Burroughs B5000, qu'utilizaba ALGOL precedió a Multics.

## Historia del proyeutu

Multics desenvolvióse primeramente pal ordenador central de General Electric GUE-645, un sistema de 36 bits; dempués foi soportáu pola serie de máquines Honeywell 6180.

El personal de los Llaboratorios Bell abandonó'l proyeutu en 1969. Dalgunes de les persones que trabayaren nel so desenvolvimientu dedicar a crear el sistema operativu UNIX. Anque d'una manera superficial, UNIX amuesa la influencia de Multics en munches árees, incluyíu'l nome de los comandos. Sicasí, la filosofía de diseñu foi bien distintu, centrándose en caltener el sistema tan pequeñu y simple como fuera posible, y d'esta miente corrixendo lo que se vía como un defectu de Multics. El nome "Unix" (orixinalmente "Unics", por "UNIplexed information and Computing Service" en cuenta de "MULTIplexed Computer and Information Service") ye un hack de "Multics". Se rumorea que la O de UNIX significia "Uniplexado" n'oposición al conceutu "Multiplexado" de Multics, resaltando la intención de los diseñadores de refugar la complexidá de Multics en favor d'un aproximamientu práuticu más direuta.

La empresa estauxunidense Honeywell mercó la división de computación de General Electric, llanzó una meyor base de hardware, y siguió el desenvolvimientu del sistema hasta 1985. Realizáronse unes 80 instalaciones per valor de dellos millones de dólares, n'universidaes, industries, y alministraciones. El sistema universitariu de Francia cuntó con delles instalaciones nos entamos de la década de 1980. Dempués Honeywell dexó de soportar Multics, y entós los usuarios migraron a otros sistemes, incluyendo otres distribuciones de UNIX. La última máquina n'usar Multics foi apagada'l 31 d'ochobre de 2000, nel Ministeriu de Defensa de Canadá. 

Na actualidá, el códigu fonte de Multics foi lliberáu pol MIT y puede descargase dende la so páxina.

## Retrospectiva

Ye más que sorprendente afayar que'l nucleu d'esti sistema operativu pa ordenadores centrales multiprocesador, que foi criticada nos sos díes iniciales pol so tamañu y complexidá, ocupaba 135 kB de códigu. El primer GUE-645 del MIT tuvo 512K pallabres de memoria (2 MB), de manera que'l nucleu namái utilizaba una pequeña porción de la memoria principal de Multics.

Midíu d'otra forma, el sistema completu, incluyendo non yá el sistema operativu, sinón tamién el complexu compilador de PL/I, los comandos d'usuariu, y les biblioteques de subrutinas, contenía aproximao 1500 módulos de códigu fuente con un llargor mediu, cada unu, d'unes 200 llinies de códigu fuente, y se compilaban pa producir aproximao 4,5 MB de códigu de procedimientos, qu'anque güei paeza pequeñu, yera bien grande pa los estándares de la dómina.

Los compiladores de Multics xeneralmente optimizaben la densidá de códigu primero que la velocidá d'execución, por casu utilizábense pequeñes subrutinas llamaes *operadores* pa secuencies de códigu frecuentes, realizar comparances direutes col tamañu de los oxetos de códigu nos sistemes más modernos nun tien sentíu. L'alta densidá de códigu yera una bona opción de optimización pa un sistema multiusuariu con una memoria principal cara, como Multics.

## Ver tamién
* Fernando J. Corbató
* Jerome H. Saltzer
* Jack B. Dennis
* Peter J. Denning
* Robert M. Graham
* Victor A. Vyssotsky

## Bibliografía
La siguiente lliteratura contién un gran númberu de documentos sobre Multics y dellos componentes del mesmu. Una llista bastante completa ye accesible al traviés de here. Los más importantes y/o informativos son llistaos debaxo.
* F. J. Corbató, V. A. Vyssotsky, ''Introduction and Overview of the Multics System'' (AFIPS 1965)
* F. J. Corbató, C. T. Clingen, J. H. Saltzer, ''Multics -- The First Seven Years'' (AFIPS, 1972)

### Detalles téunicos
* Jerome H. Saltzer, *[https://web.archive.org/web/20011127053408/http://ncstrl.mit.edu/Dienst/UI/2.0/Describi/ncstrl.mit_lcs/LCS-TR-123?abstract=saltzer Introduction to Multics]* (MIT Project MAC, 1974)
* Elliott I. Organick, *The Multics System: An Examination of Its Structure* (MIT Press, 1972)
* V. A. Vyssotsky, F. J. Corbató, R. M. Graham, *[http://www.multicians.org/fjcc3.html Structure of the Multics Supervisor]* (AFIPS 1965)
* Jerome H. Saltzer, *[https://web.archive.org/web/20011127053649/http://ncstrl.mit.edu/Dienst/UI/2.0/Describi/ncstrl.mit_lcs/LCS-TR-30?abstract=saltzer Traffic Control in a Multiplexed Computer System]* (MIT Project MAC, June 1966)
* R. C. Daley, P. G. Neumann, *[http://www.multicians.org/fjcc4.html A General Purpose File System for Secondary Storage]* (AFIPS, 1965)
* A. Bensoussan, C. T. Clingen, R. C. Daley, *[http://www.multicians.org/multics-vm.html The Multics Virtual Memory: Concepts and Design]*, (ACM SOSP, 1969)
* Paul Green, *[ftp://ftp.stratus.com/pub/vos/multics/pg/mvm.html Multics Virtual Memory - Tutorial and Reflections] *
* Roger R. Schell, *Dynamic Reconfiguration in a Modular Computer System* (MIT Project MAC, 1971)

### Seguridá
* 
* 
* 
* 

## Referencies

## Enllaces esternos
* http://www.multicians.org/ 
** Multics papers online
** Myths
** Multics security
* 
* [ftp://ftp.stratus.com/pub/vos/multics/multics.html Multics repository at Stratus Computer] 
* Multics at Universitaet Mainz