# VM (sistema operatiu)

VM (sovint: VM/CMS) és una família de sistemes operatius de màquines virtuals d'IBM que s'utilitzen en sistemes centrals d'IBM System/370, System/390, zSeries, System z i sistemes compatibles, inclòs l'emulador Hercules per a ordinadors personals.

## Disseny

El cor de l'arquitectura de VM és el programa de control o hipervisor abreujat CP, VM-CP i, de vegades, de manera ambigua, VM. S'executa amb el maquinari físic i crea l'entorn de la màquina virtual. VM-CP proporciona una virtualització completa de la màquina física, incloent totes les E/S i altres operacions privilegiades. Realitza la compartició de recursos del sistema, inclosa la gestió de dispositius, l'enviament, la gestió d'emmagatzematge virtual i altres tasques tradicionals del sistema operatiu. Cada usuari de VM disposa d'una màquina virtual independent que té el seu propi espai d'adreces, dispositius virtuals, etc., i que és capaç d'executar qualsevol programari que es pugui executar en una màquina autònoma. Un sistema central de VM determinat normalment executa centenars o milers d'instàncies de màquines virtuals. VM-CP va començar la seva vida com CP-370, una reimplementació de CP-67, en si mateix una reimplementació de CP-40.
A cada màquina virtual s'executa un altre sistema operatiu, un sistema operatiu convidat. Això podria ser:
* CMS (Conversational Monitor System, rebatejat pel Cambridge Monitor System de CP/CMS). La majoria de màquines virtuals executen CMS, un sistema operatiu lleuger i d'un sol usuari. El seu entorn interactiu és comparable al d'un ordinador d'un sol usuari, que inclou un sistema de fitxers, serveis de programació, accés al dispositiu i processament de línia d'ordres. (Tot i que una versió anterior de CMS es va descriure sense caritat com "CP/M en un mainframe", la comparació és un anacronisme; l'autor de CP/M, Gary Kildall, era un usuari experimentat de CMS).
* GCS (Group Control System), que proporciona una simulació limitada de l'API MVS. IBM va proporcionar inicialment GCS per executar VTAM sense una màquina virtual OS/VS1 de servei i una aplicació de xarxa de comunicacions VTAM (VCNA). RSCS V2 també funcionava sota GCS.
* Un sistema operatiu convencional. Els sistemes operatius principals d'IBM (per exemple, les famílies MVS i DOS/VSE, OS/VS1, TSS/370 o una altra capa del mateix VM/370 (vegeu més avall)) es poden carregar i executar sense modificacions. L'hipervisor de VM tracta els sistemes operatius convidats com a programes d'aplicació amb privilegis excepcionals: els impedeix utilitzar directament instruccions privilegiades (aquelles que permetrien que les aplicacions s'apoderin de tot el sistema o parts importants d'aquest), però simula instruccions privilegiades en nom seu. La majoria dels sistemes operatius mainframe finalitzen una aplicació normal que intenta usurpar els privilegis del sistema operatiu. L'hipervisor VM pot simular diversos tipus de terminals de consola per al sistema operatiu convidat, com ara el mode de línia de còpia impresa 3215, la família gràfica 3270 i la consola integrada en màquines System/390 i System Z més noves. Altres usuaris poden accedir a les màquines virtuals en execució mitjançant l'ordre DIAL a la pantalla d'inici de sessió, que connectarà el seu terminal al primer dispositiu 3270 emulat disponible, o al primer dispositiu 2703 disponible si l'usuari està marcant des d'un terminal de màquina d'escriure.
* Una altra còpia de VM. Una instància de segon nivell de VM es pot virtualitzar completament dins d'una màquina virtual. Així és com es fa el desenvolupament i les proves de VM (una VM de segon nivell pot implementar una virtualització diferent del maquinari). Aquesta tècnica es va utilitzar per desenvolupar programari S/370 abans que el maquinari S/370 estigués disponible, i ha continuat jugant un paper en el desenvolupament de nou maquinari a IBM. La literatura cita exemples pràctics de virtualització de cinc nivells de profunditat. Els nivells de VM per sota de la part superior també es tracten com a aplicacions, però amb privilegis excepcionals.
* Una còpia de la versió mainframe d'AIX o Linux. A l'entorn de mainframe, aquests sistemes operatius sovint s'executen sota VM i es gestionen com altres sistemes operatius convidats. (També es poden executar com a sistemes operatius "natius" al maquinari nu.) També hi havia l'IX/370 de curta durada, així com les versions S/370 i S/390 d'AIX (AIX/370 i AIX/ESA).
* Un subsistema de VM especialitzat. Diversos sistemes que no són CMS s'executen dins de màquines virtuals VM-CP, proporcionant serveis als usuaris de CMS com ara spooling, comunicacions entre processos, suport de dispositius especialitzats i xarxes. Funcionen entre bastidors, ampliant els serveis disponibles a CMS sense afegir-hi el programa de control VM-CP. En executar-se en màquines virtuals separades, reben les mateixes proteccions de seguretat i fiabilitat que altres usuaris de VM. Alguns exemples inclouen:
* SCS (Remote Spooling and Communication Subsystem, també conegut com VNET): instal·lacions de comunicació i transferència d'informació entre màquines virtuals i altres sistemes.
* RACF (Resource Access Control Facility): un sistema de seguretat
* Sistema de fitxers compartits (SFS), que organitza els fitxers compartits en un arbre de directoris (els servidors s'anomenen habitualment "VMSERVx"
* VTAM (Mètode d'accés a les telecomunicacions virtuals): una instal·lació que proporciona suport per a una xarxa d'arquitectura de xarxa de sistemes
* PVM (VM/Pass-Through Facility): una instal·lació que proporciona accés remot a altres sistemes VM
* TCPIP, SMTP, FTPSERVE, PORTMAP, VMNFS: un conjunt de màquines de servei que proporcionen xarxes TCP/IP a VM/CMS
* Servidor Db2 per a VM: un sistema de bases de dades SQL, els servidors sovint s'anomenen de manera similar a "SQLMACH" i "SQLMSTR".
* DIRMAINT: un sistema de gestió de directoris d'usuaris simplificat (el directori és una llista de tots els comptes del sistema, inclosa la configuració del maquinari virtual, les contrasenyes d'usuari i els minidiscs).
* MUMPS/VM: una implementació de la base de dades MUMPS i el llenguatge de programació que es podria executar com a convidat a VM/370.[3] MUMPS/VM es va introduir el 1987 i es va suspendre el 1991.[4]
* Un sistema operatiu escrit o modificat per l'usuari, com ara el CSS de National CSS o el VPS/VM de la Universitat de Boston.

## Versions

Es coneixen les següents versions:

### Instal·lació de màquines virtuals/370

    VM/370, llançat el 1972, és una reimplementació System/370 del sistema operatiu CP/CMS anterior.

### Producte del programa d'extensions del sistema bàsic VM/370

    VM/BSE (BSEPP) és una millora a VM/370 que afegeix suport per a més dispositius (com ara unitats DASD d'arquitectura de bloc fix de tipus 3370), millores a l'entorn CMS (com un editor millorat) i certa estabilitat. millores a CP.

### Producte del programa d'extensions del sistema VM/370

    VM/SE (SEPP) és una millora de VM/370 que inclou les instal·lacions de VM/BSE, així com algunes correccions i funcions addicionals.

### Màquina virtual/Producte del sistema

    VM/SP, una versió de fita, substitueix VM/370, VM/BSE i VM/SE. La versió 1 ha afegit EXEC2 i XEDIT System Product Editor; La versió 3 s'ha afegit REXX; La versió 6 va afegir el sistema de fitxers compartit.

### Màquina virtual/Producte del sistema Opció d'alt rendiment

    VM/SP HPO afegeix suport i funcionalitat de dispositiu addicionals a VM/SP i permet que determinades màquines S/370 que poden utilitzar més de 16 MB d'emmagatzematge real ho facin, fins a 64 MB. Aquesta versió estava pensada per a usuaris que executarien diversos convidats S/370 alhora.

### Màquina virtual/Ajut a la migració d'arquitectura estesa

    VM/XA MA està pensat per facilitar la migració de MVS/370 a MVS/XA permetent que tots dos s'executin simultàniament al mateix complex de processador.

### Màquina virtual/Sistema d'arquitectura ampliada

    VM/XA SF és un VM/XA MA actualitzat amb funcionalitat i rendiment millorats.

### Producte de màquina virtual/sistema d'arquitectura estesa

    VM/XA SP és un VM/XA MA actualitzat amb una funcionalitat i un rendiment millorats, que s'ofereix com a reemplaçament de VM/SP HPO en màquines compatibles amb S/370-XA. Inclou una versió de CMS que es pot executar en mode S/370 o S/370-XA.

### Màquina virtual/Arquitectura de sistemes empresarials

    VM/ESA proporciona les instal·lacions de VM/SP, VM/SP HPO i VM/XA SP. La versió 1 de VM/ESA es pot executar en mode S/370, ESA/370 o ESA/390; no admet el mode S/370 XA. La versió 2 només s'executa en mode ESA/390. Les versions de VM/ESA compatibles amb S/370 eren en realitat la seva pròpia versió independent de les versions ESA/390 de VM/ESA, ja que les versions S/370 es basen en la base de codi HPO VM/SP més antiga i l'ESA/390. les versions es basen en la base de codi VM/XA més nova.

### z/VM

    z/VM, l'última versió que encara s'utilitza àmpliament com una de les principals solucions de virtualització completa per al mercat de mainframe. z/VM 4.4 va ser l'última versió que es podia executar en mode ESA/390; les versions posteriors només s'executen en mode z/Arquitectura.

## Referències

* ↑ «About: VM (operating system)» (en anglès). [Consulta: 28 gener 2025].
* ↑ «IBM z/VM Operating System commands 0.01% market share in Operating Systems» (en anglès). [Consulta: 28 gener 2025].
* ↑ «Are the IBM VM and MVS OSes the TOP Operating systems?» (en anglès americà), 20-05-2005. [Consulta: 28 gener 2025].
* ↑ Virtual Machine/System Product High Performance Option Release 5 Guide (en anglès). IBM, July 1987. SC23-0189-3.
* ↑ VM/SYSTEM PRODUCT HIGH PERFORMANCE OPTION ANNOUNCED (en anglès). IBM, October 21, 1981 (Announcement Letters). ZP81-0805.
* ↑ VIRTUAL MACHINE/EXTENDED ARCHITECTURE MIGRATION AID (en anglès). IBM, October 21, 1981 (Announcement Letters). ZP81-0811.
* ↑ VIRTUAL MACHINE/EXTENDED ARCHITECTURE (VM/XA) SYSTEMS FACILITY (en anglès). IBM, February 12, 1985 (Announcement Letters). 285-044.
* ↑ VIRTUAL MACHINE/EXTENDED ARCHITECTURE SYSTEM PRODUCT (VM/XA SP) RELEASE 1 (en anglès). IBM, June 11, 1987 (Announcement Letters). 287-239.
* ↑ VIRTUAL MACHINE/ENTERPRISE SYSTEMS ARCHITECTURE VERSION 1 RELEASE 1.0 AND VERSION 1 RELEASE 1.1 (en anglès). IBM, September 5, 1990 (Announcement Letters). 290-499.
* ↑ z/VM V3R1 Enabled for 64-bit Architecture (en anglès). IBM, October 3, 2000 (Announcement Letters). 200-358.