# VM (sistema operativo)

El VM/CMS es un sistema operativo de máquina virtual que se anunció para el público en 1972 por IBM para computadores centrales o mainframes, plataformas como System/370, System/390, zSeries, System Z9 además de otros sistemas compatibles como el emulador Hércules.
Está basado en máquina virtual de sistema cuyo núcleo es un programa de control llamado CP (Control Program) o también denominado VMCP (Virtual Machine Control Program) cuya principal característica es que permite la ejecución de una máquina virtual dentro de otra máquina virtual, también es la encargada de controlar los dispositivos hardware del ordenador: CPU, discos cintas, etc. Además CP es quien controla el proceso de LOGON de un usuario y activa la máquina virtual. Junto a este componente existe el CMS (Conversacional Monitor System): su entorno permite la ejecución, creación y depuración de aplicaciones, gestión de archivos de datos, trabajo por lotes además de comunicarse con otros usuarios y sistemas. En general es el encargado de aceptar las órdenes del usuario y convertirlas en instrucciones que el CP es capaz de ejecutar.

## Historia de VM

1950-1960: Desde finales de la década de los 50 y hasta principios de los años 60 el Compatible Time-Sharing System (CTSS) será en el MIT diseñado he implementado. Este equipo permite interactuar a varios usuarios al mismo tiempo. Este esta en marcado contraste con lo que se conoce como el procesamiento por lotes, es decir cuando se tiene una pila de tarjetas perforadas en el programa de instalación que después se tendrán que procesar.
1965: La CTTS se utiliza para la computadora IBM/360 en el modelo 40, este es el supervisor de control y despliegue de las máquinas virtuales. Este supervisor de aquí en adelante se conocerá como CP ( Control Program). El sistema operativo interactivo para la máquina virtual se refiere a CMS (Sistema Monitor de Conversación o Monitor de Sistema de Cambridge).
1968: CP-67 se utiliza para la computadora IBM/360/67. VM es apoyada por IBM pero todavía sin el compromiso de la Universidad de Cambridge.
1970-1971: En este momento IBM y VM se comenzó a utilizar como una plataforma de desarrollo para el sistema operativo 370 de emulación que está basada el una en IBM 360. De aquí en adelante IBM también
comercializará la máquina virtual pero nunca llegando a ser el principal sistema de esta compañía sino sólo como soporte para otros sistemas operativos.
1985: Es por este año cuando se amplia la capacidad de red, se introduce programables de pantalla completa, un editor rudimentario del menú de apoyo, y lenguajes para el procedimiento de EXE-2 y REXX, así como el particionamiento lógico de los grandes equipos VM.
1990: En este año y a raíz de las extensiones de 24 bits para direcciones de 31 bits hacen incompatible las versiones VM/370 con sus sucesores, otras versiones de máquina virtual como VM/SP, VM/HPO y VM/XA. El 370/ESA se convierte en el sucesor de toda la familia IBM/370.
2005: Hasta este año se fueron sucediendo cambios y mejoras en la arquitectura de computadoras centrales o mainframes de la serie Z, también se requieren ajustes a la máquina virtual.

## Comandos

* Iniciar sesión:
    LOGON
* Enviar un mensaje a un usuario conectado:
    MSG usuario mensaje
* Enviar una nota a otro usuario:
    NOTE usuario
* Conocer los ficheros que tenemos:
    LISTFILE
* Listar un fichero:
    TYPE fichero o BROWSE fichero
* Borrar un fichero:
    ERASE fichero
* Imprimir fichero:
    PRINT fichero
* Hacer una copia de un fichero:
    COPY fichero1 fichero2
* Cambiar de nombre un fichero:
    RENAME fichero1 fichero2
* Editar un fichero (editor XEDIT):
    XEDIT fichero
* Guardar el contenido del fichero:
    FILE fichero
* Salir sin guardar modificaciones:
    QUIT
* Espacio libre en el disco:
    QUERY DISK unidad
* Qué usuario está usando:
    IDENTIFY
* Cómo es su máquina virtual:
    QUERY VIRTUAL
* Cómo es su terminal virtual:
    Q TERMINAL
* Qué discos puede usar el CP:
    Q DASK
* Qué discos puede usar el CMS:
    Q DISK
* Fecha, hora y tiempo de CPU consumido:
    Q TIME
* Qué usuarios están conectados:
    Q NAMES
* Conocer los mensajes del operador:
    Q LOG
* Qué ficheros de correo tiene:
    Q RDR ALL
* Interrumpir sesión:
    DISC
* Finalizar sesión:
    LOG
* Ayuda ( varios ):
    HELP comando, HELP CMS MENU, HELP CMS QUERY, HELP CMS LISTFILE, HELP CP SET, HELP XEDIT FILE.