Articulo de referencia

RSTS/E

RSTS ( / ˈ r ɪ s t ɪ s / ) es un sistema operativo de tiempo compartido multiusuario desarrollado por Digital Equipment Corporation (DEC, ahora parte de Hewlett-Packard ) para l...

RSTS ( / ˈ r ɪ s t ɪ s / ) es un sistema operativo de tiempo compartido multiusuario desarrollado por Digital Equipment Corporation (DEC, ahora parte de Hewlett-Packard ) para la serie PDP-11 de minicomputadoras de 16 bits . La primera versión de RSTS (RSTS-11, Versión 1 ) fue implementada en 1970 por ingenieros de software de DEC que desarrollaron el sistema operativo de tiempo compartido TSS-8 para el PDP-8 . La última versión de RSTS (RSTS/E, Versión 10.1 ) se lanzó en septiembre de 1992. RSTS-11 y RSTS/E generalmente se denominan simplemente "RSTS" y en este artículo se utilizará la forma abreviada. RSTS-11 admite el lenguaje de programación BASIC, una versión extendida llamada BASIC-PLUS, desarrollada bajo contrato por Evans Griffiths & Hart de Boston. [ 3 ] [ 4 ] A partir de la versión 5B de RSTS/E, DEC agregó soporte para lenguajes de programación adicionales mediante la emulación del entorno de ejecución de los sistemas operativos RT-11 y RSX-11 .

Acrónimos y abreviaturas

  • BTSS (Sistema Básico de Tiempo Compartido – nunca comercializado) – El primer nombre de RSTS. [ 5 ]
  • CCL ( Concise Command Language ): equivalente a un comando para ejecutar un programa almacenado en el intérprete de línea de comandos .
  • CIL (Core Image Library): un formato de archivo contenedor utilizado para almacenar uno o más programas y sistemas operativos independientes (arrancables), como RSTS hasta la versión 6A.
  • CILUS (Actualización y guardado de la biblioteca de imágenes principales) – Programa de DOS-11 para manipular un archivo CIL. [ 6 ]
  • CLI (Intérprete de línea de comandos) – Consulte Interfaz de línea de comandos .
  • CUSPs (Programas de sistema de uso común): aplicaciones de administración del sistema como el Administrador de tareas o el Editor del registro en Microsoft Windows . [ 7 ] En RSTS-11, los CUSPs se escribieron en BASIC-Plus al igual que los programas de usuario.
  • DCL (Lenguaje de Comandos Digitales) – Ver Lenguaje de Comandos DIGITAL .
  • DTR (DATATRIEVE) – lenguaje de programación
  • FIP (Procesamiento de Información de Archivos) – área de residencia para la emisión de solicitudes de archivos
  • FIRQB (File Information Request Queue Block) – Una estructura de datos que contiene información sobre las solicitudes de archivos. [ 8 ]
  • KBM (Monitor de teclado) – Análogo al intérprete de línea de comandos.
  • LAT (Local Area Transport) – Predecesor digital de TCP/IP
  • MFD (Directorio Maestro de Archivos) – Directorio raíz del sistema de archivos. [ 9 ]
  • PBS (Servicios de impresión por lotes)
  • PIP ( Programa de Intercambio Periférico )
  • PPN (Número de programador del proyecto): análogo a GID y UID en Unix.
  • RDC (Consola de diagnóstico remoto): un panel frontal de repuesto para un PDP-11 que utilizaba una conexión en serie al terminal de la consola o un módem en lugar de luces e interruptores para controlar la CPU.
  • RSTS-11 (Sistema de tiempo compartido de recursos compartidos): el primer nombre comercial de un producto RSTS.
  • RSTS/E (Sistema de tiempo compartido de recursos extendido) – La implementación actual de RSTS.
  • RTS (Sistema de Tiempo de Ejecución): segmento de código de solo lectura proporcionado por el proveedor, que se asigna a la parte superior de un espacio de direcciones de 32 KB y 16 bits que un programa de usuario utiliza para interactuar con el sistema operativo. Solo se carga una copia de un RTS en la RAM, pero se asigna al espacio de direcciones de cualquier programa de usuario que lo requiera. En esencia, se trata de código compartido y reentrante, que reduce los requisitos de RAM al compartir el código entre los programas que lo necesitan.
  • RTSS (Sistema de uso compartido de recursos – nunca comercializado) – El segundo nombre para RSTS
  • SATT (Tabla de Verdad de Asignación de Almacenamiento) es una serie de bloques de 512 KB en cada disco que indica si el bloque, o clúster, de todo el disco está asignado. A nivel de bits, un 1 indica que un clúster está en uso; un 0 indica que no está en uso.
  • SIL (Save Image Library): el formato de archivo contenedor del sistema operativo después de que el procedimiento de generación del sistema RSTS cambiara de uno que utilizaba DOS-11 a uno que se ejecutaba de forma nativa en RSTS/E, llamado así por analogía con el CIL al que reemplazó.
  • SILUS (Save Image Library Update and Save): el programa para crear archivos SIL, llamado así por analogía con el programa CILUS de DOS-11 (sin relación alguna) al que reemplazó.
  • UFD (Directorio de Archivos de Usuario) – Directorio principal de un usuario . Directorio raíz de un sistema de archivos. [ 9 ]
  • XRB (Bloque de solicitud de transferencia): una estructura de datos que contiene información sobre otros tipos de solicitudes del sistema que no utilizan FIRQB para transmitir la información.

Desarrollo

década de 1970

El núcleo de RSTS se programó en lenguaje ensamblador MACRO-11 , se compiló y se instaló en un disco mediante el programa CILUS , ejecutándose en un sistema operativo DOS-11 . RSTS arrancaba con una versión extendida del lenguaje de programación BASIC que DEC denominó " BASIC-PLUS ". Todos los CUSPS del software del sistema operativo, incluidos los programas para la contabilidad de recursos, el inicio y cierre de sesión, y la administración del sistema, se escribieron en BASIC-PLUS. De 1970 a 1973, RSTS se ejecutaba en tan solo 56 KB de memoria de núcleo magnético (64 kilobytes incluyendo el espacio de E/S mapeado en memoria ). Esto permitía que un sistema tuviera hasta 16 terminales con un máximo de 17 trabajos . El tamaño máximo del programa era de 16 KB. [ 10 ] A finales de 1973, DEC estimó que había 150 sistemas con licencia ejecutando RSTS. [ 11 ]

En 1973, se incluyó soporte para la gestión de memoria en RSTS (ahora RSTS/E) para los nuevos miniordenadores DEC PDP-11/40 y PDP-11/45 (el PDP-11/20 solo era compatible con RSTS-11). La introducción de la gestión de memoria en los nuevos ordenadores PDP-11 no solo significó que estas máquinas pudieran direccionar cuatro veces más memoria ( direccionamiento de 18 bits , 256 KB), sino que también allanó el camino para que los desarrolladores separaran los procesos en modo usuario del núcleo del kernel.

En 1975, se actualizó nuevamente la gestión de memoria para el nuevo PDP-11/70 direccionable de 22 bits . Los sistemas RSTS ahora podían ampliarse para usar hasta dos megabytes de memoria y ejecutar hasta 63 trabajos. Se introdujeron los conceptos RTS y CCL , aunque debían compilarse durante " SYSGEN ". Se introdujo el servicio multiterminal, que permitía a un solo trabajo controlar múltiples terminales (128 en total). El envío/recepción de mensajes grandes y la comunicación entre procesos se volvieron muy sofisticados y eficientes. En agosto, había 1200 sistemas con licencia. [ 11 ]

En 1977, el proceso de instalación de RSTS dejó de depender de DOS-11. El núcleo de RSTS podía compilarse con RT-11 RTS , formatearse como un archivo de núcleo con RT-11 SILUS y copiarse al sistema u otros discos, mientras el ordenador compartía el tiempo. BASIC-PLUS RTS (así como RT-11, RSX-11 , TECO y RTS de terceros ) se ejecutaban como procesos en modo usuario, independientemente del núcleo de RSTS. Un administrador de sistemas podía decidir durante la fase de arranque qué RTS ejecutar como monitor de teclado ( KBM ) predeterminado del sistema . Para entonces, existían unos 3100 sistemas con licencia. [ 11 ]

En 1978, se incluyó la última actualización de gestión de memoria para todas las máquinas compatibles con direccionamiento de 22 bits. RSTS ahora podía usar la cantidad máxima de memoria disponible para un PDP-11 (4 megabytes). También se incluyó compatibilidad con el modo SUPERVISORY, lo que convirtió a RSTS en el primer sistema operativo de DEC con esta capacidad. Asimismo, se admitía DECnet y el diagnóstico remoto por parte de técnicos de servicio de campo en el RDC de Colorado Springs, Colorado (un servicio de suscripción de DEC). A finales de la década , existían más de 5000 sistemas con licencia. [ 11 ]

década de 1980

En 1981, la compatibilidad con espacios de instrucciones y datos separados para usuarios de máquinas Unibus ( PDP-11/44 , PDP-11/45, PDP-11/55 y PDP-11/70) amplió las limitaciones de memoria de los programas individuales. La compilación de programas para usar espacios de instrucciones y datos separados pronto permitió disponer de hasta 64  KB para instrucciones y hasta 64  KB para datos de almacenamiento en búfer. Se incluyó el protocolo DCL RTS, así como la compatibilidad con la nueva versión de DECnet III.

Para 1983, con un estimado de 15,000 máquinas DEC ejecutando RSTS/E, [ 3 ] V8.0-06 incluyó soporte para el PDP-11 de 18 bits más pequeño vendido por DEC (el MicroPDP-11). Se incluyeron un kernel pregenerado y CUSPS en esta distribución para facilitar la instalación en el MicroPDP-11. DEC vendió la versión pregenerada en el MicroPDP-11 como MicroRSTS a un precio reducido, sin embargo, los usuarios debían comprar la versión completa si necesitaban generar su propio kernel. El sistema de archivos se actualizó y se le dio la designación RSTS Directory Structure 1 (RDS1). [ 12 ] Todas las versiones anteriores del sistema de archivos RSTS reciben la designación RDS0. [ 13 ] El nuevo sistema de archivos fue diseñado para admitir más de 1700 cuentas de usuario. [ 14 ] "Ahora se cree que hay más de 10.000 usuarios con licencia y al menos un número igual de usuarios sin licencia!". [ 11 ]

De 1985 a 1989, RSTS se convirtió en un producto maduro en las revisiones de la Versión 9. DCL se instaló como el RTS principal y el sistema de archivos se actualizó nuevamente (ahora RDS1.2) para admitir nuevas características de cuentas de usuario. Las contraseñas se cifraron utilizando un algoritmo DES modificado en lugar de limitarse a seis (6) caracteres almacenados en formato DEC Radix-50 . Antes de la Versión 9, había una cuenta de sistema no de usuario en el proyecto (grupo) cero (la designación es [0,1]), y todas las cuentas en el proyecto número 1 eran privilegiadas (similar a la cuenta root en los sistemas Unix ). Con el lanzamiento de la Versión 9, se podían crear cuentas adicionales para el proyecto cero, y se podían establecer múltiples privilegios individualmente para cualquier cuenta. Se incluyó soporte para el protocolo LAT , así como la capacidad de ejecutar la versión más reciente de DECnet IV. Estas mejoras de red permiten que cualquier usuario conectado a una terminal a través de un DECserver pueda comunicarse con una máquina RSTS, tan fácilmente como con un VAX que ejecuta VMS . La estructura de comandos DCL entre los sistemas operativos DEC también contribuyó a la apariencia y la sensación familiares:

No se trata de un procesador de archivos de comandos pseudo más; se basa en las características de VMS. El procesador de archivos de comandos DCL es totalmente compatible e integrado en RSTS mediante modificaciones sustanciales en DCL y el monitor. DCL ejecuta archivos de comandos como parte de su trabajo; por lo tanto, no es necesario un teclado pseudo ni forzar la introducción de comandos en su teclado (como ocurre con ATPK). [ 15 ]

década de 1990

En 1994, DEC vendió la mayor parte de su negocio de software para PDP-11 a Mentec . [ 16 ] Digital continuó brindando soporte a sus propios clientes de PDP-11 durante un breve período después con la ayuda del personal de Mentec.

En 1997, Digital y Mentec otorgaron una licencia gratuita a cualquier persona que deseara usar RSTS 9.6 o versiones anteriores con fines no comerciales y de afición. La licencia solo es válida en el emulador SIMH PDP-11. También cubre otros sistemas operativos de Digital. Se incluyen copias de la licencia en un paquete de software autorizado disponible para su descarga en el sitio web oficial del emulador SIMH . [ 17 ]

Documentación

El conjunto estándar de manuales de documentación que acompaña a una distribución de RSTS consta de al menos 11 carpetas grandes de tres anillas (conocidas colectivamente como "La pared naranja"), una carpeta pequeña de tres anillas que contiene la Guía de referencia rápida de RSTS/E y una copia en rústica de Introducción a BASIC AA-0155B-TK . Cada una de las 11 carpetas de tres anillas contiene:

Ejemplo de un estante para documentos RSTS/E

Volumen 1: Información general e instalación

  • Directorio de documentación
  • Notas de la versión
  • Cuaderno de mantenimiento
  • Guía de instalación y actualización del sistema

Volumen 2: Gestión de sistemas

  • Guía del administrador del sistema

Volumen 3: Uso del sistema

  • Guía del usuario del sistema
  • Guía para redactar procedimientos de mando

Volumen 4: Servicios públicos

  • Manual de referencia de servicios públicos
  • Introducción al editor EDT
  • Guía del usuario de SORT/MERGE
  • Guía del usuario de RUNOFF

Volumen 4A: Servicios públicos

  • Manual del editor EDT

Volumen 4B: Servicios públicos

  • Manual de referencia del creador de tareas
  • Manual de utilidades del programador
  • Manual de utilidades RT11
  • Guía del usuario de TECO

Volumen 5: BASIC-PLUS

  • Manual del idioma BASIC-PLUS

Volumen 6: Programación de sistemas

  • Manual de programación

Volumen 7: Programación de macros

  • Manual de directivas del sistema
  • Manual de referencia de ODT

Volumen 7A: Programación de macros

  • Manual de idioma MACRO-11
  • Guía del programador de macros RMS-11

Volumen 8: RMS [Servicios de gestión de registros ]

  • RMS-11: Una introducción
  • Guía del usuario de RMS11
  • Servicios públicos RMS-11

Operación

Comunicación

RSTS utiliza una conexión de comunicación serie para interactuar con el operador. La conexión puede ser un terminal de computadora local con una interfaz de bucle de corriente de 20 mA , una interfaz RS-232 (ya sea puerto serie local o conexión remota a través de módem ), o mediante una conexión Ethernet usando DECnet o LAT. Hasta 128 terminales (usando el servicio multiterminal) pueden conectarse a un sistema RSTS, ejecutando un máximo de 63 trabajos (dependiendo del procesador utilizado, la cantidad de memoria y espacio en disco, y la carga del sistema ). La mayoría de los sistemas RSTS tenían muchos menos terminales. Los usuarios también pueden enviar trabajos para ejecutarlos en modo por lotes . También existe un programa por lotes llamado "ATPK" que permite a los usuarios ejecutar una serie de comandos en un terminal imaginario (pseudoterminal) en modo semi-interactivo similar a los comandos por lotes en MS-DOS . 

Iniciar sesión [Proyecto, Programador]

Los usuarios se conectan al sistema escribiendo el comando LOGIN (o HELLO) en una terminal sin sesión iniciada y pulsando Intro. Al escribir cualquier comando en una terminal sin sesión iniciada, se ejecuta el programa LOGIN, que interpreta el comando. Si se trata de uno de los comandos permitidos para un usuario que aún no ha iniciado sesión ("Sin sesión iniciada"), se ejecuta el programa correspondiente; de ​​lo contrario, se muestra el mensaje "Por favor, diga HELLO" en la terminal. Antes de la versión 9, un usuario también podía iniciar sesión con una sola línea; sin embargo, esto dejaba la contraseña del usuario visible en la pantalla para cualquier otra persona en la sala (ver ejemplos a continuación):

Inicio de sesión y cierre de sesión de RSTS/E con BASIC como RTS predeterminado
Adiós HOLA 1,1; SECRETO Listo 

o

Yo 1,1; SECRETO Listo 

o

INICIO DE SESIÓN 1,1; SECRETO Listo 

El estado de una terminal se puede determinar a partir de las respuestas a los comandos, impresas por el intérprete de comandos. A un usuario conectado que se comunica con el monitor de teclado ( KBM ) de BASIC-PLUS se le muestra el mensaje "Listo" y a un usuario que no ha iniciado sesión se le muestra el mensaje "Adiós".

Un usuario inicia sesión proporcionando su número PPN y contraseña. Los números de usuario constan de un número de proyecto (equivalente a un número de grupo en Unix), una coma y un número de programador. Ambos números están en el rango de 0 a 254, con excepciones especiales. Al especificar una cuenta, el número de proyecto y el de programador se encierran entre corchetes. Un número de usuario típico puede ser [10,5] (proyecto 10, programador 5), [2,146], [254,31] o [200,220], etc. Cuando un usuario ejecuta un programa del sistema mientras no ha iniciado sesión (porque el administrador del sistema lo ha habilitado), su número PPN es [0,0] y aparece en SYSTAT CUSP como **,**. Por lo tanto, ese no es un número de cuenta válido. Si el usuario especifica una barra inclinada (/) en lugar de una coma entre el número de proyecto y el número de programador, no se mostrará un mensaje del sistema almacenado en [1,2]NOTICE.TXT (equivalente al mensaje del día de Unix) al iniciar sesión.

Sistema y cuentas de usuario

En cada proyecto, el programador número 0 suele reservarse como cuenta de grupo, ya que se puede identificar mediante el símbolo especial #. Si el número de usuario es [20,103], una referencia a un nombre de archivo que comience con "#" se refiere a un archivo almacenado en la cuenta del usuario número [20,0]. Esta función resulta útil en entornos educativos, ya que el programador número 0 puede asignarse al profesor de una clase, y los alumnos individuales pueden tener cuentas con el mismo número de proyecto. El profesor puede almacenar en su cuenta archivos marcados como compartidos únicamente para ese número de proyecto (es decir, solo para los alumnos de esa clase).

Existen dos clases especiales de números de proyecto. El número de proyecto 0 generalmente se reserva para el software del sistema, y ​​antes de la versión 9 solo existía una cuenta de proyecto 0 (denominada [0,1]). Los programadores del proyecto número 1 tienen cuentas privilegiadas, equivalentes a la cuenta única "root" en los sistemas Unix, con la excepción de que las cuentas [1,0] a [1,254] ​​también tienen privilegios. A partir de la versión 9, cualquier cuenta puede recibir privilegios específicos por parte del administrador del sistema.

La cuenta [0,1] se utiliza para almacenar el archivo del sistema operativo, todos los sistemas de bibliotecas de tiempo de ejecución y ciertos archivos del sistema relacionados con el arranque del sistema (los comentarios del autor aparecen a la derecha en negrita):

DIR [0,1] Nombre .Ext Tamaño Prot Fecha SY:[0,1] BADB .SYS 0P < 63> 06-Jun-98 Lista de bloques defectuosos SATT .SYS 3CP < 63> 06-Jun-98 Mapa de bits del almacenamiento de disco asignado INIT .SYS 419P < 40> 06-Jun-98 Programa cargador del sistema operativo ERR .ERR 16CP < 40> 06-Jun-98 Mensajes de error del sistema RSTS .SIL 307CP < 60> 06-Jun-98 El propio sistema operativo BASIC .RTS 73CP < 60> 06-Jun-98 Sistema de tiempo de ejecución BASIC-PLUS RT11 .RTS 20C < 60> 06-Jun-98 Sistema de tiempo de ejecución RT-11 SWAP .SYS 1024CP < 63> 06-Jun-98 Archivo de intercambio del sistema CRASH .SYS 35CP < 63> 06-Jun-98 Volcado de fallo del sistema RSX .RTS 16C < 60> 23-Sep-79 Sistema de ejecución RSX-11 TECO .RTS 39C < 60> 24-Sep-79 Editor de texto TECO Total de 1952 bloques en 11 archivos en SY:[0,1] ( Nota del editor: Este listado de directorio es anterior a la versión 9. )

El comando DIR es un CCL instalado equivalente al comando RUN del programa DIRECT. [0,1] es el número de cuenta (y el nombre del directorio) de la cuenta de almacenamiento del sistema operativo. Se denominaría "proyecto número 0, programador número 1".

Los números que aparecen después de cada archivo representan su tamaño en bloques de disco, siendo un bloque de 512 bytes o 0,5 kilobytes (K). La letra "C" indica que el archivo es contiguo (se almacena como un solo archivo sin dividirse en partes, similar a los archivos en un sistema Microsoft Windows después de desfragmentar una unidad ), mientras que la letra "P" indica que está especialmente protegido (no se puede eliminar, ni siquiera por un usuario con privilegios, a menos que se borre el bit P mediante un comando independiente). Los números entre corchetes (como "< 40>") representan las protecciones del archivo, que siempre se muestran en formato decimal. Las protecciones indican si el archivo puede ser visto por cualquier otro usuario, por otros usuarios con el mismo número de programador, si el archivo es de solo lectura o si puede ser modificado por otro usuario, y si el archivo puede ser ejecutado por un usuario ordinario otorgándole privilegios adicionales. Estos códigos de protección son muy similares a las protecciones r, w y x en Unix y sistemas operativos similares como BSD y Linux . El código 60 equivale a un archivo privado, el código 63 a un archivo privado que no se puede eliminar y el código 40 a un archivo público.

Los archivos de la biblioteca se almacenan en la cuenta [1,1] y generalmente se hace referencia a ella mediante el nombre lógico LB:. La cuenta [1,2] es la cuenta de inicio del sistema (similar a un sistema Unix que se inicia como root) y contiene los CUSPS del sistema , a los que se puede hacer referencia anteponiendo el signo de dólar ($) al nombre del CUSPS . Se utiliza "!" para la cuenta [1,3], "%" para [1,4] y " & " para [1,5]. La cuenta [1,1] también tenía el privilegio especial de ser la única cuenta en la que un usuario que iniciara sesión con ella podía ejecutar la llamada al sistema POKE para insertar valores en cualquier memoria del sistema. Por lo tanto, el número de cuenta [1,1] es el equivalente más cercano a "root" en sistemas basados ​​en Unix.

Entornos de ejecución

Una de las características de RSTS es el medio para ejecutar programas y el entorno utilizado para ello. Los distintos entornos permitían programar en BASIC-PLUS, en la versión mejorada y compilada BASIC-Plus-2, y en lenguajes de programación más tradicionales como COBOL (posteriormente actualizado a COBOL-85) y FORTRAN IV (posteriormente actualizado a FORTRAN-77). También se admitían otros lenguajes como DIBOL y MUMPS . Estos entornos eran independientes entre sí, de modo que se podía iniciar un programa desde un entorno y el sistema cambiaba a otro mientras ejecutaba un programa diferente, para luego devolver al usuario al entorno original. Estos entornos se denominaban Sistema de Tiempo de Ejecución ( RTS) . La interfaz de línea de comandos que tenían la mayoría de estos RTS se denominaba KBM . Antes de la versión 9, el administrador del sistema debía definir bajo qué RTS se iniciaría el sistema, y ​​este debía ser uno que ejecutara programas compilados.

Un administrador de sistemas también puede instalar comandos especiales CCL (lenguaje de comandos conciso), que tienen prioridad sobre todos los comandos KBM (a excepción de DCL ). Un CCL es similar a un acceso directo a un programa en un sistema Windows o a un enlace simbólico en sistemas basados ​​en Unix. Los CCL se instalan como comandos residentes en memoria durante el arranque o de forma dinámica mientras el sistema está en ejecución por parte del administrador del sistema (es decir, no son permanentes como un archivo de disco).

Una vez iniciada la sesión, un usuario puede "CAMBIAR" a cualquiera de estos entornos, escribir instrucciones en el lenguaje de programación BASIC-PLUS, ejecutar comandos RUN para programas específicos o emitir un comando especial llamado CCL para ejecutar un programa con opciones de comando.

La mayoría de los administradores de sistemas RSTS generaron el núcleo para incluir la opción de estado de una línea "Control-T", que podía indicar al usuario qué programa estaba ejecutando, bajo qué RTS estaba utilizando el programa, cuánta memoria estaba consumiendo, a cuánta memoria podía expandirse y cuánta memoria estaba utilizando el RTS .

BÁSICO-PLUS

Los programas escritos en BASIC-PLUS se ejecutaban bajo el BASIC RTS , que les permitía utilizar hasta 32 KB de memoria (de un total de 64 KB). El lenguaje era interpretado: cada palabra clave se convertía internamente en un código de bytes único , y las variables y los datos se indexaban y almacenaban por separado en el espacio de memoria. El formato interno del código de bytes se conocía como PCODE. Al ejecutar el comando interactivo SAVE, el BASIC Plus RTS simplemente guardaba el área de memoria de trabajo en un archivo de disco con la extensión ".BAC". Aunque este formato no estaba documentado, dos estudiantes de ingeniería electrónica de la Universidad de Southampton (Reino Unido), Nick de Smith y David Garrod, desarrollaron un descompilador capaz de realizar ingeniería inversa de archivos BAC para obtener su código fuente original en BASIC-Plus, incluyendo los números de línea y los nombres de las variables originales (ambos funcionaron posteriormente para DEC). El resto de la memoria era utilizada por el propio BASIC RTS . Si se escribieran programas en un lenguaje que permitiera ejecutables binarios reales como BASIC-Plus-2, FORTRAN-IV o Macro Assembler, la cantidad de memoria disponible sería de 56 KB (8 KB asignados al RTS ). El indicador estándar de BASIC-PLUS es la respuesta "Ready"; al presionar Control-T se muestra el estado (ejemplo):

nuevo Nuevo nombre de archivo: HWORLD Listo 10Print"Hello World"20Input"Press Control-T for 1 line status: ";a$30Endrun HWORLD 22:17 01-ene-08 Hola Mundo Pulse Control-T para ver el estado de 1 línea: ? 1 KB0 HWORLD+BASIC KB(0R) 2(16)K+14K 0.2(+0.0) +0 Listo ahorrar Listo compilar Listo DIR HWORLD.*/na/ex/si/pr SY:[1,2] HWORLD.BAS 1 < 60> HWORLD.BAC 7C <124> Total de 8 bloques en 2 archivos en SY:[1,2] Listo 

DCL (Lenguaje de Comandos Digitales)

A partir de la versión 9, DCL se convirtió en el RTS de arranque principal, a pesar de no tener la capacidad de ejecutar programas binarios. Esto fue posible gracias a la aparición del RTS RSX, que está desapareciendo (véase más abajo). DCL se incorporó a todas las versiones recientes de los sistemas operativos de DEC (RSX-11, RT-11, VMS y, posteriormente, OpenVMS ) para garantizar la compatibilidad. El indicador estándar de DCL es el signo de dólar "$" (ejemplo):

$ write 0 "Hola Mundo, es " +F $TIME () Hola Mundo, es 01-ene-08 22:20 $ inquire p1 "Presione Control-T para ver el estado de 1 línea:" Presione Control-T para ver el estado de 1 línea: 1 KB0 DCL+DCL KB(0R) 4(8)K+24K 0.1(+0.1) -8 $ set verify/debug/watch $ show memory (show memory) (SYSTAT/C)Tabla de asignación de memoria: Inicio Fin Longitud Permanente Temporal  0K - 85K ( 86K) MONITOR  86K - 1737K (1652K) (Usuario) 1738K - 1747K ( 10K) (Usuario) DAPRES LIB 1748K - 1751K ( 4K) (Usuario) RMSRES LIB 1752K - 2043K ( 292K) ** XBUF ** 2044K - *** FIN *** $

RSX (Ejecutivo de Sistema en Tiempo Real)

Los programas escritos para el RSX RTS , como COBOL, Macro Assembler o versiones posteriores de BASIC-Plus-2, podían usar la cantidad máxima de memoria disponible para un programa binario (56 KB, debido a que el RTS necesitaba los 8 KB superiores para sí mismo). La versión 7 y posteriores del RSTS permitieron que el RSX RTS se incluyera en el núcleo, lo que hizo que "desapareciera" por completo del espacio de direcciones del usuario, liberando así 64 KB de memoria para los programas de usuario.

Los programas sorteaban las limitaciones de la cantidad de memoria disponible mediante el uso de bibliotecas (cuando estaba permitido), estrategias de superposición complejas o llamando a otros programas ("Encadenamiento") y pasándoles comandos y datos en un área de memoria compartida llamada "Core Common", entre otras prácticas.

Cuando RSX es el KBM predeterminado , el indicador RSX estándar (tanto cuando se ha iniciado sesión como cuando no) es el signo ">" (o MCR "Monitor Console Routine") (ejemplo):

> ejecutar Por favor, escriba HOLA > HOLA 1,1;SECRETO > ejecutar ¿Qué? > ayuda Los comandos de teclado válidos son:ASIGNAR DESMONTAR AYUDA EJECUTAR DESGUARDAR SALIR MONTAR CALLARSE DESASIGNAR HOLA REASIGNAR INTERRUPTOR> ejecutar CSPCOM CSP> HWORLD=HWORLD CSP> ^Z > EJECUTAR TKB TKB> HWORLD=HWORLD,LB:CSPCOM.OLB/LB TKB> // > ejecutar HWORLD.TSK Hola Mundo Presione Control-T para 1 línea estado: ? 1 KB0 HWORLD+...RSX KB(0R) 7(32)K+0K 0.8(+0.2) +0> DIR HWORLD.*/na/ex/si/pr SY:[1,2] HWORLD.BAS 1 < 60> HWORLD.BAC 7C <124> HWORLD.OBJ 2 < 60> HWORLD.TSK 25C <124>Total de 35 bloques en 4 archivos en SY:[1,2]>

RT-11

El RT-11 RTS emulaba la versión Single Job de la distribución RT-11. Al igual que la emulación RSX, RT-11 ocupaba los 8 KB superiores de memoria, dejando los 56 KB inferiores para CUSPS , programas escritos en FORTRAN-IV o Macro Assembler. Cuando RT-11 es el KBM predeterminado , el indicador estándar de RT-11 (tanto con la sesión iniciada como cerrada) es el signo "." (ejemplo):

. VERSIÓN Por favor, escribe HOLA . HOLA 1 ,1; SECRETO . VERSIÓN RT-11SJ V3-03; RSTS/E V8.0 . R PIP *HWORLD.MAC=KB: .MCALL .TTYIN,.PRINT,.EXIT HWORLD: .ASCII /Hola Mundo/<15><12> .ASCIZ /Pulse Control-T para ver el estado de 1 línea:/ .INCLUSO Inicio: .IMPRESIÓN #HWORLD .TTYIN .SALIDA FIN INICIO ^Z *^Z . R MACRO HWORLD=HWORLD *^Z . ENLACE R *HWORLD=HWORLD *^Z . R HWORLD.SAV Hola Mundo Pulse Control-T para ver el estado de 1 línea: 1 KB0 HWORLD+RT11 KB(0R) 2(28)K+4K 0.6(+0.2) +0 . .DIR HWORLD.*/na/ex/si/pr SY:[1,2] HWORLD.BAS 1 < 60> HWORLD.BAC 7C <124> HWORLD.TSK 25C <124> HWORLD.MAC 1 < 60> HWORLD.OBJ 1 < 60> HWORLD.SAV 2C <124> Total de 37 bloques en 6 archivos en SY:[1,2] .

TECO (Editor y corrector de textos)

El editor TECO se implementó como un RTS para maximizar la cantidad de memoria disponible para el búfer de edición, y también porque se implementó por primera vez en RSTS V5B, antes del lanzamiento de los sistemas de tiempo de ejecución de propósito general (RSX y RT11). TECO fue el único RTS distribuido con RSTS que no contenía un KBM integrado. El usuario iniciaba TECO (como cualquier otro programa) ejecutando un programa TECO (TECO.TEC). TECO y el QEDIT afín fueron los antepasados ​​directos del primer editor de texto basado en UNIX, ED. La mayoría de los sistemas RSTS usaban CCL para crear un archivo (MAKE filespec), editar un archivo (TECO filespec) o ejecutar un programa TECO (MUNG filespec, data). El siguiente programa es un ejemplo de cómo se podría usar TECO para calcular pi (actualmente configurado a 20 dígitos): [ 18 ]

Listo ejecutar TECO *GZ0J\UNQN"E 20UN ' BUH BUV HK QN< J BUQ QN*10/3UI QI< \ +2*10+(QQ*QI)UA BLK QI*2-1UJ QA/QJUQ QA-(QQ*QJ)-2\ 10@I// -1%I > QQ/10UT QH+QT+48UW QW-58"E 48UW %V ' QV"N QV^T ' QWUV QQ-(QT*10)UH > QV^T @^A/ /HKEX$$ 31415926535897932384 Listo 

Huevos de Pascua de RSTS

Inicio del sistema (INIT.SYS)

Si un usuario escribía un comando no reconocido al iniciar el sistema en la solicitud "Opción:" de INIT.SYS, la utilidad de inicio, se mostraba el mensaje "Escriba 'HELP' para obtener ayuda". Si posteriormente el usuario escribía "HELP" (incluidas las comillas) en la solicitud, la respuesta era "Qué gracioso, de todos modos...", seguida del mensaje de ayuda propiamente dicho.

Luces de la consola PDP-11

Un administrador del sistema podía compilar en el núcleo un patrón de visualización giratorio que creaba la ilusión de dos serpientes persiguiéndose alrededor de las luces de la consola. El núcleo normal mostraba una serpiente moviéndose de derecha a izquierda en las luces de datos de la parte inferior. Si el administrador del sistema también compilaba el módulo de objeto "lights", el usuario veía una serpiente adicional moviéndose de izquierda a derecha en las luces de dirección de la parte superior. Esto se lograba mediante el modo de supervisión en las versiones anteriores a la 9.0. RSX también tenía un patrón de visualización similar que parecía como si dos serpientes estuvieran jugando a la gallina y chocaran entre sí en el centro de la consola.

Huevo de Pascua de Teco

El comando 'make' permitía al usuario crear un archivo de texto y acceder automáticamente al editor de texto TECO. Si el usuario escribía 'make love', el sistema creaba un archivo llamado 'love' y respondía con '¿No es la guerra?'.

Lista de archivos abiertos

Kevin Herbert, que más tarde trabajó para DEC, añadió en los años 90 una función no documentada que permitía al usuario acceder ^Fa una lista de los archivos abiertos por su proceso, incluyendo los bloques en uso y el tamaño de los archivos.

Fecha estelar

A partir de la versión 9.0, una función no documentada permitía al administrador del sistema cambiar la forma en que se mostraba la fecha del sistema. RSTS se convirtió en el primer sistema operativo en mostrar la fecha del sistema como un conjunto de números que representaban una fecha estelar, tal como se conoce comúnmente por la serie de televisión Star Trek .

Complementos de otras empresas

System Industries compró la única licencia de código fuente para RSTS para implementar una mejora llamadaSIMACS (Acceso Simultáneo a Máquinas) permitía que su controlador de disco especial estableciera un indicador de semáforo para el acceso al disco, lo que posibilitaba múltiples escrituras en los mismos archivos en un sistema RSTS donde el disco era compartido por varios sistemas PDP-11 RSTS. Esta función se implementó en los controladores de System Industries que se conectaron a muchos ordenadores DEC y fue diseñada por el Dr. Albert Chu durante su etapa en System Industries.

La principal innovación fue el uso de un semáforo , una bandera para indicar qué procesador, mediante compartición cooperativa, tiene acceso de escritura exclusivo. [ 19 ]

Esto requirió muchos cambios en la forma en que el sistema operativo RSTS accedía a los discos. El sistema FIPS (File Information Processing System), que gestionaba el acceso de entrada/salida, era de un solo hilo en RSTS. Para permitir que el acceso a un disco se detuviera mientras otra máquina tenía acceso activo a un bloque, era necesario que el FIPS pudiera agotar el tiempo de espera de una solicitud, pasar a la siguiente y volver a la que se había detenido de forma rotativa . El código para permitir esto fue escrito por Philip Hunt mientras trabajaba en System Industries, en Milpitas, California . Posteriormente, trabajó para Digital Equipment en la región de Nueva Inglaterra a finales de la década de 1980 y principios de la de 1990.

SIMACS [ 20 ] no se limitaba a la línea de productos PDP-11 ; VAXen también podía usarlo. [ 19 ]

Emulaciones RSTS

ROSS/V

En 1981, Evans Griffiths & Hart comercializó el producto ROSS/V . ROSS/V permitía que todos los procesos en modo usuario de RSTS ( CUSPS , RTS y programas de usuario) se ejecutaran sin modificaciones bajo VMS en las máquinas VAX-11. El código para esta emulación gestionaba todos los procesos del núcleo que normalmente gestionaría un núcleo RSTS ejecutándose en un PDP-11. El lenguaje BASIC-PLUS original, que se ha mantenido en todas las versiones de RSTS, fue subcontratado por Evans Griffiths & Hart, Inc. por un precio fijo de 10.500 dólares. [ 21 ]

Otros emuladores de PDP-11

RSTS y sus aplicaciones pueden ejecutarse en varios emuladores de PDP-11, como SIMH y Ersatz-11 . Para obtener más información, consulte PDP-11 .

Mascota de RSTS

Spike y Albert

Versiones

RSTS se llamaba originalmente BTSS (Basic Time Sharing System). Antes de que comenzara el envío, el nombre se cambió de BTSS a RTSS porque Honeywell ya comercializaba un producto con ese nombre . Un simple error tipográfico cambió el nombre de RTSS a RSTS. [ 21 ]

La incorporación de nuevas funciones de gestión de memoria y la posibilidad de instalar más memoria en los modelos PDP-11/40 y PDP-11/45 dieron lugar a otro cambio de nombre: RSTS-11 pasó a llamarse RSTS/E.

Clones en la URSS

Aplicaciones

En ocasiones, las oficinas informáticas implementaban User-11 para la gestión de datos basada en RSTS/E . [ 23 ]

Véase también

Referencias

  1. «Índice de /Bits/DEC/Pdp11/RSTS» .
  2. "Mentec - Manual de estructuras internas y de datos de RSTS/E versión 10.1" . Consultado el 7 de noviembre de 2017 .
  3. 1 2 Fleig, Clare P. (marzo de 1983). "Evans, Griffiths & Hart". Copia impresa . págs. 51–54 . 
  4. "Historia de la empresa EGH" .
  5. "80º Aniversario de RSTS" .
  6. Guía del administrador del sistema RSTS-11 . Maynard, MA: Digital Equipment Corporation. Enero de 1973.
  7. "Enlace FTP" (PDF) . bitsavers.informatik.uni-stuttgart.de . Archivado del original (PDF) el 29/01/2020.
  8. "Enlace FTP" (PDF) . bitsavers.informatik.uni-stuttgart.de . Archivado del original (PDF) el 29/01/2020.
  9. 1 2 Guía del administrador del sistema RSTS/E (PDF) . Maynard, MA: Digital Equipment Corporation. Julio de 1989.
  10. Dick, P: "Historia de RSTS: Un apéndice", página 25. "The VAX/RSTS Professional Magazine", 1 de febrero de 1984, vol. 6, n.º 1, ISSN 0746-1909
  11. 1 2 3 4 5 Dick, P.: "La historia de RSTS", págs. 24-26. "The RSTS Professional Magazine", 1 de junio de 1983, vol. 5, n.º 3, ISSN 0745-2888
  12. Mayfield, M: "RSTS/E Monitor Internals", páginas 1–9.
  13. Mayfield, M.: "RSTS/E Monitor Internals", páginas 1–4.
  14. Marbach, C.: "RSTS y el Micro-11", pág. 50. "The VAX/RSTS Professional Magazine", 1 de agosto de 1983, vol. 5, n.º 4, ISSN 0745-2888
  15. Romanello, G.: "A Preview of RSTS/E Version 9.0", p. 28. "The VAX/RSTS Professional Magazine", 1 de diciembre de 1984, vol. 6, n.º 6, ISSN 0746-1909
  16. "PDP-11 RSX RT RSTS Emulator Osprey Charon" . archive.org . 13 de agosto de 2006. Archivado del original el 13 de agosto de 2006. Consultado el 26 de diciembre de 2016 .
  17. Véase, por ejemplo, esta imagen de las cintas de instalación de RSTS/E 7.0: http://simh.trailing-edge.com/kits/rstsv7gen.tar.Z
  18. Greenspon, M.: "La bola de cristal de la RSTS – Parte 3", pág. 12. The RSTS Professional Magazine , 1 de octubre de 1982, vol. 4, n.º 5
  19. 1 2 Joshi, Prem; Delacroix, Jacques (septiembre de 1984). "Nueva flexibilidad para múltiples VAX/VMS". HARDCOPY . págs. 64–68 . 
  20. "Burton Grad Associates" (PDF) . 27 de marzo de 1986. SIMACS (Sistema de control de acceso múltiple de System Industries)
  21. 1 2 "RSTS 80th Birthday" . silverware.co.uk . Consultado el 26 de diciembre de 2016 .
  22. "Las memorias de Teresa Green sobre DELTA" .
  23. "Productivity Aid reemplaza el código Cobol de la Oficina" . Computerworld : 40. 18 de julio de 1983. Consultado el 26 de diciembre de 2011. User -11 [...] un sistema de gestión de datos para (DEC) PDP-11 que se ejecuta bajo el sistema operativo RSTS/E [...]
  • Elvira en el Real Instituto de Tecnología de Estocolmo, Suecia.
  • Sitio web para aficionados de RSTS
  • Página web de SimH
  • Bruja de Wofford
Obtenido de " https://en.wikipedia.org/w/index.php?title=RSTS/E&oldid=1339286102#SIMACS "