Az OpenVMS – Open Virtual Memory System, 1991-től OpenVMS – a Digital Equipment Corporation eredetileg VAX architektúrára írt operációs rendszere (a Programmed Data Processor – PDP – architektúrán futó RSX utóda), mely nem hasonlít sem a Unixra sem más rendszerekre az RSX-en kívül. Később portolták DEC Alphára is, és elérhető ma már Intel Itanium platformon is. Az OpenVMS portját x86-64 architektúrára 2020 május 18-án adták ki.

Többfelhasználós, többprocesszoros, virtuális memóriát használó rendszer. A folyamatok prioritásának megfelelő beállítása esetén megközelíti a valós idejű rendszereket. Klaszterezéssel jó elérhetőséget ér el, egy rendszer képes egyidejűleg több fizikai számítógépen futni. Ez lehetővé teszi, hogy a rendszer képes legyen eltűrni egyes adatfeldolgozó egységek kiesését.

Régebbi neve VMS Operating System (VAX-11/VMS, VAX/VMS), és a Digital Equipment Corporation fejlesztette. A Digital Equipment Corporation utódja, a Hewlett-Packard 2014 közepén a VMS Software Inc. (VSI)-re bízta a rendszer további fejlesztését, és ehhez átengedte a korábbi gárdát is.

A forráskód szabadon elérhető, de a licence megtiltja például a weben történő elhelyezést. Külön telepíthető rá TCP/IP hálózat (6.0 alatti VMS-ek esetén a neve UCX, afölött TCP/IP), de a rendszer a legtökéletesebben a DECnet protokollt integrálja. Kaphatók rá egyéb TCP/IP stack-ek is, mint például a Cisco MultiNet.

Elérhető rá egy X Window System implementáció, amely a DECWindows névre hallgat. A régebbi VAX-11/VMS rendszereken nem volt grafikus felület. A DEC VAXstation 1980-as évekbeli megjelenése előtt szövegesen kezelték a bemenetet terminálokon, mint a VT100-on. A DEC Alpha munkaállomásokon futó VMS verziók az 1990-es években támogatták az OpenGL-tOpenGL Frequently Asked Questions (FAQ) [1/3]. Faqs.org. Retrieved on 2013-07-17. és az Accelerated Graphics Port (AGP) grafikus adaptereket.

Vállalatok, intézmények különböző célokra használják, mint e-mailszerver, hálózati kiszolgáló, nyomon követés és megfigyelés, kritikus alkalmazások és adatbázisok, és olyan környezetek, ahol fontos az állandó rendelkezésre állás és az adatok hozzáférhetősége. A klaszterezés és a gördülő frissítések lehetővé teszik, hogy a rendszer futás közben frissüljön, és új verziót telepítsen, miközben az adatokhoz bármikor hozzá lehet férni, és az alkalmazásokat sem kell leállítani. Az egyik adatközpont kiesése sem okoz nagy problémákat. Így a rendszer megállás nélkül futhat több, mint 10 évig.

Fő kiadások idővonala Dátum Verzió Megjegyzés 1977. október 25. V1.0 VAX-11/780, Eredeti kereskedelmi kiadás 1980. április V2.0 VAX-11/750 1982. április V3.0 VAX-11/730 1984. szeptember V4.0 VAX 8600 és MicroVMS (MicroVAX-ra) 1988. április V5.0 VAX 6000 1992. november V1.5 első OpenVMS AXP (Alpha) specifikus verzió 1993. június V6.0 VAX 7000 and 10000 1994. április/május V6.1 VAX és Alpha AXP verzió számok összeolvadása 1996. január V7.0 teljes 64 bites virtuális címzés az Alpha-kon 1997. V7.1 2003. június V8.0 limitált elérhetőségű kipróbálási verzió az Integrity-hez 2005. február V8.2 Common Alpha és Itanium kiadás 2006. szeptember V8.3 Alpha, Itanium dual-core támogatás 2007. október V8.3-1H1 c-Class Integrity blade szerver támogatás 2010. június V8.4 HPVM virtuális gépen futtatható,klaszterek TCP/IP fölött

Képességek Az OpenVMS sok olyan képességgel bír, melyek most szabvány követelmények minden magas szintű szerver operációs rendszerrel szemben. Ezek közé tartozik: Integrált hálózati támogatás (eredetileg DECnet, később TCP/IP) Szimmetrikus, aszimmetrikus, NUMA multiprocesszoros támogatás, beleértve a klaszterezést is Hierarchikus, sok képességgel ellátott fájlrendszer (Files-11) Integrált adatbázis-rendszer, mint RMS, és relációs adatbázisok, mint Rdb, Oracle Database, MariaDB és PostgreSQL Több programnyelv támogatásaOpenVMS documentation; see the language documentationOpenVMS Freeware ; see the BLISS, Macro64, OPS5, Perl, PHP, Tcl/Tk and other language kits and tools A különböző programnyelvek közötti hívások szabványos összekapcsolása Bővíthető héj parancsnyelv (DIGITAL Command Language) A processzorok hardver particionálása Magas szintű biztonságNational Computer Security Center (NCSC) Trusted Product Evaluation List (TPEL) Grafikus felhasználói felület Az OpenVMS a DECwindows Motif felhasználói interfészt használja, ami a CDE-n alapul, és az OpenVMS X11 felületén fut. A régebbi verziókon egy saját grafikus felhasználói felület működött, a VWS/UIS. Az Ultrix operációs rendszer is a DECwindows-t használta. Klaszterezés Az OpenVMS támogatja a klaszterezést, melyet először a VAXcluster, majd VMScluster valósított meg. A klaszterezés lényege, hogy több rendszer működik együtt, közösek az adattárak, a feldolgozás, a feladatsor és a nyomtatási sor. Az összekapcsolt egyes rendszerek, számítógépek a klaszter nódusai. Ezeket vagy a saját Cluster Interconnect vagy a szabvány LAN kapcsolja össze, ami többnyire Ethernet. Egy LAN alapú klaszter neve gyakran LAVc, ami az angol Local Area Network VMScluster rövidítése, és lehetővé teszi többek között egy esetlegesen lemez nélküli szatellit nódus indítását hálózaton keresztül a klaszter egy másik nódusának rendszerlemezével.

A VAXcluster támogatását a 4. verzióban vezették be, ami 1984-ben jelent meg. Ekkor még csak CI fölött lehetett klaszterezni. Később még a 4. verzióban bővítették a képességet a LAN (LAVC) klaszterezéssel, amit tovább javítottak az 1988-ban kiadott 5. verzióban.

A különböző technológiák és kapcsolódások keveredhetnek is, így használhatók Gigabit Ethernet (GbE), SCSI, FDDI, DSSI, CI és Memory Channel adapterek. Nemcsak a technológiák keveredhetnek, hanem architektúrák is, egy klaszter tartalmazhat VAX és Alpha, vagy Alpha és Itanium gépeket. Egy klaszterben legfeljebb 96 gép lehet. Egyes helyeken találhatók mindhárom architektúrát és akár 150 nódust tartalmazó klaszterek is, de ezek nem élvezik a HP támogatását.

Sok más klaszterezési megoldástól eltérően a VMScluster átlátható és teljesen elosztott írás-olvasást tesz lehetővé rekord szintű zárolással. Ez azt jelenti, hogy egy lemez, sőt egy fájl is elérhető egyszerre több nódusról írásra. A zárolás egyszerre csak egy rekordot zárol, ami adatbázisban egy rekord, szövegfájlban egy sor. Ez lehetővé teszi többszörös redundanciájú, nagy elérhetőségű adatbázisszerverek létrehozását.

Egy klaszter 500 mérföldes távolságot hidalhat át, ami lehetővé teszi, hogy egy városban több telephely, sőt több városban levő telephelyek is ugyanahhoz a klaszterhez tartozzanak.

A host alapú tükrözés megengedi, hogy több controller és host között tükrözzenek köteteket, amivel a környezet katasztrófák ellen is ellenállhat.

Az elosztott zárkezelés (DLM) elérhető az alkalmazások programozói számára, így az alkalmazások a teljes klaszteren koordinálhatják erőforrásaikat és aktivitásukat. Ide tartozik a fájlszintű koordináció is, de az erőforrások és aktivitások tetszőlegesek lehetnek.

A 2010-ben kiadott OpenVMS V8.4 továbbfejlesztett klaszterezést használ, például megvalósítja az ipari szabvány TCP/IP hálózatot a klaszterekben a hatékonyság növelésére.

A gördülő frissítések és a több rendszerlemez támogatott képességével a klaszterek működés közben lépésenként frissíthetők. Ennek köszönhetően a klaszter folytathatja a kiszolgálást, miközben egyes nódusokon a programok, vagy a rendszer új verziója települ. Fájlrendszer Az OpenVMS egy képességekben gazdag fájlrendszerrel bír, ami támogatja az adatfolyam és a rekord alapú I/O-t, az ACL-eket (ellenőrzött hozzáférési listák), és a fájlok verziószámozását. A fájlkezeléssel a felhasználónak az Record Management Services-sel, röviden RMS-sel kell kapcsolatba lépnie. Időmérés Az OpenVMS a rendszeridőt 64 bites számként tartja nyilván, ami 100 nanoszekundumokat mér; ez az időegység az angolban a clunk nevet viseli, és amiből egy másodpercben tízmillió van. Az időszámítás kezdete 1858. november 17. nappalát megelőző éjfél, ami a módosított Julián-naptár kezdete. Az óra nem minden gépen frissül 100 ns-onként; például a 100 Hz-es időzítőjű rendszerek a másodperc századrészenként adnak 100000-t az aktuális időhöz. Az operációs rendszer az időmérés hibáit korrigálja azzal, hogy néha külső szabványidőhöz igazítja a rendszeridőt.

Leállításkor az aktuális időt a Time-of-Year ("TOY") hardveróra menti el. Ez kisebb felbontásban emlékszik az időre, talán másodperc pontossággal, és kisebb pontossággal 0,025% a 0,01% helyett. Újraindításkor a VMS 64 bites rendszeridejét a hardveróra és az utolsó feljegyzett év alapján állítja be. A 64 bites rendszeridő előjeles szám. Ez pozitív, ha az időt pontosan lehet tudni, és negatív, ha nem. Ez elég lenne, hogy az óra elszámoljon egészen a 31-JUL-31086 02:48:05.47 időpontig. Ekkor a számláló tólcsodrulna, és a számítás nulláról indulna újra, azaz az óra visszaállna az 1858. november 17. nappalát megelőző éjfélre. Azonban például a C programkönyvtár órája már 2038. január 19-én lejár, ez a 2038-probléma. Egyes mezőhosszhoz kötődő komponensek és alkalmazások 10000-ben fognak meghibásodni, ez a 10000-probléma. Programozás Az OpenVMS legfontosabb adottságai közé tartozik a Common Language Environment, ami egy pontosan definiált szabvány. Ez meghatározza a függvények és rutinok hívásának konvencióit, a vermeket, regisztereket és hasonlókat, függetlenül a nyelvtől. Emiatt az egyik nyelven írt rutin egyszerűen hívhat egy másik nyelven írt rutint, a megvalósítás részleteinek ismerete nélkül. Az OpenVMS rendszert is több nyelv felhasználásával készítik, főként Bliss, VAX Macro és C nyelven. A szabvány azonban más nyelveket is támogat, mint például Ada, PL/I, Fortran és BASIC. Ez szembeállítható a UNIX rendszerekkel, melyek majdnem egészen C-ben készültek.

Ezt a környezetet az OpenVMS Calling Standard és az OpenVMS Programming Concept kézikönyv írja le. Ezek kevert nyelvű hívásokat, továbbá nyelvspecifikus futás idejű könyvtárakat (RTL), és rendszerszolgáltatás rutinokat. A nyelvspecifikus futás idejű könyvtárakat felhasználói módú megosztott képekkel valósították meg, a rendszerszolgáltatás rutinok pedig az operációs rendszer részei, egy részükhöz többletjogok szükségesek. A különbségtétel a nyelvek, nyelvspecifikus futás idejű könyvtárak és rendszerszolgáltatások között eredetileg tiszta volt, de ez a programerózió áldozatává vált, azaz összemosódott.

A Macro32 assembler az OpenVMS VAX-on, a többi architektúrán fordító. Elérhető az OpenVMS-ben a rendszer részeként. BLISS fordítók letölthetők, ahogy Perl, PHP, Ruby és más nyelvek is. Az OpenVMS nyújt Java SE környezetet. C, Fortran és további nyelvek fizetősek.

Különböző eszközök és segédletek elérhetők, és léteznek add-on nyelvek és eszközök.Technical documentation , HP.com.

Az OpenVMS FAQ sok programozási példát tartalmaz.

Habár az OpenVMS kereskedelmi operációs rendszer, 1997-től kezdve számos terméket ingyenesen bocsátottak nem kereskedelmi célú használatra a felhasználók rendelkezésére az OpenVMS Hobbyist Program keretében. Azóta több vállalat is kiadott hasonló feltételekkel használható termékeket, mint a Process Software és az MVP Systems.

2011-től kezdve a HP elkezdte felügyelni ezt a licenszet, a regisztrációt egyszerűsítették, és megőrizték ingyenességét. A regisztrációtól a Product Authorisation Keys megkapásáig többnyire egy munkanap telik el. A termékek FTP-vel tölthetők le; korábban CD-ken lehetett őket megkapni, amit akár el is lehetett adni. A folyamat nem automatikus, a HP Hobbyist Program csapatának közreműködése szükséges.

A VMS-hez hasonló, nyílt forrású FreeVMS fejlesztése folyamatban van, ami L4 mikrokernellel támogatja az x86-64 architektúrát is. 2010-ig nem jelent meg.

A Living Computer Museumban más történelmi számítógépes rendszerek mellett fenntart egy VAX 11/785 számítógépet is, ami OpenVMS 7.3-mal működik.

Debuggolás