De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El Sistema de tiempo compartido compatible ( CTSS ) fue uno de los primeros sistemas operativos de tiempo compartido ; fue desarrollado en el MIT Computation Center . CTSS se demostró por primera vez en el IBM 709 del MIT en noviembre de 1961; el servicio a los usuarios del MIT comenzó en el verano de 1963 y estuvo en funcionamiento hasta 1973. [1] Durante parte de este tiempo, el influyente Proyecto MAC del MIT también ejecutó un servicio CTSS, pero el sistema no se extendió más allá de estos dos sitios.

CTSS se describió en un documento presentado en la Conferencia Conjunta de Computadoras de Primavera de 1962 , y tuvo una gran influencia en el diseño de otros primeros sistemas de tiempo compartido.

Sistema experimental de tiempo compartido [ editar ]

John Backus dijo en la sesión de verano de 1954 en el MIT que "al compartir el tiempo, una computadora grande podría usarse como varias pequeñas; debería haber una estación de lectura para cada usuario". [2] Las computadoras en ese momento, como IBM 704 , no eran lo suficientemente poderosas para implementar tal sistema, pero a fines de 1958, el Centro de Computación del MIT agregó una entrada de máquina de escribir a su 704 con la intención de que un programador u operador pudiera "obtener respuestas adicionales de la máquina en tiempo compartido con otros programas que utilizan la máquina simultáneamente ". [3]

En junio de 1959, Christopher Strachey publicó un artículo titulado "Time Sharing in Large Fast Computers" en la Conferencia de Procesamiento de Información de la UNESCO en París, donde imaginó a un programador depurando un programa en una consola (como un teletipo ) conectada a la computadora, mientras que otro se estaba ejecutando en la computadora al mismo tiempo. [4] [5] Los programas de depuración eran un problema importante en ese momento, porque con el procesamiento por lotes, a menudo tomaba un día desde que se enviaba un código modificado hasta que se obtenían los resultados. John McCarthyescribió un memorando sobre eso en el MIT, después de lo cual se estableció un comité de estudio preliminar y un comité de trabajo en el MIT, para desarrollar el tiempo compartido. Los comités previeron que muchos usuarios usaran la computadora al mismo tiempo, decidieron los detalles de la implementación de dicho sistema en el MIT e iniciaron el desarrollo del sistema.

En julio de 1961 [6] algunos comandos de tiempo compartido estaban operativos en el IBM 709 del Centro de Computación, y en noviembre de 1961, Fernando J. Corbató hizo una demostración en el MIT de lo que se llamó el "Sistema Experimental de Tiempo Compartido". El 3 de mayo de 1962, FJ Corbató, MM Daggett y RC Daley publicaron un artículo sobre ese sistema en la Spring Joint Computer Conference . [7] Robert C. Daley, Peter R. Bos y al menos otros 6 programadores implementaron el sistema operativo, en parte basado en Fortran Monitor System.

El sistema usó un IBM 7090 , modificado por Herbert M. Teager , con 3 Flexowriters agregados para consolas de usuario y tal vez un temporizador . Cada uno de los 3 usuarios tenía dos unidades de cinta , una para el directorio de archivos del usuario y otra para volcar el núcleo (programa en memoria). También había una unidad de cinta para los comandos del sistema, no había unidades de disco. La memoria fue de 27 k palabras (palabras de 36 bits) para los usuarios y 5 k palabras para el supervisor (sistema operativo). La entrada de las consolas se escribió en los búferes del supervisor, mediante interrupciones y cuando un carácter de retornose recibió, el control se entregó al supervisor, que volcó el código en ejecución en la cinta y decidió qué ejecutar a continuación. Los comandos de la consola implementados en ese momento eran login, logout, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump y xundump .

Esta se convirtió en la versión inicial del sistema de tiempo compartido compatible. Aparentemente, esta fue la primera demostración pública de tiempo compartido ; hay otras afirmaciones, pero se refieren a sistemas para fines especiales, o sin artículos conocidos publicados. La "compatibilidad" de CTSS fue con trabajos en segundo plano ejecutados en la misma computadora, que generalmente usaba más recursos de cómputo que las funciones de tiempo compartido.

Funciones [ editar ]

  • CTSS tuvo una de las primeras utilidades de formato de texto computarizado, llamada RUNOFF (el sucesor de DITTO).
  • CTSS tuvo una de las primeras implementaciones de mensajería entre usuarios, posiblemente inventando el correo electrónico . [8]
  • Louis Pouzin, miembro del personal del MIT Computation Center, creó para CTSS un comando llamado RUNCOM , que ejecutaba una lista de comandos contenidos en un archivo. (Más tarde creó un diseño para el shell de Multics que fue implementado por Glenda Schroeder, que a su vez inspiró los scripts de shell de Unix ). RUNCOM también permitía la sustitución de parámetros.
  • CTSS tenía el editor de texto QED , el predecesor de ed , vi y vim , con expresiones regulares agregadas por Ken Thompson .
  • CTSS fue el primer sistema informático en implementar el inicio de sesión con contraseña. [9] [10]

Implementación [ editar ]

Kernel [ editar ]

CTSS utilizó una computadora central IBM 7090 modificada que tenía dos bancos de 32.768 (32K) palabras de 36 bits de memoria central en lugar del normal. [11] Un banco se reservó para el programa de supervisión de tiempo compartido y el otro para los programas de usuario. CTSS tenía un kernel en modo protegido, las funciones del supervisor en el A-core (banco de memoria A) solo podían llamarse mediante interrupciones de software, como en los sistemas operativos modernos. Se utilizaron interrupciones de protección de memoria para las interrupciones de software. [4] La programación de la asignación del procesador con una unidad de tiempo cuántico de 200 ms se controlaba mediante una cola de retroalimentación multinivel . [11] También tenía un hardware especial de administración de memoria, una interrupción del reloj y la capacidad de atrapar ciertas instrucciones.

Subrutinas de supervisor [ editar ]

  • RDFLXA: leer una línea de entrada desde la consola
  • WRFLX: escribe una línea de salida en la consola
  • MUERTO: pone al usuario en estado muerto, sin ningún programa en la memoria
  • DORMNT: pone al usuario en estado inactivo, con el programa en la memoria
  • GETMEM: obtiene el tamaño de la asignación de memoria
  • SETMEM: establece el tamaño de la asignación de memoria
  • TSSFIL: obtenga acceso a los archivos del sistema CTSS en el disco
  • USRFIL: volver al directorio del usuario
  • GETBRK: obtiene el contador de ubicación de instrucciones al salir

Lenguajes de programación [ editar ]

CTSS al principio solo tenía un ensamblador FAP y un compilador MAD . Además, el código de Fortran II podría traducirse a un código MAD. La mitad posterior del sistema se escribió en MAD. Posteriormente hubo otros lenguajes de programación como LISP y una versión de ALGOL .

Sistema de archivos [ editar ]

Cada usuario tenía su propio directorio y también había directorios compartidos para grupos de personas con el mismo "número de problema". Cada archivo tenía dos nombres, el segundo indicaba su tipo, al igual que la extensión en el sistema posterior. Al principio, cada archivo podía tener uno de cuatro modos: temporal, permanente, clase 1 de solo lectura y clase 2 de solo lectura. La clase 1 de solo lectura permitía al usuario cambiar el modo del archivo. Los archivos también se pueden vincular simbólicamente entre directorios. Una lista de directorio por listf :

10 ARCHIVOS 20 PISTAS UTILIZADASFECHA NOMBRE MODO NO. PISTAS20/5/63 MAIN MAD P 1517/05/63 DPFA SYMTB P 117/5/63 DPFA BSS P 117/05/63 DPFA FAP P 2

Subrutinas de control de disco [ editar ]

  • .DUMP: volca un bloque continuo en un archivo
  • .LOAD: carga un bloque continuo desde el archivo
  • .ASIGN: prepara el archivo para su escritura.
  • .APEND: prepara el archivo para adjuntarlo
  • .SEEK: prepara el archivo para su lectura
  • .RELRW: prepara el archivo para leer y escribir
  • .WRITE: escribe datos en una ubicación relativa en el archivo
  • .READK: lee datos de una ubicación relativa en el archivo
  • .FILE - Termina la escritura del archivo.
  • .ENDRD - Termina la lectura del archivo
  • .DLETE - Eliminar un archivo
  • .RENAM - Cambiar el nombre de un archivo y cambiar su modo
  • .FILDR: obtenga una copia del directorio de archivos del usuario
  • .FSTAT: obtener información sobre un archivo

Comandos de consola [ editar ]

  • iniciar sesión - Iniciar sesión en el sistema
  • logout - Cerrar sesión en el sistema
  • listf: lista de archivos en el directorio
  • entrada: código fuente de entrada, líneas de tamaño fijo
  • editar: edita el código fuente en un estilo BÁSICO con números de línea
  • printf - Imprime el archivo a partir de un número de línea
  • fap - ensamblador FAP
  • mad - compilador MAD
  • madtrn - traductor de Fortran II a MAD
  • load - Carga binarios (enlazando en memoria)
  • use - Carga los binarios faltantes
  • start: ejecuta el programa cargado en la memoria.
  • guardar: guarda el programa en la memoria en un archivo
  • reanudar: carga el programa guardado y reanuda su ejecución
  • pm - Obtener información post-mortem del programa en la memoria
  • parche - Editar memoria
  • tra: crea una transferencia a una ubicación relativa en un programa
  • stopat: crea una transferencia para detener el programa en una ubicación
  • renombrar - Renombrar archivo
  • chmode: cambia el modo del archivo
  • eliminar - Eliminar archivo, tenía * comodines
  • split - Archivo dividido
  • combin: une archivos, también archivos binarios, creando bibliotecas
  • cpu: obtiene las condiciones actuales de la máquina
  • octlk - Memoria de impresión
  • memo: archivos de texto de entrada, líneas de tamaño variable
  • modificar: edita archivos de texto, similar a editar
  • ídem - Imprime archivos de texto con formato (notas al pie, páginas)

Periféricos [ editar ]

El hardware de entrada y salida era en su mayoría periféricos estándar de IBM . Estos incluyeron seis canales de datos que se conectan a:

  • Impresoras, lectores de tarjetas perforadas y perforadoras
  • Unidades de cinta IBM 729 , un almacenamiento en disco IBM 1301 , posteriormente actualizado a IBM 1302 , con una capacidad de 38 millones de palabras
  • Una memoria de tambor IBM 7320 con 186K palabras que podría cargar un banco de memoria de 32K palabras en un segundo (luego actualizado a 0.25 segundos)
  • Dos pantallas de gráficos vectoriales de alta velocidad personalizadas
  • Una unidad de control de transmisión IBM 7750 capaz de admitir hasta 112 terminales de teletipo , incluidos IBM 1050 Selectrics y Teletype Model 35s. Algunas de las terminales estaban ubicadas de forma remota y se podía acceder al sistema utilizando las redes públicas Telex y TWX .

Influencias [ editar ]

Multics , que también fue desarrollado por Project MAC, se inició en la década de 1960 como sucesor de CTSS y, a su vez, inspiró el desarrollo de Unix en 1969. Uno de los términos técnicos heredados de estos sistemas de CTSS es daemon .

El Incompatible Timesharing System (ITS), otro sistema de tiempo compartido del MIT temprano, revolucionario e influyente, fue creado por personas que no estaban de acuerdo con la dirección tomada por CTSS, y más tarde, Multics; el nombre era una parodia de "CTSS", ya que más tarde el nombre "Unix" era una parodia de "Multics". [12]

Ver también [ editar ]

  • Cronología de los sistemas operativos
  • Evolución del sistema de tiempo compartido

Referencias [ editar ]

  1. ^ Sistema de tiempo compartido compatible (1961-1973): Resumen conmemorativo del cincuentenario , David Walden y Tom Van Vleck (editores), IEEE Computer Society, 2011
  2. ^ Backus, John, Técnicas de codificación avanzadas por computadora Archivado el 29 de septiembre de 2018 en la Wayback Machine , MIT 1954, página 16-2. La primera descripción conocida del tiempo compartido en la computadora.
  3. ^ Informe de progreso número 4 de las actividades de investigación y educación en computación de máquinas por las universidades cooperantes de Nueva Inglaterra , diciembre de 1958
  4. ^ a b F. J. Corbató, et al., The Compatible Time-Sharing System A Programmer's Guide (MIT Press, 1963) ISBN  978-0-262-03008-3 . Describe el sistema y sus comandos.
  5. ^ John McCarthy, Reminiscencias sobre la historia del tiempo compartido. Archivado el 20 de octubre de 2007 en la Wayback Machine (Universidad de Stanford, 1983).
  6. ^ Informe de progreso número 9 de las actividades de investigación y educación en computación de máquinas por las universidades cooperantes de Nueva Inglaterra , julio de 1961
  7. ^ FJ Corbató, MM Daggett, RC Daley, An Experimental Time-Sharing System Archivado 2009-09-06 en Wayback Machine (IFIPS 1962).
  8. ^ Memorias de Tom Van Vleck de la historia del correo electrónico
  9. ^ McMillan, Robert (27 de enero de 2012). "¿La primera contraseña de computadora del mundo? También era inútil" . Revista cableada . Consultado el 22 de marzo de 2019 . CS1 maint: parámetro desalentado ( enlace )
  10. ^ Hunt, Troy (26 de julio de 2017). "Passwords Evolved: Authentication Guidance for the Modern Era" . Consultado el 22 de marzo de 2019 . CS1 maint: parámetro desalentado ( enlace )
  11. ^ a b Silberschatz, Abraham; Peterson, James L. (junio de 1988). "13: Perspectiva histórica". Conceptos del sistema operativo . pag. 514. ISBN 0-201-18760-4.
  12. ^ Levy, Steven (2010). "Ganadores y perdedores". Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition (1ª ed.). Sebastopol, California: O'Reilly Media. págs. 85-102. ISBN 978-1449388393.

Lectura adicional [ editar ]

  • Fano, Robert M. (1964). "El sistema MAC: un informe de progreso" (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . Proyecto MAC del MIT.
  • Saltzer, Jerome H. (1965). "Notas técnicas CTSS" (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . Proyecto MAC del MIT.
  • Saltzer, Jerome H. (1964). "Mecanografía y edición de manuscritos" . Web.MIT.edu . Centro de Computación del MIT.

Enlaces externos [ editar ]

  • An Experimental Time Sharing System , Fernando J. Corbató, Marjorie Merwin Daggett, Robert C. Daley, Centro de Computación, Instituto de Tecnología de Massachusetts, Cambridge, Massachusetts
  • Sistema de tiempo compartido compatible (1961-1973): Resumen conmemorativo del cincuentenario
  • Entrevista de historia oral con John McCarthy , Instituto Charles Babbage , Universidad de Minnesota. Analiza desarrollos informáticos en el MIT, incluido el tiempo compartido.
  • IBM 7094 y CTSS : memorias personales de Tom Van Vleck , un programador de sistemas en CTSS
  • El origen de la cáscara describe la evolución de RUNCOM en la cáscara moderna
  • Fuente CTSS en la colección de Paul Pierce.
  • CIO: 40 años de Multics, 1969-2009 : Entrevista con el desarrollador de CTSS y Multics Fernando J. Corbato.
  • Entrevista de historia oral con Fernando J. Corbató , Instituto Charles Babbage , Universidad de Minnesota. Analiza muchos desarrollos informáticos en el MIT, incluido CTSS.
  • Entrevista de historia oral con Robert M. Fano , Instituto Charles Babbage , Universidad de Minnesota. Analiza los desarrollos informáticos en el MIT, incluido CTSS.
  • Compatibilidad con IBM 7094 de Dave Pitts : incluye un simulador, ensamblador cruzado y enlazador que se pueden usar para construir y ejecutar CTSS. El sitio también contiene la fuente CTSS. El CTSS funciona completamente en el simulador.