RSTS / E - RSTS/E

RSTS
Rsts Spike.png
Rstse-10 1.png
RSTS / E 10.1, ejecutando DCL CLI
Desarrollador Digital Equipment Corporation , más tarde Mentec
Escrito en Lenguaje ensamblador MACRO-11 , BASIC-PLUS -2, DCL , Forth
Estado de trabajo Sin desarrollo, todavía disponible
Modelo fuente Fuente cerrada
Versión inicial 1970 ; Hace 51 años ( 1970 )
Último lanzamiento RSTS V10.1 / 1992 ; Hace 29 años ( 1992 )
Disponible en inglés
Método de actualización Parches binarios, binarios completos
Gerente de empaquetación RESPALDO
Plataformas PDP-11
Tipo de grano Sistemas operativos de tiempo compartido

Interfaz de usuario predeterminada
Interfaz de línea de comandos : DCL (lenguaje de comandos digitales)
Licencia Propiedad
Precedido por TSS / 8

RSTS ( / r ɪ s t ɪ s / ) es un multi-usuario de tiempo compartido sistema operativo , inicialmente desarrollado por Evans Griffiths & Hart de Boston, y adquirida por Digital Equipment Corporation (DEC, ahora parte de Hewlett Packard ) para la Serie PDP-11 de miniordenadores 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 publicó en septiembre de 1992. Por lo general, RSTS-11 y RSTS / E se denominan "RSTS" y este artículo generalmente utilizará la forma más corta.

Siglas y abreviaturas

  • BTSS (Basic Time Sharing System, nunca comercializado): el primer nombre de RSTS.
  • CCL ( lenguaje de comandos conciso ): equivalente a un comando para ejecutar un programa guardado en el intérprete de línea de comandos .
  • CIL (Core Image Library): similar a una biblioteca compartida (.so) en Linux o .DLL en Microsoft Windows .
  • CILUS (Core Image Library Update and Save) - Programa para manipular un archivo CIL.
  • CLI (Intérprete de línea de comandos): consulte Interfaz de línea de comandos .
  • CUSP (programas del sistema de uso común): aplicaciones de administración del sistema como el Administrador de tareas o el Editor del registro en Microsoft Windows . En RSTS-11, los CUSP se escribieron en BASIC-Plus al igual que los programas de usuario.
  • DCL (Lenguaje de comandos digitales): consulte Lenguaje de comandos DIGITAL .
  • DTR (DATATRIEVE) - lenguaje de programación
  • FIP (procesamiento de información de archivos): área residente para emitir solicitudes de archivos
  • FIRQB (Bloque de cola de solicitudes de información de archivos): una estructura de datos que contiene información sobre las solicitudes de archivos.
  • KBM (Monitor de teclado): análogo al intérprete de línea de comandos.
  • LAT (Transporte de área local): predecesor digital de TCP / IP
  • MFD (directorio de archivos maestro): directorio raíz del sistema de archivos.
  • PBS (Servicios de impresión por lotes)
  • PIP ( Programa de intercambio de periféricos )
  • PPN (Project Programmer Number): análogo a GID y UID en Unix.
  • RDC (Consola de diagnóstico remoto): un panel frontal de reemplazo para un PDP-11 que usaba una conexión en serie al terminal de la consola o un módem en lugar de luces e interruptores de palanca para controlar la CPU.
  • RSTS-11 (Sistema de tiempo compartido de recursos compartidos): el primer nombre de producto comercial para RSTS
  • RSTS / E (Sistema de tiempo compartido de recursos compartidos ampliado): la implementación actual de RSTS.
  • RTS (Run Time System): segmento de código de solo lectura proporcionado por el proveedor que se asignaría al extremo superior de un espacio de direcciones de palabras de 32 K y 16 bits que un programa de usuario usaría para interactuar con el sistema operativo. Solo se cargaría una copia de un RTS en la RAM, pero se asignaría al espacio de direcciones de cualquier programa de usuario que lo requiriera. En esencia, código reentrante compartido, para reducir los requisitos de RAM, al compartir el código entre cualquier programa que lo requiera.
  • RTSS (Resource Time Sharing System, nunca comercializado): el segundo nombre de RSTS
  • SATT (Storage Allocation Truth Table) una serie de bloques de 512 KB en cada disco que indica si el bloque o clúster de todo el disco se asignó en el disco. Bit a bit, un 1 indicaba que un clúster estaba en uso; un 0 indica que no estaba en uso.
  • SIL (Guardar biblioteca de imágenes): el nuevo nombre para un archivo CIL después de que DEC comenzó a vender sistemas PDP-11 con toda la memoria de semiconductores y sin memoria de núcleo magnético , como el PDP-11T55.
  • SILUS (Guardar, actualizar y guardar la biblioteca de imágenes): el nuevo nombre de CILUS después de que los archivos CIL se renombraron como archivos SIL.
  • UFD (directorio de archivos de usuario): directorio de inicio de un usuario. Directorio raíz de un sistema de archivos.
  • 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

1970

El núcleo de RSTS fue programado en el lenguaje ensamblador MACRO-11 , compilado e instalado en un disco usando el programa CILUS , ejecutándose en un sistema operativo DOS-11 . RSTS arrancó en una versión extendida del lenguaje de programación BASIC que DEC llamó " BASIC-PLUS ". Todo el software del sistema CUSPS para el sistema operativo, incluidos los programas de contabilidad de recursos, inicio de sesión, cierre de sesión y administración del sistema, se escribieron en BASIC-PLUS. De 1970 a 1973, RSTS se ejecutó en solo 56K bytes de memoria de núcleo magnético (64 kilobytes incluido el espacio de E / S mapeado en memoria ). Esto permitiría que un sistema tuviera hasta 16 terminales con un máximo de 17 trabajos. El tamaño máximo del programa fue de 16 KB. A fines de 1973, DEC estimó que había 150 sistemas con licencia que ejecutaban RSTS.

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

En 1975, el soporte de administración de memoria se actualizó nuevamente para el PDP-11/70 direccionable de 22 bits más nuevo . Los sistemas RSTS ahora podrían expandirse para usar hasta dos megabytes de memoria ejecutando hasta 63 trabajos. Se introdujeron los conceptos de RTS y CCL , aunque tuvieron que compilarse durante " SYSGEN ". Se introdujo el servicio de terminales múltiples que permitiría que un solo trabajo pudiera 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 hay 1200 sistemas con licencia.

En 1977, el proceso de instalación de RSTS ya no dependía de DOS-11. El kernel de RSTS ahora podría compilarse bajo RT-11 RTS , formatearse como un archivo de kernel con RT-11 SILUS y copiarse en el sistema u otros discos, mientras la computadora compartía el tiempo. El BASIC-PLUS RTS (así como RT-11, RSX-11 , TECO y los RTS de terceros ) se ejecutaron como procesos de modo de usuario, independientemente del kernel de RSTS. Un administrador de sistemas ahora podría decidir durante la fase de arranque qué RTS ejecutar como el KBM predeterminado del sistema . A estas alturas, había unos 3.100 sistemas con licencia.

En 1978, se incluyó la actualización final de administración de memoria para todas las máquinas que podían admitir direccionamiento de 22 bits. RSTS ahora podría usar la cantidad máxima de memoria disponible para un PDP-11 (4 megabytes). También se incluyó soporte para el modo SUPERVISOR que convirtió a RSTS en el primer sistema operativo DEC con esta capacidad. También se apoyó DECnet , así como diagnósticos remotos de técnicos de servicio de campo en el RDC en Colorado Springs, Colorado (un servicio de suscripción de DEC). Al final de la década , hay más de 5,000 sistemas con licencia.

Decenio de 1980

En 1981, el soporte para instrucciones separadas y espacio de datos para usuarios con máquinas Unibus ( PDP-11/44 , PDP-11/45, PDP-11/55 y PDP-11/70) proporcionó una extensión a las limitaciones de memoria de un programa individual. . La compilación de programas para usar instrucciones y espacio de datos separados pronto proporcionaría un programa de hasta 64 kB para instrucciones y hasta 64 kB para almacenar datos en búfer. Se incluye DCL RTS, así como soporte para la revisión más reciente de DECnet III.

En 1983, con un estimado de 15.000 máquinas DEC ejecutando RSTS / E, V8.0-06 incluía soporte para el PDP-11 de 18 bits más pequeño vendido por DEC (el MicroPDP-11 ). En esta distribución se incluyeron un kernel y CUSPS pregenerados 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 necesitaban comprar la versión completa si tenían la necesidad de generar su propio kernel. El sistema de archivos se actualizó y recibió la designación RSTS Directory Structure 1 (RDS1). Todas las versiones anteriores del sistema de archivos RSTS reciben la designación RDS0. El sistema de archivos más nuevo está diseñado para admitir más de 1700 cuentas de usuario. "Ahora se cree que hay más de 10.000 usuarios con licencia y al menos un número igual de usuarios sin licencia".

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 funciones de cuenta de usuario. Las contraseñas ahora 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 que no era de usuario en el proyecto (grupo) cero (la designación es [0,1]), y todas las cuentas en el proyecto número 1 tenían privilegios (no a diferencia de la cuenta raíz en sistemas Unix ). Después del lanzamiento de la Versión 9, se pueden crear cuentas adicionales para el proyecto cero y se pueden 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 le dieron a cualquier usuario conectado a un terminal a través de un servidor DEC la capacidad de comunicarse con una máquina RSTS, tan fácilmente como lo podrían hacer con un VAX que ejecuta VMS . La estructura de comando DCL entre los sistemas operativos DEC también contribuyó a la apariencia familiar:

"Este no es solo otro pseudo procesador de archivos de comando; se basa en funciones de VMS. El procesador de archivos de comando DCL es totalmente compatible e integrado en RSTS a través de cambios extensos en DCL y el monitor. DCL ejecuta archivos de comando como parte de su trabajo; por lo tanto , no es necesario ningún pseudo teclado o forzar comandos a su teclado (como con ATPK) ".

Decenio de 1990

En 1994, DEC vendió la mayor parte de su negocio de software PDP-11 a Mentec. Digital continuó apoyando a sus propios clientes de PDP-11 durante un breve período con la ayuda del personal de Mentec.

En 1997, Digital y Mentec otorgaron una licencia sin costo a cualquiera que desee utilizar RSTS 9.6 o anterior con fines no comerciales o de pasatiempo. La licencia solo es válida en el emulador SIMH PDP-11. La licencia también cubre algunos otros sistemas operativos digitales. Se incluyen copias de la licencia en el kit de software autorizado disponible para descargar en el sitio web oficial del emulador SIMH .

Documentación

El complemento 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 anillos (conocidas colectivamente como "La pared naranja"), una carpeta pequeña de tres anillos 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 anillos contiene:

Ejemplo de un estante para documentos RSTS / E

Volumen 1: Información general e instalación

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

Volumen 2: Gestión del sistema

  • Guía del administrador del sistema

Volumen 3: Uso del sistema

  • Guía del usuario del sistema
  • Guía para escribir procedimientos de comandos

Volumen 4: Utilidades

  • Manual de referencia de utilidades
  • Introducción al editor EDT
  • ORDENAR / FUSIONAR Guía del usuario
  • Guía del usuario de RUNOFF

Volumen 4A: Utilidades

  • Manual del editor EDT


Volumen 4B: Utilidades

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

Volumen 5: BASIC-PLUS

  • Manual de idiomas BASIC-PLUS

Volumen 6: Programación del sistema

  • Manual de programación

Volumen 7: Programación MACRO

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

Volumen 7A: Programación MACRO

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

Volumen 8: RMS

  • RMS-11: Introducción
  • Guía del usuario de RMS11
  • Utilidades RMS-11

Operación

Comunicación

RSTS utiliza una conexión de comunicación en serie para interactuar con el operador. La conexión puede ser una 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 que utilice DECnet o LAT. Se podrían conectar hasta 128 terminales (usando el servicio de terminales múltiples) a un sistema RSTS, ejecutándose con un máximo de 63 trabajos (dependiendo del procesador que se esté usando, la cantidad de memoria y espacio en disco, y la carga del sistema). La mayoría de los sistemas RSTS no tenían tantos terminales. Los usuarios también pueden enviar trabajos para que se ejecuten en modo por lotes . También había un programa por lotes llamado "ATPK" que permitía a los usuarios ejecutar una serie de comandos en un terminal imaginario (pseudo-terminal) en modo semi-interactivo similar a los comandos por lotes en MS-DOS .

Iniciar sesión [Proyecto, Programador]

Usuarios conectados al sistema escribiendo el comando LOGIN (o HELLO) en un terminal cerrado y presionando regresar. En realidad, al escribir cualquier comando en una terminal desconectada, simplemente se inició el programa LOGIN que luego interpretó el comando. Si era uno de los comandos que un usuario que aún no ha iniciado sesión ("Cierre de sesión") podía usar, entonces el programa asociado para ese comando estaba ENCADENADO; de lo contrario, se imprimió el mensaje "Por favor, diga HOLA". en la terminal. Antes de la Versión 9, un usuario también podía iniciar un inicio de sesión de 1 línea, sin embargo, esto dejaba la contraseña del usuario en la pantalla para que cualquier otra persona en la sala pudiera verla (ejemplos a continuación):

Inicio de sesión y cierre de sesión RSTS / E con BASIC como RTS predeterminado
Bye

HELLO 1,2;SECRET

Ready

o

I 1,2;SECRET

Ready

o

LOGIN 1,2;SECRET

Ready

Se podría determinar el estado de un terminal a partir de las respuestas de los comandos, impresas por el intérprete de comandos. Un usuario que ha iniciado sesión y que se comunica con el BASIC-PLUS KBM recibe el mensaje "Listo" y un usuario que está desconectado recibe el mensaje "Adiós".

Un usuario iniciaría sesión proporcionando su número PPN y contraseña. Los números de usuario consistían en un número de proyecto (esto sería el equivalente a un número de grupo en Unix), una coma y un número de programador. Ambos números estaban en el rango de 0 a 254, con excepciones especiales. Al especificar una cuenta, el proyecto y el número de programador se incluyeron entre paréntesis. Un número de usuario típico podría ser [10,5] (proyecto 10, programador 5), [2,146], [254,31] o [200,220], etc. Cuando un usuario estaba ejecutando un programa del sistema mientras estaba desconectado (porque el el administrador del sistema lo había habilitado) su número PPN era [0,0], y aparecería en SYSTAT CUSP como **, **. Por lo tanto, ese no es un número de cuenta válido.

Cuentas de usuario y del sistema

En todos los proyectos, el programador número 0 generalmente se reservaba como una cuenta de grupo, ya que podía ser referenciado por el símbolo especial #. Si el número de usuario de uno fuera [20,103], una referencia a un nombre de archivo que comience con "#" se referirá a un archivo almacenado en la cuenta del número de usuario [20,0]. Esta característica sería útil en entornos educativos, ya que el programador número 0 podría emitirse al instructor de una clase y los estudiantes individuales podrían tener cuentas con el mismo número de proyecto, y el instructor podría almacenar en su cuenta archivos marcados como compartidos solo para ese número de proyecto (que serían estudiantes en esa clase solamente, y no en otra).

Existían dos clases especiales de números de proyectos. El número de proyecto 0 está generalmente reservado para el software del sistema, y ​​antes de la Versión 9 solo había 1 cuenta de proyecto 0 (denominada [0,1]). Los programadores del proyecto número 1 eran cuentas privilegiadas, equivalentes a la cuenta única "raíz" en los sistemas Unix, excepto que los números de cuenta [1,0] a [1,254] ​​eran todas cuentas privilegiadas. Después del lanzamiento de la Versión 9, el administrador de sistemas podría otorgar privilegios específicos a cualquier cuenta.

La cuenta [0,1] se usa para almacenar el archivo del sistema operativo en sí, todos los sistemas de bibliotecas en 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]
 Name .Ext    Size   Prot    Date       SY:[0,1]
BADB  .SYS       0P  < 63> 06-Jun-98         List of bad blocks
SATT  .SYS       3CP < 63> 06-Jun-98         Bitmap of allocated disk storage
INIT  .SYS     419P  < 40> 06-Jun-98         Operating system loader program
ERR   .ERR      16CP < 40> 06-Jun-98         System error messages
RSTS  .SIL     307CP < 60> 06-Jun-98         Operating system itself
BASIC .RTS      73CP < 60> 06-Jun-98         BASIC-PLUS run time system
RT11  .RTS      20C  < 60> 06-Jun-98         RT-11 run time system
SWAP  .SYS    1024CP < 63> 06-Jun-98         System swap file
CRASH .SYS      35CP < 63> 06-Jun-98         System crash dump
RSX   .RTS      16C  < 60> 23-Sep-79         RSX-11 run-time system
TECO  .RTS      39C  < 60> 24-Sep-79         TECO text editor

Total of 1952 blocks in 11 files in SY:[0,1]

(Editor's note: This directory listing is previous to Version 9.)

El comando DIR es un CCL instalado equivalente a un comando RUN para el 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 se muestran después de cada archivo representan su tamaño en bloques de disco, un bloque de 512 bytes o 1/2 kilobyte (K). "C" indica que el archivo es contiguo (se almacena como un archivo sin separarse en partes, similar a los archivos en un sistema Microsoft Windows después de que se ha desfragmentado una unidad ), mientras que "P" indica que está especialmente protegido (no se puede eliminar, incluso por un usuario privilegiado, a menos que el bit P se borre mediante un comando separado). Los números entre paréntesis (como "<40>") representan las protecciones para el archivo, que siempre se muestra en 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 alterado por otro usuario, y si el archivo puede ser ejecutado por un usuario normal dando ellos 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 es equivalente a un archivo privado, el código 63 es un archivo privado que no se puede eliminar y el 40 es un archivo público.

Los archivos de la biblioteca se guardan en la cuenta [1,1] y generalmente se hace referencia a ellos con el nombre lógico LB :. La cuenta [1,2] es la cuenta de inicio del sistema (muy parecido a un sistema Unix que se inicia bajo la raíz), y contiene el sistema CUSPS al que se podría hacer referencia anteponiendo el nombre CUSP con un signo de dólar ($). "!" 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 conectado con esa cuenta puede ejecutar la llamada al sistema POKE para poner valores en cualquier memoria del sistema. Por tanto, el número de cuenta [1,1] es el equivalente más cercano a "root" en los sistemas basados ​​en Unix.

Entornos de tiempo de ejecución

Una de las características de RSTS es el medio para la ejecución de programas y el entorno utilizado para ejecutarlos. Los diversos entornos permitieron programar en BASIC-PLUS, el BASIC-Plus-2 mejorado y en lenguajes de programación más tradicionales como COBOL y FORTRAN . Estos entornos estaban separados entre sí, de modo que se podía iniciar un programa desde un entorno y el sistema cambiaba a un entorno diferente mientras se ejecutaba un programa diferente, y luego devolvía al usuario al entorno original con el que comenzó. Estos entornos se denominaron RTS . El término para la interfaz de línea de comandos que tenían la mayoría de estos RTS era KBM . Antes de la Versión 9, el administrador de sistemas necesitaba definir con qué RTS comenzaría el sistema, y ​​tenía que ser uno que ejecutara programas compilados.

Un administrador de sistemas también puede instalar comandos CCL especiales , que tienen prioridad sobre todos los comandos KBM (con la excepción de DCL ). Una CCL es análoga a un acceso directo a un programa en un sistema Windows o un enlace simbólico en sistemas basados ​​en Unix. Las CCL se instalan como un comando residente en la memoria durante el inicio o dinámicamente mientras el sistema está funcionando por el administrador del sistema (es decir, no es permanente como un archivo de disco).

Cuando está conectado, un usuario puede "CAMBIAR" a cualquiera de estos entornos, escribir declaraciones de lenguaje en el lenguaje de programación BASIC-PLUS, emitir comandos RUN a 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 kernel para incluir la opción de estado de una línea "Control-T" que podía decirle al usuario qué programa estaban ejecutando, bajo qué RTS estaba usando el programa, cuánta memoria ocupaba el programa, cuánto podía expandir y cuánta memoria estaba usando el RTS .

BASIC-PLUS

Los programas escritos en BASIC-PLUS se ejecutaron bajo el BASIC RTS , lo que les permitió hasta 32K bytes de memoria (de un total de 64K). Se interpretó el lenguaje, cada palabra clave diferente se convirtió internamente en un código de bytes único y las variables y los datos se indexaron y almacenaron por separado dentro del espacio de memoria. El formato de código de bytes interno se conocía como PCODE: cuando se emitió el comando interactivo SAVE, el BASIC Plus RTS simplemente guardaba el área de la memoria de trabajo en un archivo de disco con una extensión ".BAC". Aunque este formato no estaba documentado, dos estudiantes de ingeniería electrónica de la Universidad de Southampton en el Reino Unido ( Nick de Smith y David Garrod ) desarrollaron un descompilador que podía aplicar ingeniería inversa a los archivos BAC en su fuente BASIC Plus original, completo con números de línea originales y nombres de variables (ambos posteriormente trabajó para DEC). El resto de la memoria fue utilizado por el mismo BASIC RTS . Si uno escribiera programas en un lenguaje que permitiera verdaderos ejecutables binarios como BASIC-Plus-2, FORTRAN-IV o Macro Assembler, entonces la cantidad de memoria disponible sería 56K (8K asignados al RTS ). El mensaje estándar de BASIC-PLUS es la respuesta "Listo" (ejemplo):

new
New file name--HWORLD

Ready

10 Print "Hello World"
20 Input "Press Control-T for 1 line status: ";a$
30 End
run
HWORLD  10:17 PM        01-Jan-08
Hello World
Press Control-T for 1 line status: ?
1       KB0     HWORLD+BASIC    KB(0R)  2(16)K+14K      0.2(+0.0) +0

Ready

save

Ready

compile

Ready

DIR HWORLD.*/na/ex/si/pr
SY:[1,2]
HWORLD.BAS       1   < 60>
HWORLD.BAC       7C  <124>

Total of 8 blocks in 2 files in SY:[1,2]

Ready

DCL (lenguaje de comandos digitales)

A partir de la Versión 9, DCL se convirtió en el RTS de inicio principal aunque no tiene la capacidad de ejecutar programas binarios. Esto se hizo posible con el advenimiento del RSX RTS que desapareció (ver más abajo). DCL se incorporó a todas las versiones recientes de los sistemas operativos de DEC (RSX-11, RT-11, VMS y posterior OpenVMS ) para compatibilidad. El indicador DCL estándar es el signo de dólar "$" (ejemplo):

$ write 0 "Hello World, it is "+F$TIME()
Hello World, it is 01-Jan-08 10:20 PM
$ inquire p1 "Press Control-T for 1 line status:"
Press Control-T for 1 line status:
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)

Memory allocation table:
 Start   End  Length  Permanent   Temporary
   0K -   85K (  86K) MONITOR
  86K - 1737K (1652K)   (User)
1738K - 1747K (  10K)   (User)    DAPRES LIB
1748K - 1751K (   4K)   (User)    RMSRES LIB
1752K - 2043K ( 292K) ** XBUF **
2044K -  *** END ***
$

RSX (eXecutivo del sistema en tiempo real)

Los programas que se escribieron para RSX RTS , como COBOL, Macro Assembler o versiones posteriores de BASIC-Plus-2, podrían utilizar la cantidad máxima de memoria disponible para un programa binario (56K debido a los requisitos de un RTS que necesita los 8K superiores para usar por sí mismo). RSTS Versión 7 y posteriores permitieron que RSX RTS se incluyera en el kernel, haciéndolo "desaparecer" completamente del espacio de direcciones de usuario, permitiendo así 64K bytes de memoria para programas de usuario.

Los programas superaron las limitaciones de la cantidad de memoria disponible mediante el uso de bibliotecas (cuando está permitido), mediante complicadas estrategias de superposición o llamando a otros programas ("Encadenamiento") y pasándoles comandos 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 conectado como desconectado) es el signo ">" (o MCR "Monitorizar la rutina de la consola") (ejemplo):

>run
Please type HELLO
>HELLO 1,2;SECRET
>run
?What?
>help
Valid keyboard commands are:

ASSIGN    DISMOUNT  HELP      RUN     UNSAVE
BYE       EXIT      MOUNT     SHUTUP
DEASSIGN  HELLO     REASSIGN  SWITCH

>run CSPCOM
CSP>HWORLD=HWORLD
CSP>^Z
>RUN TKB
TKB>HWORLD=HWORLD,LB:CSPCOM.OLB/LB
TKB>//
>run HWORLD.TSK
Hello World
Press Control-T for 1 line status: ?
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 of 35 blocks in 4 files in SY:[1,2]

>

RT-11

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

.VERSION
Please type HELLO

.HELLO 1,2;SECRET

.VERSION
RT-11SJ V3-03; RSTS/E V8.0

.R PIP
*HWORLD.MAC=KB:
        .MCALL .TTYIN,.PRINT,.EXIT
HWORLD: .ASCII /Hello World/<15><12>
        .ASCIZ /Press Control-T for 1 line status:/
        .EVEN

Start:  .PRINT #HWORLD
        .TTYIN
        .EXIT
        .END    START
^Z
*^Z

.R MACRO
HWORLD=HWORLD
*^Z

.R LINK
*HWORLD=HWORLD
*^Z

.R HWORLD.SAV
Hello World
Press Control-T for 1 line status:
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 of 37 blocks in 6 files in SY:[1,2]

.

TECO (Editor de texto y corrector)

El propio 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 incorporado. El usuario iniciaría TECO (como cualquier otro programa) ejecutando un programa TECO (TECO.TEC). TECO y el afín QEDIT 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 (especificación de archivo MAKE), editar un archivo (especificación de archivo TECO) o ejecutar un programa TECO (especificación de archivo MUNG, datos). El siguiente programa es un ejemplo de cómo se podría usar TECO para calcular pi (actualmente establecido en 20 dígitos):

Ready

run TECO
*GZ0J\UNQN"E 20UN '
BUH BUV HK
QN< J BUQ QN*10/3UI
QI< \ +2*10+(QQ*QI)UA
B L K 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

Ready

Huevos de pascua de RSTS

Inicio del sistema (INIT.SYS)

Si un usuario escribía un comando no reconocido en el inicio del sistema en el indicador "Option:" de INIT.SYS, la utilidad de inicio, se mostraba el mensaje "Escriba 'HELP' para obtener ayuda". Si el usuario posteriormente escribió 'AYUDA' (incluidas las comillas) en el mensaje, la respuesta fue "Qué divertido, de todos modos ..." seguido del mensaje de ayuda real.

Luces de consola PDP-11

Una de las características agradables que un administrador del sistema podía compilar en el kernel era un patrón de pantalla giratorio que daba la ilusión de que dos serpientes se perseguían entre sí alrededor de las luces de la consola. El kernel normal daría la ilusión de 1 serpiente moviéndose de derecha a izquierda en las luces de datos en la parte inferior. Si el administrador del sistema también compiló el módulo de objeto "luces", el usuario vería una serpiente adicional moviéndose de izquierda a derecha en las luces de dirección en la parte superior. Esto se logró mediante el uso del 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 parecería como si 2 serpientes estuvieran jugando al pollo y se encontraran entre sí en el centro de la consola.

Huevo de pascua teco

El comando 'hacer' permitía al usuario crear un archivo de texto e ingresar automáticamente al editor de texto TECO. Si un usuario escribía "hacer el amor", el sistema creaba un archivo llamado "amor" y volvía a escribir "¿No es guerra?"

Abrir lista de archivos

Kevin Herbert, que más tarde trabajó para DEC, agregó una función indocumentada en los años 90 para permitir que un usuario ingresara ^ F para ver una lista de archivos abiertos que tenía el proceso del usuario, completa con bloques en uso y tamaños de archivo.

Cita estrella

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

Complementos de otras empresas

System Industries compró la única licencia de origen para RSTS para implementar una mejora llamadaSIMACS (ACceS de máquina simultánea), que permitió que su controlador de disco especial estableciera una bandera de semáforo para el acceso al disco, permitiendo múltiples ESCRITURAS a los mismos archivos en un sistema RSTS donde el disco es compartido por múltiples sistemas RSTS PDP-11. Esta característica se implementó en los controladores de System Industries que estaban conectados a muchas computadoras DEC y diseñados por el Dr. Albert Chu mientras trabajaba en System Industries.

La principal innovación fue el uso de un semáforo , una bandera para indicar qué procesador, mediante el intercambio cooperativo, tiene acceso de escritura exclusivo.

Esto requirió muchos cambios en la forma en que el sistema operativo RSTS logró el acceso a los discos. El sistema FIPS (Sistema de procesamiento de información de archivos), que manejaba el acceso de E / S, era de un solo subproceso en RSTS. Para permitir que el acceso a un disco se detenga mientras otra máquina tenía acceso activo a un bloque, se requería que el FIPS pudiera agotar el tiempo de espera de una solicitud, ir a la siguiente solicitud y "regresar" a la que se detuvo en forma rotatoria. El código para permitir esto fue escrito por Philip Hunt mientras trabajaba en System Industries, en Milipitas, CA. Finalmente trabajó para Digital Equipment en el área de Nueva Inglaterra a finales de los 80 y principios de los 90.

SIMACS no se limitó a la línea de productos PDP-11 ; VAXen también podría usarlo.

Emulaciones RSTS

ROSS / V

En 1981, Evans Griffiths & Hart comercializan la ROSS / V producto. ROSS / V permitió a todos los procesos de modo de usuario de RSTS ( CUSPS , RTS sy programas de usuario) la capacidad de ejecutarse sin modificaciones bajo VMS en las máquinas VAX-11. El código para esta emulación manejó todos los procesos del kernel que normalmente serían manejados por un kernel RSTS ejecutándose en un PDP-11. Evans Griffiths & Hart, Inc. subcontrató el lenguaje BASIC-PLUS original que se ha extendido a todas las versiones de RSTS por un precio fijo de $ 10,500.

Otros emuladores de PDP-11

RSTS y sus aplicaciones pueden ejecutarse bajo cualquier emulador PDP-11. Para obtener más información, consulte PDP-11

Mascota RSTS

Spike y Albert

Versiones

RSTS originalmente se llamó BTSS (Basic Time Sharing System). Antes del envío comenzó en realidad, el nombre fue cambiado de BTS a RTSS porque un producto llamado BTS ya estaba siendo comercializado por Honeywell . Un simple error de escritura cambió el nombre de RTSS a RSTS.

Versión Fecha de lanzamiento Notas
1 Nunca lanzado
2A-19 1971 Instalado en Carleton College y Seattle Pacific College.
2B De junio de 1971 Instalado en la Asociación de Auxiliares Escolares de Delaware.
2C Octubre de 1971 Soporte de software mejorado (registro de E / S)
3A-19 Enero de 1972
3B Mayo de 1972
3C Junio ​​1972 Soporte de software mejorado (modo ACTUALIZAR)
4A-12 Octubre de 1972 Compatible con nuevo hardware.
4B Julio de 1975 Una versión parcheada de V4A sin características nuevas

La adición de un nuevo soporte de administración de memoria y la capacidad de instalar más memoria en los modelos PDP-11/40 y PDP-11/45 llevaron a otro cambio de nombre: RSTS-11 ahora se convirtió en RSTS / E.

Versión Fecha de lanzamiento Notas
5A-21 Julio 1973 Extensiones de gestión de memoria de 64KB a 256KB.
5B-24 Noviembre de 1974 Se introdujeron varios archivos SWAP, RTS y CCL.
5C-01 Marzo de 1975 Una versión parcheada de V5B sin nuevas funciones.
6A-02 Agosto de 1975 Nuevo hardware, direccionamiento de 22 bits (2 MB), 63 trabajos.
6B-02 Febrero de 1977 Nuevo hardware, SYSGEN bajo RT-11, CCL en tiempo de ejecución.
6C-03 Febrero de 1978 Compatible con DECnet Phase II, DTR, DIBOL. Modo SUPERVISOR.
7.0 Agosto 1978 Nuevo hardware, (4 MB), soporte RDC.
7.1 Febrero de 1981 Instrucción en modo kernel y soporte de espacio de datos, DECnet Phase III.
7.2 Agosto de 1982 Nuevo hardware (unidades UDA50).
8.0-06 Abril de 1983 Nuevo hardware (MicroPDP-11).
9.0-14 Mayo de 1985 Nuevo hardware, DCL predeterminado, PBS, múltiples privilegios, contraseñas hash, nueva utilidad de copia de seguridad y Stardate.
9.1-05 Octubre de 1985 Soporte de hardware mejorado, FIP multiproceso, ÍNDICE DE CARGA.
9.2-10 Junio ​​de 1986 Compatible con nuevo hardware.
9.3-20 Enero de 1987 Soporte de hardware mejorado, DECnet Phase IV.
9.4 Julio de 1987 Mejoras en el nuevo hardware, el programador y el servicio de terminal.
9.5-08 Diciembre de 1987 El tamaño del clúster aumentó a 64, se agregó BACKUP / DIR.
9,6 Septiembre de 1988 LAT support, HELP SPIKE.
9,7 Julio de 1989 Nuevo hardware, DV0: en tiempo de ejecución, ANSI PDP-11C disponible.
10.0 Mayo de 1990 Historial de la línea de comandos en TTDRV.
10.1 Septiembre de 1992 Correcciones del año 2000.

Clones en la URSS

Aplicaciones

Informáticos oficinas veces desplegados por el usuario 11 para RSTS / E basado en la gestión de datos .

Ver también

Referencias

enlaces externos