GEORGE fue el nombre que se le dio a una serie de sistemas operativos lanzados por International Computers and Tabulators (ICT) en la década de 1960, para la serie de computadoras ICT 1900 . Estos incluían GEORGE 1 , GEORGE 2 , GEORGE 3 y GEORGE 4 .
Desarrollador | Computadoras y tabuladores internacionales |
---|---|
Escrito en | Lenguaje ensamblador |
Estado de trabajo | Histórico |
Modelo fuente | Fuente disponible para licenciatarios. |
Versión inicial | 1960 |
Último lanzamiento | 8,67 / 1985 |
Disponible en | inglés |
Plataformas | Serie de computadoras ICT 1900 |
Tipo de grano | Monolítico |
Influenciado por | Multics |
Interfaz de usuario predeterminada | CLI (terminal de modo de teletipo o bloque) |
Licencia | Software comercial patentado |
Inicialmente, las máquinas de la serie 1900, como la Ferranti-Packard 6000 en la que se basaban, ejecutaban un sistema operativo simple conocido como ejecutivo que permitía al operador del sistema cargar y ejecutar programas desde una consola de sistema basada en Teletype Model 33 ASR .
En diciembre de 1964, ICT estableció una rama de sistemas operativos para desarrollar un nuevo sistema operativo para 1906/7. Inicialmente, la sucursal contaba con personal que se liberaba al final del trabajo en el sistema operativo OMP para Ferranti Orion . El diseño inicial del nuevo sistema, llamado George en honor a George E. Felton [1], jefe de la División de Programación Básica, se basó en ideas de Orion y el sistema de spooling de la computadora Atlas . [2]
(En público se afirmó que George representaba el entorno organizacional general, pero fuentes contemporáneas dicen que era un trasfondo ). [3]
En julio de 1965, un equipo de ICT estuvo presente en un seminario en NPL describiendo el sistema operativo CTSS desarrollado para el Proyecto MAC del MIT . Decidieron que las TIC necesitarían proporcionar instalaciones de acceso múltiple , conocidas por las TIC como MOP, "Procesamiento múltiple en línea". En noviembre de 1965, HP Goodman , jefe de la rama de sistemas operativos, asistió a la Conferencia Conjunta de Computación de Otoño en Las Vegas, donde se describieron inicialmente los planes para Multics . [4] Algunas de las características de Multics discutidas influyeron en el desarrollo futuro de George, notablemente el almacén de archivos estructurado en árbol.
Hacia fines de 1965, el marketing de las TIC solicitó que se pusiera a disposición rápidamente un sistema operativo más simple, especialmente para los miembros más pequeños de la gama. Se decidió que dos sistemas más pequeños, conocidos como George 1 y George 2, se lanzarían rápidamente, y el sistema operativo más grande pasó a llamarse George 3.
GEORGE 1 y 2
George 1 era un sistema de procesamiento por lotes simple . Las descripciones de los trabajos se leían desde tarjetas o cinta de papel que controlaba la carga y ejecución de programas, ya sea cargados desde tarjetas o cinta de papel o cinta magnética. El lenguaje de control de trabajos permitió la definición de los periféricos y archivos que se utilizarían y el manejo de las condiciones de excepción. La descripción del trabajo se verificaría en busca de errores antes de ejecutar el trabajo. George utilizó las facilidades del programa de confianza proporcionadas por Executive para ejecutar los programas de usuario.
George 2 agregó el concepto de manejo periférico fuera de línea ( spooling ). Varios módulos diferentes, que se ejecutan en paralelo, permitieron la superposición de operaciones de entrada, procesamiento y salida:
- Los trabajos se leían desde tarjetas o cintas de papel hasta archivos temporales en discos magnéticos o cintas mediante un módulo de entrada.
- Un módulo central ejecutó los programas de usuario, tomando la entrada de los archivos de entrada temporales y escribiendo la salida del programa en archivos temporales.
- Un módulo de salida escribió los archivos de salida temporales en impresoras físicas y perforadoras.
- También estaba disponible un módulo para ingresar trabajos desde estaciones de ingreso de trabajos remotas , la salida del trabajo se podía imprimir en la impresora remota.
Si la instalación fuera lo suficientemente grande, se podrían ejecutar varias copias del módulo central, lo que permitiría procesar varios trabajos en paralelo.
El lenguaje de control de trabajos de George 2 permitía el uso de macros almacenadas con funciones condicionales.
George 2 no proporcionó ningún sistema de archivos, el sistema y los programas de usuario se basaron en las facilidades proporcionadas por el ejecutivo . Se accedía a los archivos en el disco con nombres únicos de 12 caracteres y no se proporcionó ninguna seguridad más que un bit de "no borrar".
MINIMOP podría ejecutarse simultáneamente con GEORGE 2 en la misma máquina, para proporcionar facilidades de tiempo compartido en línea.
Ejemplo de trabajo por lotes de George 2
Aquí hay un lote de ejemplo, algo artificial, para George 2:
- El lote comienza con una descripción del trabajo que especifica un nombre de trabajo , el código de cuenta utilizado por George para la facturación y un nombre de usuario :
PLAN DE TRABAJO 4JOB, 30174, BRIAN
- El trabajo primero carga el programa #XPLT desde un archivo de disco llamado PROGRAM COMP (XPLT es el ensamblador ). El documento SOURCE se utiliza como entrada para #XPLT en un lector de tarjetas virtual CR0 .
EN ED (PROGRAMA COMP)CARGAR #XPLTEN CR0 (FUENTE)INTRODUZCA 1
- Si #XPLT termina con el mensaje DETENER OK , el trabajo continúa en la etiqueta 1A ; de lo contrario, el trabajo muestra ERRORES DE COMPILACIÓN y salta a 5END .
AL HALTED OK, VAYA A 1AMOSTRAR 'ERRORES DE COMPILACIÓN'IR A 5END
- En la etiqueta 1A, el programa #XPCK se carga y se ejecuta con un documento en línea disponible en su lector de tarjetas virtual. (XPCK es el enlazador o "consolidador" en la terminología de ICL). (El documento en línea es el texto entre la línea IN CR0 / JD y el terminador ??? * ).
1A EN ED (PROGRAMA COMP)CARGAR #XPCKEN CR0 / JD* EN ED (SEMICOMPILADO)* OUT ED (PRUEBA DE PROGRAMA)*LISTA??? *INTRODUZCA 1EN ELIMINADO HH, VAYA A 2AMOSTRAR 'ERRORES DE CONSOLIDACIÓN'IR A 5END
- Si #XPCK finaliza sin errores, se ejecuta el programa #HWLD .
2A EN ED (PRUEBA DE PROGRAMA)CARGA #HWLDENTRAR 05 FIN FIN****
- Una vez que se lee el documento de origen del trabajo, este se utilizará como entrada para el trabajo.
FUENTE DOCPROG (HWLD)DIRECCIÓN (LISTA, OBJETO)OUTE (SEMICOMPILADO (0))FSM (HWLD)PLAN (CR)#PRO HWLD40 / TEST#BAJOMENSAJE 12 HOLA MUNDO#PRO#ENT 0 DISTY '11 / MESS ' DEL 2HOK#FINALENDPROG****
- Finalmente se señala el final del lote. En este punto, todos los trabajos del lote se ejecutarán en orden.
- Toda la salida del lote se imprimirá en la impresora del sistema.
LOTE FINAL
En una aplicación real el trabajo probablemente utiliza un almacenado macro y ser mucho más simple, este ejemplo se ha escrito a cabo escritura a mano en un esfuerzo para mostrar algunas de las características de la JCL .
GEORGE 3 y 4
GEORGE 3 [5] fue la versión principal de la serie del sistema operativo para las máquinas más grandes de la serie 1900. Inicialmente fue lanzado para 1906/7; finalmente estuvo disponible para modelos hasta el 1902T. En contraste con George 1 y 2 que se ejecutaban como programas en modo de usuario bajo la dirección ejecutiva, George 3 era un sistema operativo completo, dejando solo el manejo de interrupciones y periféricos de bajo nivel a una versión reducida del ejecutivo.
George 3 se implementó como una pequeña parte residente en la memoria y una colección de capítulos ( superposiciones ) que se cargaron y eliminaron de la memoria según fuera necesario. Los capítulos eran estrictamente independientes de la ubicación, lo que permitía el mejor uso de la memoria. Internamente, George utilizó la multitarea cooperativa ; los cambios de contexto pueden tener lugar en cualquier cambio de capítulo (llamada de un capítulo a otro), o en otros lugares especificados en el código. El código a nivel de usuario se ejecutó mediante multitarea preventiva ; los cambios de contexto fueron forzados en las operaciones de E / S o en los tics del reloj. [6]
George fue escrito en un ensamblador especial, GIN (George INput), que tenía una compilación condicional y una macro facilidades más ricas que el ensamblador PLAN estándar. El código utilizó mucho las macros para reducir el esfuerzo de programar un sistema tan grande en lenguaje ensamblador. En versiones posteriores, las características macro de GIN se utilizaron para agregar características de programación estructurada al código. Se estimó que escribir el sistema requirió 75 años-programador de esfuerzo. [7]
Control de trabajos
George 3 era un sistema mixto por lotes y en línea. Los trabajos se pueden ejecutar desde tarjetas o cinta de la misma manera que George 2, o de forma interactiva desde terminales MOP (procesamiento en línea múltiple), ya sea terminales ASR de teletipo simple modelo 33 o terminales VDU en modo bloque .
El lenguaje de control de trabajos era el mismo en terminales o en trabajos por lotes e incluía operaciones condicionales y operaciones macro . A diferencia de los sistemas Unix , el lenguaje de control de trabajos formaba parte del sistema operativo en lugar de ser un proceso de shell a nivel de usuario .
Un trabajo solo puede tener un programa cargado en la memoria a la vez, pero un trabajo puede iniciar otros trabajos para que se ejecuten simultáneamente, si los recursos del sistema y la política del sitio lo permiten. El sistema intercambiaría programas de usuario sin memoria mientras esperaban entrada o salida si otras actividades necesitaban memoria para ejecutarse.
Almacén de archivos
George 3 proporcionó un Filestore estructurado en árbol, inspirado en parte por Multics .
Cada usuario del sistema tenía un directorio de inicio con tantos subdirectorios como fuera necesario. Se puede acceder directamente al directorio de inicio de un usuario, por ejemplo, el directorio del usuario JOHN podría denominarse : JOHN , o mediante una ruta completa, por ejemplo, si JOHN estaba en el departamento de informática, su directorio de inicio podría ser : MANAGER.USERS. COMPSCI.JOHN .
Las listas de control de acceso se utilizaron por motivos de seguridad, un usuario podía permitir o denegar a cualquier usuario o grupo de usuarios el acceso a sus archivos o directorios.
El almacenamiento de datos de archivos era de dos niveles: los archivos podían estar actualmente en el disco o, si el sistema tenía poco espacio en el disco, podían ser relegados automáticamente a una cinta magnética. Si se intentaba acceder a un archivo actualmente fuera de línea, el trabajo se suspendería y los operadores solicitarían cargar la cinta correspondiente. Cuando la cinta estuviera disponible, el archivo se devolvería al disco y se reanudaría el trabajo.
El mecanismo de almacenamiento en disco subyacente George 3, en 1968, fue probablemente la primera versión comercial de un sistema de archivos de copia al escribir . La forma en que esto funcionó fue que todos los bloques modificados se escribirían en bloques en una lista "libre". Los bloques que contenían metadatos también se trataron de la misma manera, pero, junto con los bloques de datos, se escribieron físicamente en un orden de tal manera que, cuando se escribió el bloque "maestro" final, se confirmó el archivo. Si la máquina fallaba en algún momento, el hardware garantizaba que el archivo estaría en su forma original, sin modificaciones, o completamente actualizado.
Otra característica útil era que Filestore podía emular todos los periféricos estándar, como lectores y perforadores de tarjetas, cintas magnéticas y discos. Esto permitió que los programas George 1 y 2 más antiguos que requerían estos dispositivos físicos se ejecutaran bajo George 3 sin modificaciones. Esto podría acelerar los trabajos que requirieron muchos cambios de cinta o disco en George 1 & 2 para ser automatizados hasta el punto - ese algo que requirió dos operadores; Varias decenas de cambios de cintas y cinco horas: ahora no se requieren operadores, más allá de montar dos cintas de trabajo para obtener los resultados, y terminaron en 45 minutos.
Jorge 4
A partir de 1904A, una unidad de paginación estaba disponible para procesadores 1900 más grandes y George 4 se escribió para aprovecharla. George 4 siguió siendo compatible con George 3. Era común alternar George 3 y 4 en la misma máquina y almacén de archivos, ejecutando George 3 durante el día para cargas de trabajo pequeñas e interactivas y George 4 por la noche para trabajos grandes que requieren mucha memoria. [8]
George 4 introdujo el concepto de un programa disperso , un programa que tenía un espacio de direccionamiento mayor que su memoria asignada y regiones de código y datos de solo lectura ( puros ). Se proporcionaron nuevas versiones del consolidador (enlazador) y compiladores para utilizar estas funciones.
El código fuente de George 3 y 4 era el mismo; Las funciones de compilación condicional del ensamblador GIN se utilizaron para seleccionar qué versión del sistema se estaba compilando.
Como la función de paginación de 1900 no fue emulada por las máquinas de la serie 2900 utilizadas por instalaciones posteriores de George, George 4 dejó de usarse antes que George 3.
Ejemplos de
Aquí hay algunos ejemplos simples del uso de George
Trabajo por lotes de ejemplo
El trabajo se basa en el trabajo de George 2 anterior, y al igual que ese trabajo es algo artificial, ya que en el uso real, la mayor parte del trabajo se realizaría mediante un comando de macro almacenado previamente.
El trabajo se leería desde un lector de tarjetas o cinta de papel . Con cambios menores (eliminación del primer comando "JB"), podría almacenarse en un archivo y ejecutarse desde una terminal interactiva (MOP).
- Como en el ejemplo de George 2, el trabajo comienza con un comando TRABAJO (todos los comandos incorporados tenían una forma larga y una abreviatura de dos letras, aquí "JB" es la abreviatura de "TRABAJO"). El comando JOB da un nombre de trabajo , el usuario a facturar por el trabajo ,: BRIAN , y el terminador del trabajo, "####".
JB PLAN4JOB,: BRIAN, T ####
- SIEMPRE (NOSOTROS) un comando falla con un error, el trabajo continuará en la etiqueta 5CE para la recuperación del error. El MAXSIZE (MZ) de memoria utilizado por este trabajo será de 20K palabras.
LLEGAMOS, VAMOS 5CEMZ 20K
- El comando CREATE (CE) se utiliza para crear un archivo, en este caso un archivo de trabajo temporal, "!". El comando INPUT (IN) luego copia todo el texto hasta el terminador, "////" en el archivo de trabajo.
CE!EN T////PROG (HWLD)DIRECCIÓN (LISTA, OBJETO)OUTE (SEMICOMPILADO)FSM (HWLD)PLAN (CR)#PRO HWLD40 / TEST#BAJOMENSAJE 12 HOLA MUNDO#PRO#ENT 0 DISTY '11 / MESS ' DEL 2HOK#FINALENDPROG////
- El comando LOAD (LO) carga PROGRAM XPLT (el ensamblador) desde el directorio : LIB , luego se inicia con el comando RESUME (RM). Si la ejecución no se detiene con la salida LD, el trabajo continúa en la etiqueta 1F para el manejo de errores.
LO: PROGRAMA LIB. XPLTRMSI NO HAL (LD), VAYA 1F
- El comando ASIGNAR (AS) se usa para conectar la unidad de lector de tarjetas virtuales 0 al archivo de trabajo creado anteriormente, que luego se borra con el comando BORRAR (ER). (El borrado se retrasará hasta que se cierre el archivo).
AS * CR0 ,!ER!
- Se crea un nuevo archivo de trabajo y se le asigna la unidad de impresora de línea virtual 0.
CE!AS * LP0 ,!
- Cuando se ejecuta PROGRAM XPLT, intentará abrir el archivo de disco en la directiva OUTE.Queremos que use un archivo de trabajo temporal, por lo que le pedimos a George que MONITORE la apertura, deteniendo la ejecución y permitiéndonos proporcionar el archivo de trabajo:
MN ENCENDIDO, ABIERTO
- El programa en la memoria (PROGRAM XPLT) se inicia en la ubicación 21.
ES 1SI NO MONITOR (ABIERTO), VAYA 1F
- Se crea un nuevo archivo de trabajo de acceso directo con 128 depósitos de palabras y un tamaño inicial de 40K palabras. Se le asigna el canal de disco virtual * DA2. El programa se reanuda.
CE! (* DA, BUCK1, KWOR40)AS * DA2,! (ESCRIBIR)RM
- Si Detiene con la salida Aceptar el trabajo continúa en la etiqueta 1A, si no se visualiza un mensaje de error y las salidas de trabajo.
SI HAL (OK), VAYA 1A1F DP 0, ERRORES DE COMPILACIÓNGO 5EX
- El comando DELETE (DL) elimina el ensamblador de la memoria.
1A DL
- Se crea otro archivo de trabajo para contener las instrucciones para el enlazador. Como las instrucciones del enlazador deben terminar con una línea "****", el terminador predeterminado se usa para el comando INPUT.
CE!EN !* EN ED (SEMICOMPILADO)* OUT ED (PRUEBA DE PROGRAMA)*LISTA****
- El enlazador : LIB.PROGRAM XPCK se carga e inicializa.
LO: PROGRAMA LIB. XPCKRMSI NO HAL (LD), VAYA 2F
- El lector de tarjetas virtual se adjunta al archivo de trabajo que contiene las instrucciones del enlazador, que luego se borra.
AS * CR0 ,!ER!
- El lineprinter virtual se asigna en modo de adición al último archivo de trabajo creado y aún no borrado (los archivos de trabajo se guardan en una pila, "!" Es la parte superior de la pila, "! 1" el que está debajo y así sucesivamente) . El comando LISTFILE (LF) se utiliza para imprimir el archivo en la impresora del sistema (la lista comenzará cuando se cierre el archivo). A continuación, se borra el archivo (el borrado se retrasará hasta que finalice la lista). El canal de disco virtual * DA1 se asigna al archivo de trabajo superior (que contiene la salida del ensamblador) y se crea otro archivo de trabajo para el enlazador.
AS * LP0,! 1 (APÉNDICE)LF! 1, * LP, PAER! 1AS * DA1 ,!ER!CE! (* DA, BUCK1, KWOR10)AS * DA13,! (ESCRIBIR)ER!
- Se crea un archivo para contener la salida del vinculador y se adjunta al canal de disco virtual * DA14. Luego, el enlazador se inicia en la ubicación 21 y si termina con el mensaje HH, el trabajo continúa en la etiqueta 2A; de lo contrario, se muestra un mensaje de error y el trabajo se cierra.
PROGRAMA CE HWLD (* DA, BUCK1, KWOR5)AS * DA14, PROGRAMA HWLD (ESCRIBIR)ES 1SI ELIMINA (HH), VAYA 2A2F DP 0, ERRORES DE CONSOLIDACIÓN GO 5EX
- En la etiqueta 2A, el programa escrito por el enlazador se carga en la memoria y se ejecuta comenzando en la ubicación 20, se muestra un mensaje de éxito y el trabajo sale.
PROGRAMA 2A LO HWLDES 0DP 0, TRABAJO TERMINADOGO 5EX
- Si algún comando falla, el comando WHENEVER dado al inicio del trabajo forzará un salto a la etiqueta 5CE que muestra un mensaje de error y sale.
5CE DP 0, ERROR DE COMANDO EN EL TRABAJO
- Cuando el trabajo llega a la etiqueta 5EX si tiene un programa cargado actualmente, se borra de la memoria y el comando ENDJOB (EJ) termina el trabajo.
5EX SI COR, DLEJ TODOS
- El final del trabajo se indica mediante la cadena de terminación definida por el comando JOB .
####
Ejemplo de sesión de MOP
Toda la entrada del usuario se muestra en minúsculas . Toda la salida de George está en mayúsculas.
- El usuario escribe control-A en un teletipo inactivo adjunto a George, George responde con su banner de identificación y un mensaje (la hora, seguida de la invitación a escribir , una flecha hacia atrás. El usuario inicia sesión con el comando LOGIN (LN) Se le solicita su contraseña, que se repetirá cuando el terminal se conecte en modo semidúplex con eco local .
ESTO ES GEORGE 3 MARCA 8.67 EL 21MAR1121.21.23 ← ln: john, mopjob TIPO CONTRASEÑA ← contraseñaINICIO: JOHN, MOPJOB, 21MAR11, 21.21.35 TIPO: MOP
- Se crea un directorio con el comando MAKEDIR (MK) y el directorio actual se cambia al nuevo con el comando DIRECTORY (DY).
21.21.35 ← mk hellodir 21.28.10 ← dy hellodir
- La macro del sistema NEWCOPYIN se usa para leer desde el número de serie de la cinta 123457. A medida que la macro NEWCOPYIN carga un programa, la sesión se inicia por completo (si el sistema estaba muy cargado, podría esperar en este punto).
21.28.16 ← nuevocopyin (123457)21.28.32 EL TRABAJO HA COMENZADO POR COMPLETO21.28.32 0.03 PRINCIPAL DADO 4736ESPERANDO MT 123457
- Aparentemente, el operador del sistema no pudo encontrar la cinta y usó el comando CANTDO para negarse a cargarla, el NEWCOPYIN falla.
ERROR EN PARÁMETRO 2 EN OL EN NEWCOPYIN: MT (123457) CORRECTAMENTE IDENTIFICADOED PERO NO DISPONIBLEPANTALLA: ERROR EN NEWCOPYIN. MACRO ABANDONADO21.28.58 TRASLADOS GRATIS * CR0, 021.28.58 0.05 BORRADO, RELOJ 0.000.05: ELIMINADOFIN DE MACRO
- El usuario vuelve a intentarlo con el número de serie correcto esta vez. Cuando la cinta esté disponible, se le solicitará que cargue el archivo. La lista de archivos termina con "****".
21.28.58 ← nuevocopyin (123456)21.32.21 0.06 CORE DADO 4736ESPERANDO MT 12345621.32.34 U31 USADO AS * MT0, MT (123456, HELLOTAPE (0/0))← hola, hola (/ plan) ← ****21.32.52 GRATIS * CR0, 2 TRASLADOSPANTALLA: 1 PARÁMETRO ACEPTADOMONITOR0.08: MONITORPANTALLA: CINTA DE ENTRADA * 123456.MONITOR0.08: MONITOR21.32.52 TRASLADOS GRATIS * FH0, 121.32.52 TRASLADOS GRATIS U31,80.10: BORRADO: OK21.32.52 0.10 BORRADO, RELOJ 0.00FIN DE MACRO
- El archivo se cargó desde la cinta. El comando LISTFILE (LF) se utiliza para examinar su contenido.
21.32.52 ← Si hola#PRO HWLD40 / TEST#BAJOMENSAJE 12 HOLA WRLD#PRO#ENT 0 DISTY '11 / MESS ' DEL 2HOK#FINAL
- Parece haber un error, por lo que el usuario usa el comando EDITAR (ED) para solucionarlo. El subcomando del editor TC se usa para posicionarse en la línea que contiene "WRLD", el comando R reemplaza "WRLD" por "WORLD", luego el comando E escribe el archivo.
21.33.01 ← ed hola
EL EDITOR ESTÁ LISTO
0.0 ← tc / wrld / 2.0 ← r / wrld / world / 2.29 ← e
- La macro del sistema PLANCOMP se utiliza para compilar el archivo HELLO (/ PLAN) para PROGRAM HELO
21.43.46 ← plancomp * cr hola (/ plan), * idheloARCHIVOS YA EN LÍNEA:: LIB.SUBGROUPS-RS (1 / V3): LIB.PROGRAM XPCK (1 / V12K): PROGRAMA LIB. XPLT (1 / V8C)21.43.58 0.58 PRINCIPAL DADO 189440.58: DETENIDO: LDPANTALLA: INICIAR TRABAJO HELO,ABIERTO * DA2 N CA 1641 M = # 00100 FN = SEMICOMPILADO1.00: MONITOR21.43.58 GRATIS * CR0, 8 TRASLADOSPANTALLA: COMP OK 84 #HELO21.43.58 GRATIS * DA2, 9 TRASLADOS1.01: ELIMINADO: FI #XPCK21.43.58 GRATIS * TR0, 7 TRASLADOS21.43.58 TRANSFERENCIAS GRATIS * LP0, 8321.43.58 1.01 BORRADO, RELOJADO 0.0021.43.59 1.07 PRINCIPAL DADO 1139221.43.59 GRATIS * CR0, 5 TRASLADOS21.43.59 GRATIS * DA14,20 TRASLADOS21.43.59 GRATIS * DA1, 9 TRASLADOS21.43.59 GRATIS * DA2, 2 TRASLADOS21.43.59 TRASLADOS GRATIS * DA13,71.07: ELIMINADO: HH21.43.59 GRATIS * LP0, 32 TRASLADOS21.43.59 TRASLADOS GRATIS * DA15,021.43.59 1.07 BORRADO, RELOJADO 0.00PANTALLA: COMPILACIÓN / CONSOLIDACIÓN DEL PLAN OKAYFIN DE MACRO
- El PROGRAMA HELO recién compilado se carga en la memoria mediante el comando LOAD (LD) y luego se inicia con el comando ENTER (EN). Muestra el mensaje tradicional y luego se borra de la memoria.
21.43.59 ← lo program helo 21.44.06 ← es21.44.07 1.09 PRINCIPAL DADO 64PANTALLA: HOLA MUNDO1.09: ELIMINADO: OK21.44.07 1.09 BORRADO, RELOJADO 0.00
- Terminado el arduo trabajo de hoy, el usuario cierra la sesión con el comando LOGOUT (LT). Se muestran el tiempo del molino y el dinero usado y restante.
21.44.07 ← lt MÁXIMO EN LÍNEA BS UTILIZADOS 252 KWORDS21.44.12 1.09 FINALIZADO: 0 LISTFILESPRESUPUESTO UTILIZADO IZQUIERDAHORA (M) 70 -97797DINERO 35 8032721.44.12 ←
Código fuente
George se distribuyó en una forma que permitía a un sitio modificar grandes partes del sistema. Se inició una compilación del sistema, luego se interrumpió justo antes del final y se volcó en cinta magnética. El compilador GIN permitió que la compilación continuara desde este punto en el sitio del usuario, posiblemente modificando el código ya compilado.
Las versiones de George 3 anteriores al lanzamiento 8 se proporcionaron en forma binaria. Cualquier modificación necesaria al sistema se realizó como parches binarios. Para simplificar el proceso, la mayoría de los capítulos de George incluyeron un área MEND vacía al final.
A partir de la versión 8, la fuente de George se distribuyó con el binario, tanto en cinta magnética como en microficha. Se utilizó un sistema de parches de nivel de fuente, conocido como MENDITS, para modificar el sistema y un capítulo existente podría ser reemplazado por completo por el nuevo capítulo modificado.
El grupo de usuarios de George estableció un "esquema de intercambio MEND" para compartir modificaciones interesantes a George. Algunas modificaciones se distribuyeron gratuitamente, otras estaban disponibles por una tarifa. Cuando ICL producía una nueva versión de George, a veces incluía modificaciones producidas por los usuarios.
Para la última versión publicada, 8.67, la mayoría de los parches del esquema de intercambio MEND se incluyeron en la fuente estándar de George, desactivados por compilación condicional . Se pueden activar como parte del proceso estándar de adaptación de George para un sitio.
Documentación
GEOrge estaba bien documentado internamente en una serie de carpetas de hojas sueltas, distribuidas como una versión inicial más enmiendas. Finalmente, se reemplazaron todas las páginas originales, por lo que cualquier copia nueva de los manuales consistía en una caja de carpetas de hojas sueltas vacías y una pila de enmiendas. La primera enmienda fue una lista de contribuyentes, y la razón técnica de la enmienda se describió como "para mantener contentos a todos".
Versiones modificadas
Se suministró una versión modificada de George 3 al Centro de Computación Regional de la Universidad de Manchester (UMRCC). Esto vinculó a George 3 a una máquina CDC Cyber , a la que George suministró las funciones de E / S fuera de línea y cola de trabajos. ICL y Cyber proporcionaron soporte en línea tanto para hardware como para software. El equipo de soporte cibernético trabajaba en una oficina con el nombre " Cybermen " en la puerta. [ cita requerida ]
Fin de la vida
Obsolescencia
Con el lanzamiento de la "nueva gama" de ICL, la serie 2900 con su sistema operativo VME , George quedó obsoleto. Sin embargo, debido al legado de inversión en software para George, ICL lanzó opciones para ejecutar software de la serie 1900, incluido George, en máquinas de la serie 2900, inicialmente Direct Machine Environment (DME), más tarde Concurrent Machine Environment (CME) que permitía aplicaciones simultáneas. ejecutando código 1900 y 2900 en el mismo sistema.
Se siguieron lanzando nuevas versiones de George 3 para el 2900. La última versión fue la 8.67, lanzada en 1983.
En 2005, al menos un sitio en Rusia seguía ejecutando George 3 bajo DME. [9]
En noviembre de 2014, George 3 se ejecutó en un ICL 2966 reacondicionado en el Museo Nacional de Computación . [10]
Emulación
David Holdsworth y Delwyn Holroyd obtuvieron copias de las cintas de emisión de George 3 cuando el último sitio en vivo en el Reino Unido , en British Steel Corporation , estaba siendo retirado y escribieron un emulador para el hardware y ejecutivo 1900 que permite ejecutar George en Microsoft Windows y Linux como parte de un proyecto para la Computer Conservation Society . [11] [12] El emulador incluye una emulación de Executive y una emulación Java de un procesador de comunicaciones ICL7903, lo que permite ejecutar sesiones MOP mediante telnet (en este caso) al puerto 2023.
Emulador ejecutivo de George 3por David Holdsworth & Delwyn HolroydConstruir: 15 de mayo de 2014Tamaño de la memoria: 256 KComando ejecutivo: DA GEORGE3AEsperando una conexión telnet de consola en el puerto 1900
Emulador de controlador de comunicaciones ICL 7903por David Holdsworth & Delwyn HolroydConstruir: 23 de febrero de 2014-? para información de usoEscuchando conexiones TTY en el puerto 2023 - 4 disponiblesEscuchando conexiones VDU en el puerto 7181 - 4 disponiblesEscuchando la conexión del host en el puerto 7903
Las pruebas con el emulador muestran que George 3 es compatible con Y2K .
Referencias
- ↑ En "Another ICL Anthology", George Felton explica el origen del nombre de la siguiente manera:
"Alrededor de enero de 1965, hubo una reunión en mi oficina, mientras yo estaba en el extranjero, discutiendo diferentes formas de asignar funciones entre el sistema operativo propuesto y Executive . Esquema a se discutió y rechazó. Esquema B ídem. y Esquemas C, D, e y F también fueron descartados en rápida sucesión. Cuando Esquema G se acercó, todo el mundo estaba feliz, y se decidió adoptarlo. El " GE neral ORG anisational E mbiente también se formuló rápidamente como la expansión oficial de la sigla. Pero el nombre "GEORGE" fue en cualquier caso una elección natural: tenía ecos de los pilotos automáticos de los aviones; fue un poco divertido; y ciertamente no iba a objetar ". - ↑ Goodman, HP (1 de enero de 2004). "3.4.2- Sistemas operativos George para la gama de computadoras ICL 1900 Series" . Archivado desde el original el 28 de junio de 2011 . Consultado el 15 de febrero de 2011 .
- ^ Carmichael, Hamish (noviembre de 1998). Otra antología de ICL (PDF) . Laidlaw Hicks. ISBN 978-0-9527389-2-3. Consultado el 5 de diciembre de 2013 .
- ^ "Documentos técnicos de Multics online" . Consultado el 15 de febrero de 2011 .
- ^ Referencia en línea de GEORGE 3
- ^ Oestreicher, MD (abril-junio de 1971). "El diseño de la estructura interna del sistema operativo ICL George 3". Software, práctica y experiencia . 1 (2): 189–200. doi : 10.1002 / spe.4380010209 .
- ^ Cambell-Kelly, Martin (1989). ICL: Una historia comercial y técnica . Prensa de la Universidad de Oxford. pag. 239. ISBN 0-19-853918-5.
- ^ "Informe anual de UEA CPC 1975-76" (PDF) . Consultado el 6 de mayo de 2014 .
- ^ Holdsworth, David (otoño de 2005). "Actividad de la sociedad" . RESURRECCIÓN El Boletín de la Computer Conservation Society (36) . Consultado el 14 de abril de 2014 .
De la nada, recibí un mensaje de correo de un ruso que todavía tiene un sistema George 3 ejecutándose en DME.
- ^ Holroyd, Delwyn (invierno de 2014). "Actividad de la sociedad" . RESURRECCIÓN The Bulletin of the Computer Conservation Society (68). ISSN 0958-7403 . Consultado el 12 de abril de 2015 .
Me complace informar que el proyecto 2966 ha alcanzado un hito importante este mes. El 15 de noviembre cargamos con éxito George 3 bajo CME por primera vez y, al final del día, la terminal 7501 estaba disponible para que los visitantes jugaran la aventura Colossal Cave, que normalmente se aloja en una Raspberry Pi con el emulador ejecutivo George 3.
- ^ Emulador de GEORGE 3 de la Universidad de Leeds
- ^ George3 ejecutándose en Raspberry Pi
Otras lecturas
- Oestreicher, MD; Bailey, MJ; Strauss, JI (1 de noviembre de 1967). "GEORGE 3 --- Un sistema operativo y de tiempo compartido de propósito general". Comunicaciones de la ACM . 10 (11): 685–693. doi : 10.1145 / 363790.363806 .