OpenVMS

**OpenVMS** (edo **VMS,** *Virtual Memory System)* memoria birtualean oinarritutako sistema eragilea da, multierabiltzailea eta multiprozesatzailea. OpenVMS erabiltzen duten bezeroak bankuak, finantza-zerbitzuak, ospitaleak eta osasun-arreta, telekomunikazio-operadoreak, sareko informazio-zerbitzuak eta industria-fabrikatzaileak izan ohi dira. 1990eko eta 2000ko hamarkadetan, gutxi gorabehera milioi erdi VMS sistema zeuden martxan mundu osoan.

Digital Equipment Corporation (DEC) enpresak kaleratu zuen lehen aldiz, **VAX/VMS** (*Virtual Address eXtension/Virtual Memory System*) izenarekin, VAX-11/780 miniordenagailuarekin batera 1977an.   Gerora, DEC Alpha sistemetan, Itanium-en oinarritutako HPE Integritate Zerbitzarietan, x86-64 hardwarean eta hiperbistetan exekutagarri izateko eraldaketak egin zitzaizkion OpenVMSri. 2014az geroztik, VMS Software Inc. (VSI) enpresak garatzen eta mantentzen du OpenVMS.  OpenVMS bereziki ahaltsua da konputagailuen multzo handiekin jarduteko (klusterrak), hau da, sistema hainbat makina fisikotan banatzeko. Horri esker, klusterretan exekutatzen diren aplikazioak eta haien datuak eskuragarri egon daitezke uneoro, nahiz eta sistema eragilearen softwarea edo hardwarea mantentze-lanetan edo eguneratzen egon edo klusterraren zati bat suntsitu. 17 urte baino gehiago martxan egon diren VMS klusterrak ezagutzen dira.

## Historia 
### Jatorria eta izen aldaketak 
eskuinera|thumb| Digital-ek erabiltzen duen "VAX/VMS" estilizatua
1975eko apirilean, Digital Equipment Corporation-ek bere PDP-11 ordenagailu-linearako 32 biteko luzapena diseinatzeko proiektuari ekin zion. Hardwarearen osagaiari *Star* kode-izena jarri zitzaion; sistema eragileari aldiz, *Starlet*. Roger Gourd izan zen VMS proiektuaren buru. Dave Cutler, Dick Hustvedt eta Peter Lipman software ingeniariek proiektu teknikoen arduradun gisa jardun zuten.  Star eta Starlet proiektuen azken emaitza VAX-11/780 ordenagailua eta VAX/VMS sistema eragilea izan ziren. Starlet proiektuaren kode-izenak bizirik dirau VMS sistemaren hainbat liburutegietan, `STARLET.` `OLB` eta `STARLET.` `MLB`-en, adibidez. VMS gehienbat VAX MACROn mihiztadura-lengoaian idatzi zen, baina zenbait osagai BLISS programazio-lengoaian idatzi ziren. V3.0 kaleratu baino lehen, VAX/VMSk *RSX Application Migration Executive* (RSX AME) izeneko bateragarritasun-geruza bat zuen, eta horri esker, RSX-11M softwarea VMSren gainean aldaketarik gabe exekutagarri egon zen. RSX AMEk rol garrantzitsua jokatu zuen VAX/VMSren lehen bertsioetan, izan ere, RSX-11Mren erabiltzaile-moduko zenbait baliabide berrerabili egin ziren VAX/VMSn, berarentzako jatorrizko bertsioak argitaratu arte.

VAX/VMSren honako banaketak garatu ziren:

* **MicroVMS**: MicroVAX eta VAXstation hardwarerako diseinatutako VAX/VMSren banaketa, garai hartako VAX sistema handienek baino memoria eta disko espazio txikiagoa zituena.  MicroVMS-ek VAX/VMS hainbat baliabide-multzotan banatu zuen, era horretan, bezeroak bere eskakizun zehatzetara egokitu zezakeen VAX/VMS sistema, baliabideen azpimultzo bat instalatuz. MicroVMS bertsioak VAX/VMSren V4.x bertsio bakoitzerako kaleratu ziren VAX/VMS V5.0 kaleratu zen arte.
* **Mahaigaineko-VMS**: VAXstation sistemekin batera saldu zen VAX/VMSren banaketa bat izan zen, iraupen laburrekoa. CD-ROM gisa saldu zen eta VMS, DECwindows, DECnet, VAXcluster-entzako euskarria eta erabiltzaile ez-teknikoentzat diseinatutako konfigurazio prozesu bat zituen.  Mahaigaineko-VMS CDtik zuzenean exekuta zitekeen edo disko gogor batean instalatu.  Mahaigaineko-VMSk bere bertsio-eskema propioa zuen V1.0etik hasita, VMSren V5.x bertsioei zegokiona.
* '''MOS VP ( '*Multifunctional Operating System with Virtual Memory*'):'* VAX/VMSen oinarritutako banaketa ez-ofiziala (  &#x27;Funtzio anitzeko sistema eragilea memoria birtu  alarein&#x27;):  1980ko hamarkadan Sobietar Batasunean sortu zen VAX klon hardwarearen SM 1700 linearao.   MOS  VPalfabeto zirilikorako euskarria txertatu zuek softwarean eta erabiltzailearen interfazearen zatiak errusierara itzuli zituen.     M*icroMOS VP* izenaz ezagutzen ziren MicroVMSren antzeko banaketa k(   ) edo *MOS-3M*   ) ere sortu ziren errusieraz eta alfabeto zirilikoarekin.

1988ko apirilean V5.0 bertsioa kaleratu ondoren, VAX/VMS izendatzeko VMS erabiltzen hasi zen DEC bere dokumentazioan. 1992ko uztailean, OpenVMS izenaz berrizendatu zuen, software irekiko industriako estandarrak betetzen zituela adierazteko, horien artean POSIX eta Unixekiko bateragarritasuna, eta VAXekiko konexioa bertan behera utzi zuen beste arkitektura baterako migrazioa egiten ari zelako. OpenVMS izena OpenVMS AXP V1.0 bertsioarekin erabili zen lehen aldiz 1992ko azaroan. 1993ko ekainean hasi zen OpenVMS VAX izena erabiltzen, V6.0 bertsioa argitaratzean.

### Alpha arkitekturara eramatea 
thumb| OpenVMSren "Vernon the Shark" (euskaraz, "Vernon marrazoa") logotipoa
1980ko hamarkadan, DECek VAX plataforma eta VMS sistema eragilea PRISM arkitektura eta MICA sistema eragilearekin ordezkatzea pentsatu zuen. 1988an proiektu horiek bertan behera utzi zituztenean, talde bat sortu zen RISCen oinarritutako Unix sistemen pareko errendimenduko VAX/VMS sistema berriak diseinatzeko. VAXekin bateragarria zen prozesadore azkarrago bat diseinatzeko saiakerak porrot egin ostean, taldeak VMS eta bere aplikazioak PRISMen oinarritutako RISC arkitekturara eramatea bideragarria zela frogatu zuen. VMS Alphara eramateko proiektua 1989an hasi zen, eta Alpha EV3n oinarritutako *Alpha Demonstration Unit* prototipo batean abiarazi zen lehen aldiz 1991eko hasieran.  

VMS eta VAX batera diseinatu izana oztopo handia izan zen VMS beste arkitektura batera eramaterako orduan, izan ere, VAX arkitekturaren xehetasun batzuen mende zegoen VMS. Gainera, VMSren nukleoa, geruzetako produktuak eta bezeroek garatutako aplikazioak neurri handi batean VAX MACROren mihiztadura-kodean inplementatu ziren. Konpilatzaileak VAX arkitekturaren behe-mailako zenbait xehetasun emulatzen zituen PALcoden, adibidez, etenen kudeaketa eta ilara atomikoen gaineko aginduak.

VMS Alphara eramateak bi kode-oinarri desberdinen sorrera ekarri zuen: bata VAXerako eta bestea Alpharako. Alpha koderako liburutegia VAX/VMSren aurreko kode-oinarri batean oinarritu zen, V5.4-2 bertsiokoan gutxi gorabehera. OpenVMS AXPren ekoizpen aurreko kalitate-argitalpenen bertsioak 1.x moduan izendatzeak nahasmena sortu zuen bezero batzuengan, eta hurrengoetarako aldatu egin zen bertsioak izendatzeko modua.  64 biteko kodea 32 biteko kode zaharragoekin erabili ahal izateko, OpenVMSk ez du bereizketarik egiten 32 biteko eta 64 biteko exekutagarrien artean, horren ordez, 32 biteko eta 64 biteko erakusleak erabiltzeko aukera ematen du kode berean. Hori dela eta, erakusle mistoetarako euskarria eskaintzen duela esaten da. 64 biteko OpenVMS Alpha bertsioek 8TB-ko gehienezko helbideratze-espazio birtuala onartzen dute (43 biteko helbideratze-espazioa), hau da, Alpha 21064-ek eta Alpha 21164-ek onar dezaketen handiena.

OpenVMSen, Alpha-rako bakarrik existitzen zen funtzionalitate aipagarrienetako bat *OpenVMS Galaxy* zen. Hark, OpenVMSren hainbat instantzia aldi berean exekutatu ahal izateko, SMP zerbitzari bakar baten partizio logikoa sortzeko aukera ematen zuen. Abian zeuden partizioetan baliabideen esleipen dinamikoa egitea onartzen zuen Galaxy-k, eta partizioen artean memoria partekatzeko gaitasuna ere eskaintzen zuen.

### Intel Itanium-era eramatea 
2001ean, Hewlett-Packard-ek erosi aurretik, OpenVMS Intel Itanium arkitekturara eramango zuela iragarri zuen Compaq-ek. Alpha arkitekturaren garapenarekin ez segitzea eta horren ordez, garai hartan berria zen Intel Itanium arkitekturarako migrazioari ekin zion horrela Compaq-ek. Migrazioa 2001aren amaieran hasi zen, eta lehenengo abiatzea 2003ko urtarrilaren 31n egin zen. Lehen abiatze hartan, sistemaren konfigurazio minimo bat jarri zen martxan HP i2000 lan-estazio batean, erabiltzaile moduan SYSTEM erabiliz eta DIRECTORY agindua exekutatuz.  Itanium-erako OpenVMSk *HPE Integrity Server*s-en eredu eta konfigurazio espezifikoak onartzen zituen. Itanium-erako bertsioei hasieran, *HP OpenVMS Industry Standard 64 for Integrity Servers* izena eman zitzaien, baina *OpenVMS I64* edo *OpenVMS for Integrity Servers* izenak maizago erabiltzen ziren. 

Itaniumerako migrazioa Alpharako kodearen liburutegiarekin batera mantendutako iturburu-kodea erabiliz egin zen, baldintzazko kodea eta modulu gehigarriak gehituta, Itaniumerako egindako aldaketa espezifikoak zehazteko. OpenVMSk arkitekturarekiko zituen hainbat mendekotasun ordeztu edo software bidez emulatu egin behar izan ziren. Egin behar izan ziren aldaketa batzuk hauek dira:  sistema eragilea abiarazteko *Extensible Firmware Interface* (EFI) erabiltzea, Alpha PALcode-k nukleoaren barruan aurrez emandako funtzionalitatea berrezartzea, artxibo exekutagarrietarako formatu berriak erabiltzea  (*Executable and Linking Format* eta *DWARF*), eta koma mugikorrerako IEEE 754 formatua lehenestea.

VAXetik Alpharako migrazioan bezala, Alphatik Itaniumerako urratsean ere itzultzaile bitar bat erabili zen, iturburu-kodea birkonpilatzea posiblea ez zen egoeretan OpenVMS Alpha softwarea Itaniumera eramateko. Itzultzaile horrek *Alpha Environment Software Translator* (AEST) izena du, eta VAXerako exekutagarrien itzulpenerako ere erabil zitekeen, aldez aurretik VEST bidez itzuli ondoren.

Aurreprodukziozko bi bertsio, OpenVMS I64 V8.0 eta V8.1, eskuragarri egon ziren 2003ko ekainaren 30ean eta abenduaren 18an. Bertsio horiek HP erakundeentzat eta OpenVMS I64-ra software-paketeak migratzeaz arduratzen ari ziren hornitzaileentzat ziren. Lehen produkzio-bertsioa, V8.2, 2005eko otsailean argitaratu zen. V8.2 bertsioa ere argitaratu zen Alpharako, OpenVMSren ondorengo V8.x bertsioek Alpha eta Itanium arkitekturetarako ezaugarriak mantendu dituzte.

### x86-64ra eramatea
VMS Software Inc. (VSI) enpresak HPren eskutik OpenVMS sistema eragilea garatzeko eskubideak lortu zituztela iragarri zuenean, OpenVMS x86-64 arkitekturara eramateko asmoa zuela adierazi zuen. Migraziorako ahalegina enpresa ezartzearekin batera egin zen, baita Itanium eta Alpha arkitekturetarako OpenVMS V8.4-x bertsioetarako VSIren garapen propioak sortzearekin batera ere.

x86-64rako migrazioa HPE eta Dell-en zerbitzari espezifikoetarako egin zen, baita makina birtualen hiperbisore batzuetarako ere.  Hasierako euskarria *Kernel-based Virtual Machine* (KVM)-erako eta VirtualBox-erako egin zen. VMware-rako euskarria 2020an iragarri zen, eta Hyper-V etorkizuneko helburu gisa finkatu zuten. 2021ean egiaztatu zen x86-64-rako migrazioak Intel Atom-en oinarritutako ordenagailu batean funtzionatzen zuela.

Alpha-rako eta Itanium-erako migrazioekin bezala, x86-64-ra eramatean ere zenbait aldaketa egin ziren plataforma berrian eramangarritasuna eta OpenVMSren euskarria sinplifikatzeko: VMS konpilatzaileek erabiltzen zuten atzeko GEM konpilatzaile jabeduna LLVM konpilatzaileaz ordeztu,; abiatze-prozesua aldatu, OpenVMSren abiatzea memoria-disko batetik egiteko eta OpenVMSren lau pribilegio-mailak software bidez simulatu; izan ere, x86-64ko pribilegio-mailetako bi bakarrik erabil zitzakeen OpenVMSk. 

Lehen abiatzea 2019ko maiatzaren 14an iragarri zen. Horrek OpenVMS VirtualBox-en abiatzea esan nahi zuen eta DIRECTORY komandoa arrakastaz exekutatzea.  2020ko maiatzean, V9.0 *Early Adopter's Kit* bertsioa bezero gutxi batzuen eskura jarri zen. Horretarako, OpenVMS sistema eragilea VirtualBox makina birtualean martxan jarri zen muga batzuekin. Garrantzitsuenak, geruza-produktu gutxi jarri zirela eskuragarri, eta kodea x86-64rako soilik konpilatu daitekeela, Itaniumen oinarritutako OpenVMS sistemekin funtzionatzen duten zeharkako konpiladoreak erabiliz. V9.0ren ondoren, VSIk hainbat eguneratze egin zituen hilero edo bi hilean behin, funtzionalitate gehigarriak eta hiperbisoreetarako euskarria eransteko. Bertsioak V9.0-A-tik V9.0-H-ra izendatuak izan ziren.. 2021eko ekainean, VSIk V9.1 Field Test kaleratu zuen, VSIren bezero eta bazkideentzat.  V9.1 bertsioa ISO irudi gisa eskaintzen da eta hainbat hiperbisoretan instala daiteke, V9.1-A bertsiotik aurrera baita HPE ProLiant DL380 zerbitzarietan ere. 

x86-64-rako OpenVMS 9.2 bertsioak eskuragarritasun orokorra lortu du 2022ko uztailaren 14an. 

### Eragina
1980ko hamarkadan, PRISM arkitekturarako MICA sistema eragilea VMSren behin-behineko ondorengoa izatea espero zen. VMS aplikazioekin bateragarri izateko diseinatu zen MICA, eta baita Ultrix aplikazioetarako euskarria emateko ere, nukleo beraren gainean. Azkenean, MICA bertan behera geratu zen, PRISM plataformaren gainerakoarekin batera, eta, horren ondorioz, Dave Cutler-ek DEC utzi zuen Microsoftera joateko. Microsoften, Cutler izan zen Windows NT sistema eragilearen sorrera gidatu zuena, neurri handi batean MICAren arkitekturan inspiratuta. Hori dela eta, Windows NT-ren asaba moduan hartzen da VMS, RSX-11rekin, VAXELN-rekin eta MICA-rekin batera; antzekotasun handia dago VMSren eta NTren artean.

VMSren arauei jarraituz, kode irekiko sistema eragile bat garatzeko egitasmoa izan zen, *FreeVMS* izeneko proiektua, baina gaur egun ez dago indarrean. L4 microkernel-aren gainean eraikia dago eta x86-64 arkitekturan erabil daiteke. Microkernel-etan oinarritutako arkitekturak erabiliz VMSren inplementazioak sortzeko ikerketak egin zituzten DECeko langileek Carnegie Mellon Unibertsitatearen laguntzarekin, VAXstation 3100 hardwarera migratutako Mach 3.0 mikrokernela erabiliz, eta arkitekturarako eredu multi-zerbitzaria erabiliz. 

## Arkitektura
thumb|275px|OpenVMS sistema eragilearen arkitektura, sistemaren geruzak eta funtzionatzeko moduak erakusten dituena

OpenVMS sistema eragileak geruza-arkitektura bat du, pribilegioak dituen *Executive* geruza dago, tarteko-mailako baimenak dituen komandoen interpretatzailea (*Command Language Interpreter*) eta pribilegiorik gabeko erabilgarritasunak eta exekuziorako liburutegiak (*run-time libraries,* RTLs)). Pribilegiorik gabeko kodeak sistemaren zerbitzuak (beste sistema eragile batzuetako sistema-deien baliokideak) erabiliz *Executive*-ren funtzionaltasuna martxan jartzen du.

OpenVMSren geruzak eta mekanismoak VAX arkitekturaren ezaugarri batzuen inguruan eraikitzen dira, hala nola:

* Prozesadorera iristeko lau modu izatea (*Kernel*, *Executive*, *Supervisor* eta *User* izenekoak, pribilegio handienekotik txikienekora). Modu bakoitzak bere pila du, eta memoria-orri bakoitzak memoria-babes espezifikoak izan ditzake.
* Helbide birtualetarako espazioa, bi atal bereizten dituena: prozesuetarako espazio pribatua eta sistemaren espazioa, prozesu guztietarako komuna dena.
* Etenetarako 32 lehentasun-maila, sinkronizaziorako erabiltzen direnak.
* Desbiderapen asinkronoak (*asynchronous system trap*) hardware-euskarria prozesuen esku jartzeko.
VAX arkitekturaren mekanismoak Alpha-rako, Itanium-erako eta x86-64-rako inplementatuta daude, arkitektura horien hardware-mekanismoetara mapeatuz, edo emulatuz (Alphan PALcode bidez, edo Itanium-en eta x86-64-en softwareen bidez).  Exekutibo-moduan exekutatzen ari den kodea nukleo-moduan exekutatzera pasa daiteke, hala nahi bada. Ustekabeko akatsen kontrako babes gisa bereizten dira bi moduak.

*Kernel*-ak edo nukleoak sistema eragilearen funtsezko datu-egiturak (orrien taulak, sarrera/irteera eta planifikazio-datuak) eta egitura horietan eragiten duten errutinak biltzen ditu. Nukleoak hiru azpisistema nagusi ditu: sarrera/irteera, prozesuen planifikazioa eta denboraren zein memoriaren kudeaketa. Horri esker sistemaren espaziotik kanpo dagoen kodeak zuzeneko atzipena izango du *Executive*-ko errutinetara eta sistemaren zerbitzuetara. Gainera, sistema eragilearen oinarrizko zerbitzuek pribilegiodun irudiak erabiltzen dituzte, dokumentatu gabeko interfazeen bidez sistema eragilearen datu-egiturak manipulatzeko.

### Fitxategi-sistema
Erabiltzaileek eta aplikazioek fitxategi-sistemarekin eragiteko modu ohikoena Erregistroak kudeatzeko zerbitzuak (*Record Management Services*, RMS) prozedurak erabiltzea da, nahiz eta aplikazioek azpiko fitxategi-sistemarekin zuzenean eragin dezaketen S/Iko ilaren *(Queue I/O*, QIO) zerbitzuen bidez. VMSk onartzen dituen fitxategi-sistemak *Files-11 On-Disk Structures* (ODS) izenez ezagutzen dira, eta garrantzitsuenak *ODS-2* eta *ODS-5* dira.

2TB bolumenera mugatuta dago *Files-11*. Horren ordez, kode irekiko GFS2 fitxategi-sistema OpenVMSra eramatearen eztabaida sortu zen.

### Komendoen Iterpretatzailea (*Command Language Interpreter*)
OpenVMSren *Command Language Interpreter* (CLI) komando-lerroko interfaze baten inplementazioa da; komandoen (aginduen) eta komando-prozeduren (shell script-en edo batch-fitxategien baliokideen) exekuzioaz arduratzen da. OpenVMSrako CLI estandarra  *DIGITAL Command Language* da, baina beste aukera batzuk ere badaude.

Unixeko shell-etan ez bezala (normalean, beren prozesu isolatuan exekutatzen dira, eta beste edozein erabiltzaile-moduko programek bezala jokatzen dute), OpenVMSko CLIak prozesu baten hautazko osagaia dira, eta prozesu horrek exekuta dezakeen edozein irudi exekutagarrirekin batera doaz. Nodoak elkarren artean konektatuta egon daitezke hardware-konexio jabedun baten bidez (*Cluster Interconnect*) edo Ethernet konexio estandar baten bidez.

OpenVMSk kluster batean 96 nodora arte onartzen ditu. Arkitektura mistoko klusterrak ere onartzen ditu (VAX, Alpha eta Itanium konputagailuek arkitektura desberdinak dituzte) Aurreikusitako etenaldiak hardware eta software eguneratzeak izan daitezke, adibidez. VMSren bertsio modernoek DECnet IV faseko protokolo tradizionala onartzen dute, baita OSIrekin bateragarria den V fasea ere (*DECnet-Plus* izenez ere ezaguna). TCP/IP protokoloa ere onartzen du OpenVMSk, baldin eta *OpenVMSrako TCP/IP Zerbitzuak* produktua instalatuta badago (hasieran VMS/ULTRIX izena jarri zitzaion, ondoren ULTRIX *Communications Extensions* edo UCX).  SSH, DHCP, FTP eta SMTP protokoloetarako euskarria ere badu OpenVMSk, denak ere, BSD sare-pilaren ataka batean oinarrituak daudenak.  

DECek PATHWORKS izeneko software pakete bat saldu zuen (hasieran PCSA edo *Personal Computer Systems Architecture* izenez ezaguna) MS-DOS, Microsoft Windows, OS/2 edo Apple Macintosh erabiltzen zuten ordenagailuak VMS sistemetako terminal gisa erabili ahal izateko edo VMS sistemak fitxategien edo inprimagailuen zerbitzari moduan erabiltzeko. Gerora, *Advanced Server for OpenVMS* izena eman zitzaion PATHWORKS-i (OpenVMSrako zerbitzari aurreratua), eta Itanium arkitekturarako migrazioa egin zen garaian Samba-ko VMS ataka batez ordezkatua izan zen.

DECek *Local Area Transport* (LAT) protokoloa eskaintzen zuen, eta horri esker urruneko terminal eta inprimagailuak VMS sistemetara konekta zitezkeen terminalen zerbitzarien bidez, DECserver familiako baten bidez, adibidez.

### Programazioa 
DECek (eta lekukoa hartu zioten enpresek) VMSn programazio-lengoaia ugari erabiltzeko aukera eman zuen. VMSn ofizialki onartzen diren lengoaiak, gaur egungoak edo garai batekoak , hauek dira: VAX MACRO, BLISS, C, DCL, Fortran, Pascal, COBOL, BASIC, C++, Java, Common Lisp, APL, Ada, PL/I, DIBOL, CORAL, OPS5, RPGII, MUMPS, MACRO-11, DECTPU, VAX SCAN.

OpenVMSren ezaugarri aipagarrienetako bat *Common Language Environment* (euskaraz, Lengoaien Ingurune Komuna) da, zorrozki definitutako estandarra, funtzioei eta errutinei dei egiteko arauak zehazten dituena eta gainera, programazio-lengoiaren araberakoak ez diren pila, erregistro etab.en erabilera zehazten duena. Horri esker, lengoaia batean idatzitako errutina bati (Fortran-en, adibidez) beste batetik (COBOL-en idatzitakotik, adibidez) deitzea posiblea da, beste programazio-lengoaiaren xehetasunak ezagutzeko beharrik gabe. OpenVMS bera lengoaia askotan inplementatuta dago, baina Lengoaien Ingurune Komunari eta deietarako estandarrari esker, lengoaia horiek guztiak konbinatu ahal izatea lortzen da. DECek Egituren Definiziorako Lengoaia (ingelesez, *Structure Definition Language,* SDL) izeneko tresna sortu zuen, lengoaia ezberdinetatik erabiliko ziren datu-egituren definizioak erazagupen komun batetik sortzeko. 

#### Garapenerako tresnak 
thumb| VAX/VMSren dokumentazioaren "Horma Grisa", Living Computers: Museum + Labs-en kokatua.
DECek softwarea garatzeko tresnen bilduma bat argitaratu zuen *DECset* izeneko produktu batean (jatorriz *VAXset* izenekoa). Horrez gain, testu-editore batzuk ere sartu ziren, besteak beste, EDT, EVE eta TECO.

*OpenVMS Debugger* araztaileak DECen konpilatzaile guztiak onartzen ditu, baita beste hainbat programazio-lengoaia ere. Eten-puntuen eta zaintza-puntuen bidezko arazketa egiteko gai da eta gainera, programa exekutatzen den bitartean ere egin daiteke arazketa modu interaktiboan, komando-lerroa edo erabiltzailearen interfaze grafikoa erabiliz. Behe-mailako araztaileak ere badaude, *DELTA* eta *XDELTA*, kode arrunta arazteaz gain pribilegio bereziko kodea ere arazteko.

2019an, VSIk garapen-ingurune integratu bat kaleratu zuen VMSrako, Visual Studio Code-n oinarritua. Horri esker, urrunetik garatu eta araztu daitezke VMS aplikazioak Microsoft Windows, macOS edo Linux lan-estazioetatik.

#### Datu-baseen kudeaketa 
DECek datu-baseak kudeatzeko hainbat produktu sortu zituen VMSrako, eta horietako batzuk *VAX Information Architecture* izeneko familiaren baitan merkaturatu ziren. Produktu horiek honakoak zituzten:

* *Rdb*: Datu-base erlazionala, hasiera batean jabegodun *Relational Data Operator* (RDO) kontsulta-interfazea erabiltzen zuena baina gerora SQL  erabiltzera igaro zena.
* *DBMS:* Datu-baseak kudeatzeko sistema, CODASYL sare-eredua eta *Data Manipulation Language* (DML) erabiltzen dituena.
* *Digital Standard MUMPS* (DSM): programazio-lengoaia integratua eta gako-balio motako datu-basea.
* *Common Data Dictionary* (CDD): datu-base eskemen biltegi zentral bat, aplikazio ezberdinen artean datu-baseen eskemak partekatzeko eta programazio-lengoaia ezberdinetan erabiltzeko datu-definizioak sortzeko aukera ematen duena.
* *DATATRIEVE*: RMS fitxategietatik eta Rdb eta DBMS datu-baseetatik datuak atzitzeko gaitasuna duen kontsultarako eta txostenak egiteko tresna.
* *Application Control Management System* (ACMS):  transakzioak prozesatzeko monitorea, goi-mailako *Task Description Language* (TDL) lengoaia erabiliz aplikazioak sortzeko aukera ematen duena. Transakzio baten urratsak DCL aginduak edo *Common Language Environment* prozedurak erabiliz inplementa daitezke. Erabiltzailearen interfazeak inplementa daitezke TDMS, DECforms edo Digital-en ALL-IN-1 ofimatika produktua erabiliz. 
* *RALLY*, *DECadmire* - Datu-baseetan babestutako aplikazioak sortzeko laugarren belaunaldiko programazio-lengoaiak (*fourth-generation programming languages,* 4GLs).  DECadmire ACMSrekin integratu zen, eta gerora Windows PCrako Visual Basic erabiltzen duten bezero-zerbitzari aplikazioak sortzeko euskarria gehitu zion.

1994an, Rdb, DBMS eta CDD Oracle enpresari saldu zizkion DECek, eta gaur egun enpresa horrek produktu horien garapenarekin segitzen du. 1995ean, DSM InterSystems enpresari saldu zion DECek. InterSystems-ek *Open M* izena jarri zion, baina azkenean bere Caché produktuarekin ordezkatzea erabaki zuen.

Aipatutakoez gain, datu-baseak kudeatzeko sistema hauek ere erabil daitezke OpenVMSn: MariaDB, Mimer SQL eta System 1032.

### Erabiltzaile-interfazeak 
eskuinera|thumb| OpenVMS Alpha V8.4-2L1, DCL CLI erabiltzaile-interfaze lehenetsia erakusten terminaleko saio batean.
Hasieran, testuan oinarritutako DECen terminaletan modu interaktiboan erabiltzeko eta kudeatzeko diseinatu zen VMS (DECen VT100 terminalean edo DECwriter seriekoetan, adibidez). 1984an VAXstation lerroa aurkeztu zenetik, VMS erabiltzaile-interfaze grafikoetan erabil zitekeen lan-estazioetan eta X terminaletan (VT1000 seriekoetan, adibidez).

#### Testuan oinarritutako erabiltzaile-interfazeak 
OpenVMS sistema eragilearen lehen bertsioa argitaratu zenetik, *DIGITAL Command Language* (DCL) izan da haren agindu bidezko lengoaiaren interpretatzaile nagusia (*Command Language Interpreter*, CLI). Behe-mailako interfaze bat ere bazegoen, *Screen Management Services* (SMG$) izenekoa, Unix-erako *curses*-en antzekoa.

#### Erabiltzaile-interfaze grafikoak (GUI) 
Urteetan zehar, VMSk hainbat GUI interfaze eta tresna erabili ditu:

* VMSren jatorrizko interfaze grafikoa *VMS Workstation Software* (VWS) izan zen, 1984ean VAXstation I-erako sortu zen leiho-sistema jabeduna. *User Interface Services* (UIS) izeneko API bat zuen. VAX hardware sorta mugatu batean funtzionatzen zuen.
* 1989an, DECek X11n oinarritutako leiho-sistema berri batez ordezkatu zuen VWS: *DECwindows*. VAX/VMS V5.1 bertsioan erabiltzeko eskaini zen lehen aldiz. *DECwindows*-en lehen bertsioek *X User Interface* (XUI) izeneko tresna-sorta baten gainean eraikitako interfazea izan zuten. UISX izeneko produktu bat ere eskaini zen, VWS/UIS aplikazioak *DECwindows*-en exekutatu ahal izateko. Ondoren, *Open Software Foundation*-ek XUI-ren zatiak erabili zituen, *Motif* tresna-sorta garatzeko.
* 1991n, DECek XUIren ordez *Motif tresna-sorta* erabiliz *DECwindows Motif* sortu zuen. Horren ondorioz, OpenVMS V6.0 bertsioan *Motif Window Manager* bihurtu zen lehenetsitako DECwindows interfazea bihurtu zen, nahiz eta XUI leiho kudeatzailea aukera moduan erabilgarri mantendu zen. Alpha eta Itanium sistemetan, saioa hastean oraindik ere hauta daiteke MWMn oinarritutako erabiltzaile-interfaze zaharragoa ("*DECwindows Desktop*" izenez ezagutzen dena). *New Desktop* ez zen inoiz OpenVMSren VAX bertsioetara eraman.

90eko hamarkadan, DEC-Alpha lan-estazioetan exekutatzen ziren VMSren bertsioek *OpenGL* eta *Advanced Graphics Port* (AGP) grafikoetarako egokitzaileak erabiltzeko aukera eman zuten. Estandar grafiko zaharragoetarako euskarriak ere eskaintzen ziren, hala nola GKS eta PHIGS. *DECwindows*-en bertsio modernoak *X.Org Server*-en oinarritzen dira. Estatu Batuetako *Trusted Computer System Evaluation Criteria* (TCSEC) irizpideen arabera, C2 klasean kokatzen da OpenVMV (hau da, fidagarritasun maila ertainekoa) eta indartutako segurtasuna duen SEVMS bertsioa B1 klasean (fidagarritasun maila altukoa). Sistema informatikoen segurtasun-maila neurtzeko ITSEC eskalan E3 baloratioa du OpenVMSk (E0 izanik balorazio baxuena eta E6 altuena) (ikus *National Computer Security Center* (NCSC) eta *Common Criteria*). Pasahitzen hash-ak Purdyren polinomioa erabiliz lortzen dira.

#### Ahuldadeak 
* VMSren lehen bertsioetan, pribilegiodun erabiltzaile-kontu batzuk zeuden (`SYSTEM`, FIELD, SYSTEST eta `DECNET` barne). Kontu horiek lehenetsitako pasahitzak zituzten eta sistemaren kudeatzaileek sarritan  ez zituzten pasahitz horiek aldatzen. Hainbat konputagailu har sortu ziren, *WANK* harra eta *Father Christmas* harra kasu, kontu horien pasahitzak lortu eta *DECnet* sareetara sartzeko. V5.0 bertsioan kontu horiei ez zitzaien lehenetsitako pasahitzik jarri eta, harrezkero, sistemaren konfigurazioa egitean kontu horietarako pasahitzak zehaztu behar izan zituzten erabiltzaileek nahitaez. esleitu zitzaion. Ahuldade horren ondorioz, plataforma horietan DCL agindu-lerrora sartzeko aukera zuen erasotzaileak pribilegioen eskalan gora eginez erasoa egin ahal izango zuen. Ahuldadea horrela azal daiteke: DCL agindu-prozesatzailearen kodean akatsa zegoen bufferaren gainezkatzearen tratamenduan, erabiltzaileak martxan zegoen programa exekutagarri bat geldiarazi zezakeen CTRL/Y erabiliz eta komando lerroko prompt-era bueltatuz, eta arazoa sortzen zen DCLk geldiarazitako programaren baimen edo pribilegioak mantentzen zituelako. Horrela, shell kodea exekuta zitekeen geldiarazitako programa exekutagarriaren baimenekin. Erasotzailearen erabiltzaile-kontuaren baimen-maila baino altuagoko programa exekutagarri bat izanez gero, erasotzaileak ahuldade horri etekin atera ziezaiokeen sistemaren segurtasuna saihesteko.

## Zaletuen programak
1997an, OpenVMS eta zenbait geruza-produktu doan eskaini ziren zaletuentzat erabilera ez-komertzialerako, *OpenVMS Hobbyist Program* programaren barruan. Orduz geroztik, OpenVMS softwarea ekoizte duten zenbait enpresak baldintza beretan jarri dituzte eskura haien produktuak, *Process Software*, adibidez.  x86-64 arkitekturarako migrazioa egin aurretik, OpenVMS erabiltzeko gai zen hardwarea zaharra eta garestia zenez, SIMH moduko emuladoreak erabiltzen zituzten zaletuek OpenVMS instalatzeko.

2020ko martxoan, HPEk *OpenVMS Hobbyist Program* programaren amaiera iragarri zuen. Horren ondoren, HPEren *OpenVMS Hobbyist Program* ordezkatzeko asmoz, *Community License Program'' (CLP) iragarri zuen VSIk, 2020ko apirilean. 2020ko uztailean atera zen CLP, eta Alpha eta Integrity sistemetarako OpenVMSren bertsioetarako lizentziak eskaintzen ditu. x86-64 arkitekturarako OpenVMSren lizentziak eskuragarri egongo dira arkitektura horretarako bertsio egonkor bat argitaratzen denean. CLP ezin da erabili VAXetan OpenVMS instalatzeko, VSIk ez baitauka VAXerako OpenVMSren bertsiorik, eta bertsio zaharrak oraindik HPErenak baitira.

## Erreferentziak 
## Ikus, gainera 
* OpenSSL
* Sistema eragileen arkitektura

## Kanpo estekak