El Sistema de Monitorización Conversacional ( CMS , originalmente Sistema de Monitorización de Cambridge ) [ 1 ] es un sistema operativo interactivo simple para un solo usuario . CMS se desarrolló originalmente como parte del sistema operativo CP/CMS de IBM , que entró en producción en 1967. CMS forma parte de la familia VM de IBM , que se ejecuta en ordenadores centrales de IBM . VM se anunció por primera vez en 1972 y todavía se utiliza hoy en día como z/VM .
CMS se ejecuta como un sistema operativo "invitado" en una máquina virtual privada creada por el programa de control de la máquina virtual . El programa de control, junto con CMS, crean un sistema operativo de tiempo compartido multiusuario.
Historia
CMS se desarrolló originalmente como parte del sistema operativo CP/CMS de IBM . En aquel entonces, el acrónimo significaba "Cambridge Monitor System" (pero también "Console Monitor System").
- CMS se ejecutó inicialmente bajo el CP-40 , un sistema de investigación único que utilizaba hardware personalizado en el Centro Científico de Cambridge de IBM . Su uso en producción en el CSC comenzó en enero de 1967. La interfaz de usuario de CMS se basó en gran medida en la experiencia con el influyente sistema de tiempo compartido de primera generación CTSS , algunos de cuyos desarrolladores trabajaron en CP/CMS . (CTSS se utilizó como plataforma de desarrollo inicial de CP/CMS ).
- Más adelante, en 1967, CP/CMS estuvo disponible para el IBM System/360 Modelo 67 , donde, aunque el nuevo programa de control CP-67 era una reimplementación sustancial de CP-40 , CMS permaneció prácticamente igual. IBM proporcionó CP/CMS "tal cual" , sin ningún tipo de soporte, en forma de código fuente, como parte de la Biblioteca IBM Tipo III . Por lo tanto , CP/CMS era un sistema de código abierto . A pesar de esta falta de soporte por parte de IBM, CP/CMS alcanzó un gran éxito como plataforma de tiempo compartido; para 1972, había unos 44 sistemas CP/CMS en uso, incluyendo sitios comerciales que revendían el acceso a CP/CMS .
En 1972, IBM lanzó su sistema operativo VM/370 , una reimplementación de CP/CMS para el System/370 , en un anuncio que también incorporó hardware de memoria virtual a la serie System/370 . A diferencia de CP/CMS , VM/370 contaba con el soporte de IBM. VM pasó por varias versiones y aún se utiliza hoy en día como z/VM .
A lo largo de sus distintas versiones y lanzamientos, la plataforma CMS siguió siendo fácilmente reconocible como descendiente directa de la versión original que se ejecutaba bajo CP-40 . Muchas decisiones clave sobre la interfaz de usuario, familiares para los usuarios actuales, ya se habían tomado en 1965, como parte del proyecto CP-40 . Véase CMS bajo CP-40 para más ejemplos.
Tanto VM como CP/CMS tuvieron una trayectoria irregular en IBM. VM no era uno de los sistemas operativos "estratégicos" de IBM, que eran principalmente las familias OS y DOS , y sufrió las disputas internas de IBM sobre los objetivos de tiempo compartido frente a los de procesamiento por lotes . Este conflicto explica por qué CP/CMS se lanzó inicialmente como un sistema sin soporte y por qué VM a menudo tuvo recursos limitados de desarrollo y soporte dentro de IBM. Una comunidad de usuarios excepcionalmente sólida, establecida inicialmente en la época de autoservicio de CP/CMS pero que se mantuvo activa tras el lanzamiento de VM, realizó contribuciones sustanciales al sistema operativo y mitigó las dificultades de ejecutar el "otro sistema operativo" de IBM.
Arquitectura
CMS es una parte intrínseca de la arquitectura VM/CMS, establecida con CP/CMS . Cada usuario de CMS tiene control sobre una máquina virtual privada —una copia simulada del ordenador físico subyacente— en la que CMS se ejecuta como un sistema operativo independiente. Este enfoque se ha mantenido constante a lo largo de los años y se basa en:
- Virtualización completa , utilizada para crear múltiples máquinas virtuales independientes que simulan por completo el hardware subyacente.
- La paravirtualización se utiliza para proporcionar una interfaz de hipervisor que CMS utiliza para acceder a los servicios de la máquina virtual; esto se implementa mediante la instrucción DIAG (diagnose) no virtualizada.
En los artículos sobre máquinas virtuales y CP/CMS encontrará información más detallada sobre cómo interactúa CMS con el entorno de la máquina virtual .
CMS se diseñó originalmente como un sistema operativo independiente, capaz de ejecutarse en una máquina física (aunque, por supuesto, nadie optaría por hacerlo). Sin embargo, CMS ya no puede ejecutarse fuera del entorno de la máquina virtual, que proporciona la interfaz de hipervisor necesaria para diversas funciones críticas.
Características
CMS proporciona a los usuarios un entorno para ejecutar aplicaciones o trabajos por lotes , gestionar archivos de datos , crear y depurar aplicaciones, realizar desarrollo multiplataforma y comunicarse con otros sistemas o usuarios.
El CMS aún está en desarrollo y se utiliza ampliamente en la actualidad.
Entorno básico
Los usuarios inician sesión en la máquina virtual, proporcionando un nombre de usuario y una contraseña, y luego arrancan su propia máquina virtual. Esto se puede hacer mediante el comando "IPL CMS" ("IPL" = carga inicial del programa , jerga tradicional de IBM para el arranque de una máquina); aunque normalmente se realiza automáticamente para el usuario. La personalización se realiza mediante un script de shell estándar llamado "PROFILE EXEC", que configura los valores predeterminados del entorno especificados por el usuario, como los discos y las bibliotecas a los que se accede.
Soporte de terminal
CMS surgió en la época de los terminales de papel tipo teletipo y, posteriormente, de los terminales tontos de "teletipo de cristal" . Sin embargo, a finales de la década de 1970, la mayoría de los usuarios de máquinas virtuales se conectaban mediante terminales de pantalla completa , en particular el IBM 3270 , el omnipresente terminal de procesamiento de transacciones en los mainframes de IBM. El 3270 desempeñó un papel estratégico en la línea de productos de IBM, lo que lo convirtió en una opción lógica para los grandes centros de datos de la época. Muchos otros fabricantes ofrecieron posteriormente terminales bisync que emulaban el protocolo del 3270.
Las computadoras 3270 contaban con almacenamiento en búfer local, cierta capacidad de procesamiento y, por lo general, manejaban una pantalla completa de datos a la vez. Realizaban las tareas de edición localmente y luego transmitían un conjunto de campos (o la página completa) al presionar la tecla ENTER o una tecla de función de programa (PFK).
La familia 3270 incorporaba unidades de control inteligentes, concentradores y otros elementos de procesamiento de red, que se comunicaban con el ordenador central a través de circuitos dedicados a velocidades relativamente altas, mediante un protocolo de comunicación síncrono bisync . (Estas tecnologías de comunicación orientadas al ordenador central proporcionaban algunas de las capacidades que se dan por sentadas en las redes de comunicación modernas, como el direccionamiento de dispositivos, el enrutamiento, la corrección de errores y la compatibilidad con diversas configuraciones, como topologías multipunto y multidrop ).
El enfoque del 3270 se diferenciaba de los terminales tontos de menor costo de la época, que eran punto a punto y asíncronos . Los usuarios comerciales de tiempo compartido , un segmento importante de los primeros sitios CP/CMS y VM, dependían de estos dispositivos porque podían conectarse mediante módems de 300 o 1200 bits/s a través de circuitos telefónicos de voz estándar. Instalar un circuito dedicado para un 3270 a menudo no era práctico, económico ni oportuno.
El enfoque basado en bloques del 3270 era más coherente con la visión de IBM orientada a la computación por lotes y a las tarjetas perforadas, y resultó especialmente importante para los mainframes de IBM de la época. A diferencia de los miniordenadores contemporáneos, la mayoría de los mainframes de IBM no estaban equipados para interrupciones de carácter a carácter. La compatibilidad con terminales tontas dependía de unidades de control de terminal como el IBM 270x (véase IBM 3705 ) o el Memorex 1270. Estos controladores de terminal asíncronos ensamblaban una línea de caracteres, hasta una longitud máxima fija, hasta que se pulsaba la tecla Intro. Escribir demasiados caracteres provocaba un error, una situación habitual para los usuarios de la época. (La mayoría de los centros de datos no incluían este equipo, salvo el necesario para el acceso telefónico. Se prefería el enfoque del 3270).
Los terminales orientados a bloques, como el 3270, hicieron posible implementar editores orientados a pantalla en mainframes , a diferencia de los editores orientados a línea , que eran la norma anterior. Esta había sido una ventaja importante de los miniordenadores contemporáneos y otros sistemas orientados a caracteres, y su disponibilidad a través del 3270 fue muy bien recibida.
Se produjo una brecha entre el mundo de los 3270, centrado en el procesamiento de transacciones de mainframe orientado a páginas (especialmente a través de CICS ), y el mundo de los terminales asíncronos, centrado en minicomputadoras orientadas a caracteres y el tiempo compartido por línea telefónica. Los proveedores de terminales asíncronos mejoraron gradualmente sus productos con una gama de funciones de terminal inteligente , a las que generalmente se accedía mediante secuencias de escape . Sin embargo, estos dispositivos rara vez compitieron por los usuarios de 3270; IBM mantuvo su dominio en las decisiones de compra de hardware para centros de datos mainframe.
En retrospectiva, existía una importante divergencia filosófica entre la computación orientada a bloques y la orientada a caracteres. Tanto los controladores de terminal asíncronos como los 3270 proporcionaban al mainframe interacciones orientadas a bloques ; esencialmente, hacían que la entrada del terminal pareciera un lector de tarjetas. Este enfoque, preferido por IBM, condujo al desarrollo de paradigmas de interfaz de usuario y estrategias de programación completamente diferentes. Los sistemas orientados a caracteres evolucionaron de manera distinta. La diferencia es evidente al comparar el enfoque de transacción atómica del dominante CICS con el estilo interactivo y orientado a flujos de UNIX . VM/CMS evolucionó en algún punto intermedio entre estos extremos. CMS tiene un entorno interactivo, con estado y controlado por comandos , en lugar de adoptar el enfoque de CICS de una interfaz sin estado orientada a transacciones . Sin embargo, CMS responde a la interacción página por página o línea por línea, en lugar de interrupciones de caracteres.
Actuación
CMS se ganó una excelente reputación por su eficiencia y por su facilidad de uso, considerando los estándares de la época (y, por supuesto, antes de la generalización de las interfaces gráficas de usuario como las que se utilizan hoy en día). Era común encontrar cientos (y posteriormente miles) de usuarios interactivos de CMS simultáneos en el mismo ordenador central VM, con tiempos de respuesta inferiores a un segundo para funciones comunes y aparentemente sencillas. VM/CMS superó sistemáticamente a MVS y otros sistemas operativos de IBM en cuanto a la compatibilidad con usuarios interactivos simultáneos.
Programación y aplicaciones principales
Muchos usuarios de CMS programaban en lenguajes como COBOL , FORTRAN , PL/I , C/370 , APL y el lenguaje de scripting REXX . VM/CMS se utilizaba a menudo como plataforma de desarrollo para sistemas de producción que se ejecutaban bajo otros sistemas operativos de IBM, como MVS .
Otros usuarios de CMS trabajaban con paquetes de software comerciales como FOCUS , NOMAD , SPSS y SAS .
En su momento, los sistemas de gestión de contenido (CMS) también fueron un entorno importante para el correo electrónico y la productividad de oficina; un producto importante fue PROFS de IBM (más tarde renombrado OfficeVision ).
Dos herramientas CMS de uso común son el editor XEDIT y el lenguaje de programación REXX . Ambos productos se han adaptado a otras plataformas y ahora se utilizan ampliamente fuera del entorno de los mainframes.
Véase también
Referencias
- ↑ Programa de control-67/Sistema de monitorización de Cambridge (GH20-0857-1) . IBM. Octubre de 1971.
- Fuentes primarias de CP/CMS
- RJ Creasy, " El origen del sistema de tiempo compartido VM/370 ", IBM Journal of Research & Development , vol. 25, n.º 5 (septiembre de 1981), págs. 483-490, PDF ― perspectiva sobre la historia de CP/CMS y VM por el líder del proyecto CP-40 , también autor de CTSS
- EW Pugh, LR Johnson y John H. Palmer, Los sistemas IBM 360 y los primeros 370, MIT Press, Cambridge, MA y Londres, ISBN 0-262-16123-0— Tratamiento extenso (819 págs. ) de las ofertas de IBM durante este período; la cobertura limitada de CP/CMS en una obra tan definitiva es reveladora.
- Melinda Varian, VM y la comunidad de VM, pasado, presente y futuro , SHARE 89, Sesiones 9059–61, 1997; ― una fuente excepcional para la historia de CP/CMS y VM.
- Bitsavers, Índice de /pdf/ibm/360/cp67
- Fuentes adicionales de CP/CMS
- RJ Adair, RU Bayles, LW Comeau y RJ Creasy, Un sistema de máquina virtual para el 360/40, IBM Corporation, Informe del Centro Científico de Cambridge n.° 320-2007 (mayo de 1966) — un artículo fundamental que describe la implementación del concepto de máquina virtual, con descripciones del CSC S/360-40 personalizado y el diseño CP-40.
- International Business Machines Corporation, CP-67/CMS , Programa 360D-05.2.005, Departamento de Información de Programas de IBM (junio de 1969) ― Manual de referencia de IBM
- RA Meyer y LH Seawright, "Un sistema de tiempo compartido de máquinas virtuales", IBM Systems Journal, vol. 9, n.° 3, págs. 199-218 (septiembre de 1970) — describen el sistema CP-67/CMS, detallando sus características y aplicaciones.
- RP Parmelee, TI Peterson, CC Tillman y DJ Hatfield, "Conceptos de almacenamiento virtual y máquinas virtuales", IBM Systems Journal, vol. 11, n.º 2 (junio de 1972).
- Fuentes de antecedentes de CP/CMS
- FJ Corbató, et al., El sistema de tiempo compartido compatible, Guía del programador , MIT Press, 1963
- FJ Corbató, M. Merwin-Daggett y RC Daley, «Un sistema experimental de tiempo compartido», Actas de la Conferencia Conjunta de Computación de Primavera (AFIPS) 21, págs. 335-344 (1962) — descripción de CTSS
- FJ Corbató y VA Vyssotsky, "Introducción y descripción general del sistema MULTICS", Actas de la Conferencia Conjunta de Informática de Otoño (AFIPS) 27, págs. 185–96 (1965)
- PJ Denning, "Memoria virtual", Computing Surveys Vol. 2, pp. 153–89 (1970)
- JB Dennis, "Segmentación y diseño de sistemas informáticos multiprogramados", JACM Vol. 12, págs. 589–602 (1965) ― requisitos de memoria virtual para el Proyecto MAC, destinado al GE 645
- CAR Hoare y RH Perrott, Eds., Técnicas de sistemas operativos , Academic Press, Inc., Nueva York (1972)
- T. Kilburn, DBG Edwards, MJ Lanigan y FH Sumner, «Sistema de almacenamiento de un nivel», IRE Trans. Electron. Computers EC-11, págs. 223-235 (1962) ― Manchester/Ferrani Atlas
- RA Nelson, "Dispositivos de mapeo y el sistema de procesamiento de datos M44", Informe de investigación RC 1303 , Centro de investigación IBM Thomas J. Watson (1964) ― acerca del IBM M44/44X
- RP Parmelee, TI Peterson, CC Tillman y DJ Hatfield, "Conceptos de almacenamiento virtual y máquinas virtuales", IBM Systems Journal , vol. 11, págs. 99–130 (1972)
- Recursos adicionales en línea para CP/CMS
- febcm.club.fr — Cronología de las Tecnologías de la Información Archivada el 7 de octubre de 2006 en Wayback Machine , 1964–74
- www.multicians.org — Ensayo breve de Tom Van Vleck: El IBM 360/67 y CP/CMS
- www.cap-lore.com — Breve historia de las máquinas virtuales de IBM por Norman Hardy
- www.cap-lore.com — Breve descripción de Norman Hardy de la "Caja Blaauw"
- software de 1967
- Sistemas operativos para mainframes de IBM
- shells de comandos
- Máquina virtual (sistema operativo)