OpenVMS - OpenVMS

OpenVMS
Vsi-openvms-logo.svg
DECwindows-openvms-v7.3-1.png
OpenVMS V7.3-1 se spuštěným grafickým uživatelským rozhraním DECwindows „New Desktop“ na bázi CDE
Vývojář VMS Software Inc (VSI) (dříve Digital Equipment Corporation , Compaq , Hewlett-Packard )
Napsáno Primárně C , BLISS , VAX MACRO , DCL . Používají se i jiné jazyky.
Pracovní stav Proud
Zdrojový model Closed-source s open-source komponentami, zdroj k dispozici
První vydání 25. října 1977 ; Před 43 lety ( 1977-10-25 )
Poslední vydání V8.4-2L3 / 8. dubna 2021 ; před 6 měsíci ( 2021-04-08 )
Nejnovější náhled V9.1-A / 30. září 2021 ; Před 16 dny ( 2021-09-30 )
Marketingový cíl Servery (historicky minipočítače , pracovní stanice )
K dispozici v Angličtina , japonština . Historická podpora čínštiny ( tradiční i zjednodušené znaky), korejštiny a thajštiny .
Metoda aktualizace Souběžné upgrady,
postupné upgrady
Správce balíčků PCSI a VMSINSTAL
Platformy VAX , Alpha , Itanium , x86-64
Typ jádra Monolitické jádro se zaváděcími moduly
Ovlivněn VAXELN , MICA , Windows NT
Ovlivněn RSX-11M
Výchozí
uživatelské rozhraní
DCL CLI a DECwindows GUI
Licence Proprietární
Oficiální webové stránky www .vmssoftware .com

OpenVMS , často označovaný jen jako VMS , je víceuživatelský , víceprocesní operační systém na bázi virtuální paměti navržený pro podporu sdílení času , dávkového zpracování , zpracování transakcí a pracovních stanic . Společnost Digital Equipment Corporation ji poprvé oznámila jako minipočítač VAX/VMS ( Virtual Address eXtension/Virtual Memory System ) vedle minipočítače VAX -11/780 v roce 1977. OpenVMS byl následně přenesen na systémy DEC Alpha , integritu HPE na bázi Itanium Servery a vyberte hardware a hypervisory x86-64 . Od roku 2014 je OpenVMS vyvíjen a podporován společností s názvem VMS Software Inc. (VSI).

OpenVMS nabízí vysokou dostupnost prostřednictvím klastrování a možnost distribuovat systém na více fyzických počítačů. To umožňuje, aby klastrované aplikace a data zůstaly nepřetržitě k dispozici při provádění údržby a upgradů softwaru a hardwaru operačního systému nebo při zničení celého datového centra. Byly hlášeny doby provozu clusteru VMS 17 let. Mezi zákazníky využívající OpenVMS patří banky a finanční služby, nemocnice a zdravotnictví, telekomunikační operátoři, síťové informační služby a průmysloví výrobci. Během devadesátých a dvacátých let minulého století bylo na celém světě v provozu přibližně půl milionu systémů VMS.

Dějiny

Původ a jméno se mění

Stylizované „VAX/VMS“ používané společností Digital

V dubnu 1975 se společnost Digital Equipment Corporation pustila do hardwarového projektu s kódovým označením Star a navrhla 32bitové rozšíření virtuální adresy do počítačové řady PDP-11 . Doprovodný softwarový projekt s kódovým označením Starlet byl zahájen v červnu 1975 s cílem vyvinout pro rodinu procesorů Star zcela nový operační systém založený na RSX-11M . Tyto dva projekty byly od začátku úzce integrovány. Gordon Bell byl vedoucím VP hardwaru VAX a jeho architektury. Roger Tykev byl projekt vedoucí k programu Starlet s softwarových inženýrů Dave Cutler (kdo by později vedl vývoj Microsoft s Windows NT ), Dick Hustvedt a Peter Lipman působí jako technických vedoucích projektů, z nichž každá má odpovědnost za jinou oblast operačního systému. Projekty Star a Starlet vyvrcholily počítačem VAX-11/780 a operačním systémem VAX/VMS. Název Starlet přežil ve VMS jako název několika hlavních systémových knihoven, včetně STARLET.OLBa STARLET.MLB.

Maskot „Albert the Cheshire Cat“ pro VAX/VMS, používaný DECUS VAX SIG

V září 1984, Digital vytvořila speciální distribuci VMS pojmenovaných MicroVMS pro MicroVAX a VAXstation , který měl podstatně méně paměti a místa na disku než větší VAX systémů té doby. MicroVMS rozdělil VAX/VMS do více sad, které by zákazník mohl použít k instalaci podmnožiny VAX/VMS přizpůsobené jejich konkrétním požadavkům. Soupravy MicroVMS byly vydány na kazety TK50 a diskety RX50, odpovídající VAX/VMS V4.0 až V4.7. MicroVMS byl sloučen zpět do VAX/VMS ve verzi V5.0, do té doby schopnost přizpůsobit instalaci VAX/VMS pokročila do bodu, kdy se MicroVMS stal nadbytečným.

Počínaje rokem 1989 byla se systémy VAXstation prodávána krátkodobá distribuce VMS s názvem Desktop-VMS . Skládal se z jednoho disku CD-ROM obsahujícího balíček VMS, DECwindows, DECnet, podpory VAXcluster a proces instalace navržený pro netechnické uživatele. Desktop-VMS měl své vlastní schéma verzí počínaje V1.0, které odpovídalo verzím VAX/VMS V5.x.

V červenci 1992 přejmenoval Digital VAX/VMS na OpenVMS jako označení podpory průmyslových standardů „otevřených systémů“, jako je kompatibilita POSIX a Unix , a přerušení připojení VAX, protože právě probíhal port do Alphy. Název OpenVMS byl poprvé použit s verzí OpenVMS AXP V1.0 v listopadu 1992. Digital začal používat OpenVMS VAX místo VAX/VMS s vydáním V6.0 v červnu 1993.

Přístav do DEC Alpha

Logo „Vernon the Shark“ pro OpenVMS

V průběhu 80. let Digital plánoval nahradit platformu VAX a operační systém VMS architekturou PRISM a operačním systémem MICA . Když byly tyto projekty v roce 1988 zrušeny, byl zřízen tým, který navrhoval nové systémy VAX/VMS srovnatelné výkonnosti s unixovými systémy na bázi RISC . Po několika neúspěšných pokusech navrhnout rychlejší procesor kompatibilní s VAX skupina prokázala proveditelnost portování VMS a jeho aplikací do architektury RISC založené na PRISM. To vedlo k vytvoření architektury Alpha . Projekt přenesení VMS na Alpha začal v roce 1989 a byl poprvé spuštěn na prototypu Alpha Demonstration Unit na bázi Alpha EV3 počátkem roku 1991. Před dostupností hardwaru Alpha byl Alpha port vyvinut a spuštěn na emulátoru s názvem Mannequin , který implementovalo mnoho instrukcí Alpha do vlastního mikrokódu v systému VAX 8800 .

Hlavní výzvou při přenosu VMS do nové architektury bylo, že VMS a VAX byly navrženy společně, což znamená, že VMS bylo závislé na určitých detailech architektury VAX. Kromě toho bylo do montážního kódu VAX MACRO implementováno značné množství jádra VMS, vrstvených produktů a aplikací vyvinutých zákazníkem . Některé ze změn potřebných k oddělení VMS od architektury VAX zahrnovaly:

  • Vytvoření kompilátoru MACRO-32 , který považoval VAX MACRO za jazyk vysoké úrovně , a zkompiloval jej do objektového kódu Alpha .
  • Vytvoření binárního překladače VAX na Alpha , známého jako VAX Environment Software Translator (VEST), který byl schopen překládat spustitelné soubory VAX, když nebylo možné překompilovat kód pro Alpha.
  • Emulace určitých nízkoúrovňových detailů architektury VAX v PALcode , například zpracování přerušení a pokyny pro atomovou frontu. Tím se snížilo množství kódu závislého na VAX, který musel být přepsán pro Alpha.
  • Konverze kompilátorů VMS, z nichž mnohé měly vlastní generátory kódu VAX na míru, za použití společného backendu kompilátoru s názvem GEM .

Port VMS pro Alpha vyústil ve vytvoření dvou samostatných knihoven zdrojových kódů (založených na nástroji pro správu zdrojového kódu známém jako VMS Development Environment nebo VDE) pro VAX a pro Alpha. Knihovna kódů Alpha byla založena na snímku kódové základny VAX/VMS kolem V5.4-2. V roce 1992 byla vydána první verze OpenVMS pro systémy Alpha AXP s názvem OpenVMS AXP V1.0 . V roce 1994, s vydáním OpenVMS V6.1, bylo dosaženo parity funkce (a čísla verze) mezi variantami VAX a Alpha, šlo o takzvané vydání funkční ekvivalence. Rozhodnutí použít proud číslování verzí 1.x pro předprodukční kvalitní vydání OpenVMS AXP způsobilo u některých zákazníků zmatek a v dalších portech OpenVMS na nové platformy se neopakovalo.

Když byl VMS portován na Alpha, byl původně ponechán jako 32bitový pouze operační systém. To bylo provedeno za účelem zajištění zpětné kompatibility se softwarem napsaným pro 32bitový VAX. 64bitové adresování bylo poprvé přidáno pro Alpha ve verzi V7.0. Aby bylo možné 64bitovému kódu spolupracovat se starším 32bitovým kódem, OpenVMS nevytváří rozdíl mezi 32bitovými a 64bitovými spustitelnými soubory, ale místo toho umožňuje použití 32bitových i 64bitových ukazatelů v rámci stejný kód. Toto je známé jako podpora smíšeného ukazatele. 64bitové verze OpenVMS Alpha podporují maximální velikost virtuálního adresového prostoru 8TiB (43bitový adresní prostor), což je maximum podporované Alpha 21064 a Alpha 21164 .

Jednou z pozoruhodnějších funkcí OpenVMS, které byly pouze pro Alphu, byla OpenVMS Galaxy - která umožnila rozdělení jednoho serveru SMP na spuštění více instancí OpenVMS. Galaxy podporovala dynamické přidělování prostředků spuštěným oddílům a schopnost sdílet paměť mezi oddíly.

Port na Intel Itanium

Logo „Swoosh“ používané společností HP pro OpenVMS

V roce 2001, před akvizicí společností Hewlett-Packard , Compaq oznámil port OpenVMS architektuře Intel Itanium . Port Itanium byl výsledkem rozhodnutí společnosti Compaq přerušit budoucí vývoj architektury Alpha ve prospěch přijetí tehdy nové architektury Itanium. Přenos začal na konci roku 2001 a první spuštění proběhlo 31. ledna 2003. První spuštění spočívalo ve spuštění minimální konfigurace systému na pracovní stanici HP i2000 , přihlášení jako SYSTEMuživatel a spuštění DIRECTORYpříkazu. Itanium port OpenVMS podporuje konkrétní modely a konfigurace serverů HPE Integrity Servers . Verze Itanium byly původně pojmenovány HP OpenVMS Industry Standard 64 pro servery integrity , i když názvy OpenVMS I64 nebo OpenVMS pro servery integrity jsou běžnější.

Port Itanium byl proveden pomocí zdrojového kódu, který je v knihovně zdrojových kódů OpenVMS Alpha udržován společně, s přidáním podmíněného kódu a dalších modulů, kde byly vyžadovány změny specifické pro Itanium. Zatímco architektury VAX a Alpha byly navrženy speciálně pro podporu nízkoúrovňových potřeb OpenVMS, Itanium tomu tak nebylo. To vyžadovalo, aby byly určité architektonické závislosti OpenVMS nahrazeny nebo emulovány v softwaru. Některé ze změn zahrnovaly:

  • Rozhraní Extensible Firmware Interface (EFI) se používá ke spuštění OpenVMS na hardwaru Integrity a přebírá roli firmwaru System Reference Manual (SRM) na Alpha. Do OpenVMS byla také přidána podpora ACPI, protože se používá k objevování a správě hardwarových zařízení na platformě Integrity.
  • U Itanium byla funkce, která byla implementována pomocí PALcode pro Alpha, přesunuta do součásti jádra OpenVMS s názvem Software Interrupt Services (SWIS).
  • Port Itanium přijal nový standard volání na základě konvence volání Intel Itanium s rozšířením na podporu prostředí OpenVMS Common Language Environment. Kromě toho nahradil spustitelné formáty specifické pro OpenVMS používané na VAX a Alpha standardními formáty spustitelného a propojovacího formátu (ELF) a DWARF .
  • Jako výchozí formát s plovoucí desetinnou čárkou byl přijat IEEE 754 , který nahradil formát VAX s plovoucí desetinnou čárkou, který byl výchozí v architektuře VAX i Alpha. Pro zpětnou kompatibilitu je možné kompilovat kód na Itanium tak, aby používal formát VAX s plovoucí desetinnou čárkou, ale spoléhá se na emulaci softwaru.
  • Operační systém byl upraven tak, aby podporoval 50bitové fyzické adresování dostupné na Itanium, což umožňuje adresovat 1PiB paměti. Port Itanium si jinak zachoval smíšenou architekturu 32bitových/64bitových ukazatelů, která byla zavedena v OpenVMS Alpha V7.0.

Stejně jako u portu VAX na Alpha byl k dispozici binární překladač pro Alpha na Itanium, který umožňoval portování softwaru OpenVMS Alpha v uživatelském režimu na Itanium v ​​situacích, kdy nebylo možné překompilovat zdrojový kód. Tento překladač je známý jako Alpha Environment Software Translator (AEST) a také podporoval překlad spustitelných souborů VAX, které již byly přeloženy pomocí VEST.

Dvě předprodukční verze, OpenVMS I64 V8.0 a V8.1, byly k dispozici 30. června 2003 a 18. prosince 2003. Tato vydání byla určena organizacím HP a prodejcům třetích stran zapojeným do přenosu softwarových balíčků do OpenVMS I64 . První produkční verze, V8.2, byla vydána v únoru 2005. V8.2 byl také vydán pro Alpha, následující verze V8.x OpenVMS si zachovaly paritu funkcí mezi architekturou Alpha a Itanium.

Port na x86-64

Když společnost VMS Software Inc. (VSI) oznámila, že si zajistila práva na vývoj operačního systému OpenVMS od společnosti HP, oznámila také svůj záměr přenést OpenVMS do architektury x86-64 . Snaha o přenos probíhala souběžně se založením společnosti a také s vývojem vlastních verzí OpenSI V8.4-x Itanium a Alpha od VSI.

Port x86-64 je zaměřen na konkrétní servery od společností HPE a Dell a také na určité hypervizory virtuálních počítačů . Počáteční podpora byla cílena na KVM a VirtualBox . Podpora pro VMware byla oznámena v roce 2020 a Hyper-V byl popsán jako budoucí cíl. V roce 2021 se x86-64 přístav byl demonstrován běží na Intel Atom založené jednodeskový počítač .

Port x86-64 je postaven ze stejné knihovny zdrojových kódů jako architektury Alpha a Itanium pomocí podmíněné kompilace pro správu kódu specifického pro architekturu potřebného k podpoře platformy x86-64. Stejně jako u portů Alpha a Itanium provedl port x86-64 některé změny pro zjednodušení portování a podporu OpenVMS na nové platformě:

  • VSI přijala open source kompilátor LLVM kompilátoru, který nahradil proprietární GEM backend používaný v portech Alpha a Itanium. Byl vyvinut překladač pro mapování GEM IR na LLVM IR, což umožňuje opětovné použití stávajících frontend kompilátoru. Open source kompilátor Clang byl navíc přijat jako oficiálně podporovaný kompilátor C ++ pro OpenVMS pod x86-64.
  • Na platformě x86-64 OpenVMS rozsáhleji využívá UEFI a ACPI k detekci a inicializaci hardwaru při spuštění. V rámci toho se nyní VMS spouští z paměťového disku namísto tradičního zaváděcího mechanismu VMS - který spoléhal na zaváděcí ovladače obsahující základní implementaci souborového systému a který byl svázán s konkrétními hardwarovými zařízeními. Změny v procesu zavádění si vyžádaly vytvoření Dump Kernel - jedná se o sekundární jádro, které je načteno na pozadí při spuštění a je vyvoláno v případě, že OpenVMS potřebuje zapsat na disk výpis z havárie.
  • OpenVMS předpokládá přítomnost čtyř úrovní oprávnění poskytovaných hardwarem k zajištění izolace mezi uživatelskými aplikacemi a různými částmi operačního systému. Zatímco x86-64 nominálně poskytuje čtyři úrovně oprávnění, jsou ekvivalentní pouze dvěma úrovním oprávnění na VAX, Alpha a Itanium. Na portu x86-64 je modul Software Interrupt Services (SWIS) jádra rozšířen o emulaci chybějících úrovní oprávnění.
  • Stejně jako u portu Itanium je standard volání pro x86-64 rozšířením standardní konvence volání platformy, konkrétně System V AMD64 ABI . Určité charakteristiky architektury x86-64 vytvářely výzvy pro definování vhodného standardu volání. Například kvůli malému počtu obecných registrů pro x86-64 musí kompilátor MACRO-32 ukládat obsah emulovaných registrů VAX do struktury „pseudo registrů“ v paměti namísto použití hardwarových registrů procesoru jako se provádí na Alpha a Itanium.

První spuštění bylo oznámeno 14. května 2019. Jednalo se o zavedení OpenVMS na VirtualBox a úspěšné spuštění DIRECTORYpříkazu. Později v roce 2019 bylo oznámeno první „skutečné spuštění“ - to spočívalo ve spuštění operačního systému zcela standardním způsobem, přihlášení uživatele do systému a spuštění DIRECTORYpříkazu. V květnu 2020 bylo vydání sady V9.0 Early Adopter's Kit k dispozici malému počtu zákazníků. Jednalo se o operační systém OpenVMS běžící na virtuálním počítači VirtualBox s určitými omezeními-nejdůležitější bylo, že bylo k dispozici několik vrstev a kód lze kompilovat pouze pro x86-64 pomocí křížových kompilátorů, které běží na systémech OpenVMS na bázi Itanium. Po vydání V9.0 vydala VSI řadu aktualizací na měsíční nebo dvouměsíční bázi, které přidaly další funkce a podporu hypervisoru. Ty byly označeny V9.0-A až V9.0-H. V červnu 2021 vydala VSI polní test V9.1, který je k dispozici zákazníkům a partnerům VSI. V9.1 je dodáván jako obraz ISO, který lze nainstalovat na různé hypervizory a na servery HPE ProLiant DL380 počínaje vydáním V9.1-A.

Architektura

Architektura operačního systému OpenVMS, demonstrace vrstev systému a přístupové režimy, ve kterých obvykle běží

Operační systém OpenVMS má vrstvenou architekturu, která se skládá z privilegovaného manažera , tlumočníka příkazového jazyka, který běží na střední úrovni oprávnění, a nástrojů a knihoven run-time (RTL), které běží v neprivilegovaném režimu, ale potenciálně mohou běžet na vyšší úroveň oprávnění, pokud je k tomu oprávněna. Neprivilegovaný kód obvykle vyvolává funkce Executive prostřednictvím systémových služeb (ekvivalent systémových volání v jiných operačních systémech).

Vrstvy a mechanismy OpenVMS jsou postaveny na určitých funkcích architektury VAX, včetně:

Tyto mechanismy architektury VAX jsou implementovány na Alpha, Itanium a x86-64 buď mapováním na odpovídající hardwarové mechanismy v těchto architekturách, nebo prostřednictvím emulace (přes PALcode na Alpha, nebo v softwaru na Itanium a x86-64).

Jednatel a jádro

OpenVMS Executive obsahuje privilegované kódové a datové struktury, které jsou umístěny v systémovém prostoru. Výkonný je dále rozdělen na jádro , které se skládá z kódu, který běží v režimu přístupu k jádru, a méně privilegovaného kódu mimo jádro, který běží v režimu výkonného přístupu.

Komponenty Executive, které běží v režimu exekutivního přístupu, zahrnují služby pro správu záznamů a určité systémové služby, jako je aktivace bitové kopie. Hlavní rozdíl mezi režimy jádra a výkonného přístupu spočívá v tom, že většinu základních datových struktur operačního systému lze číst z výkonného režimu, ale vyžadují zápis do režimu jádra. Kód spuštěný ve výkonném režimu lze libovolně přepnout do režimu jádra, což znamená, že bariéra mezi jádrem a výkonnými režimy je zamýšlena jako ochrana proti náhodnému poškození, na rozdíl od bezpečnostního mechanismu.

Kernel obsahuje základní datové struktury v operačním systému (např tabulky stránek, I / O databáze I a plánovací dokumentace) a rutiny, které pracují na těchto strukturách. Jádro je obvykle popisováno tak, že má tři hlavní subsystémy: I/O, správu procesů a času, správu paměti. Kromě toho jsou v jádře implementovány další funkce, jako je správa logických jmen , synchronizace a odesílání systémových služeb.

Výkonná struktura

V raných verzích VAX/VMS byla většina kódu exekutivy propojena do jednoho spustitelného obrazu s názvem SYS.EXE. VAX/VMS 5.0 představil Modular Executive , který rozdělil kód Executive na několik výkonných obrazů (také známých jako execlets ), které se načítají během bootstrapu systému. SYS.EXEzůstala, ale byla redukována na dispečerské vektory systémové služby, umístění statické paměti pro data společná pro více výkonných obrazů a nějaký základní kód podpory. V systému OpenVMS pro Alpha jsou Itanium a x86-64 SYS.EXErozděleny na SYS$BASE_IMAGE.EXEa SYS$PUBLIC_VECTORS.EXE, které obsahují umístění sdílené paměti a kód podpory, respektive logiku odesílání systémové služby.

Rozšiřující mechanismy

OpenVMS umožňuje kódu uživatelského režimu s vhodnými oprávněními přepnout do výkonného nebo jádrového režimu pomocí $CMEXECa $CMKRNLsystémových služeb. To umožňuje kódu mimo systémový prostor přímý přístup k rutinám a systémovým službám Executive. Kromě povolení rozšíření třetích stran k operačnímu systému používají Privileged Images hlavní nástroje operačního systému k manipulaci s datovými strukturami operačního systému prostřednictvím nezdokumentovaných rozhraní.

OpenVMS také umožňuje udělit privilegium sdíleným obrazům (tj. Sdíleným knihovnám ), což umožňuje vytváření systémových služeb psaných uživateli , což jsou privilegované rutiny, které lze propojit s neprivilegovaným programem. Uživatelem psané systémové služby jsou vyvolávány stejným mechanismem jako standardní systémové služby, což brání neoprávněnému programu získat oprávnění kódu v privilegovaném sdíleném obrazu. Navzdory tomu, co název může napovídat, jsou systémové služby napsané uživateli používány také k implementaci zřídka používaných funkcí operačního systému, jako je například instalace svazku.

OpenVMS poskytuje rozhraní ovladače zařízení, které umožňuje přidání podpory nových I/O zařízení do operačního systému.

Souborový systém

OpenVMS poskytuje funkce bohaté na správu souborů. Typickým uživatelským a aplikačním rozhraním do systému souborů je služba RMS ( Record Management Services ), ačkoli aplikace mohou komunikovat přímo se základním souborovým systémem prostřednictvím systémových služeb QIO . RMS podporuje více metod přístupu k souborům orientovaných na záznam a formátů záznamů (včetně pevné délky, proměnné délky a formátu streamu, kde je soubor považován za proud bajtů, podobný Unixu). RMS také podporuje vzdálený přístup k souborům přes DECnet a volitelnou podporu pro žurnálování .

Systémy souborů podporované VMS jsou označovány jako ODS ( Files-11 On-Disk Structures ), které poskytují diskové kvóty , seznamy řízení přístupu a správu verzí souborů . Nejvýznamnějšími strukturními úrovněmi jsou ODS-2 , což je původní souborový systém VMS, a ODS-5 , který rozšiřuje ODS-2 o podporu názvů souborů Unicode , rozlišování velkých a malých písmen , pevné odkazy a symbolické odkazy . VMS je také schopen přistupovat k souborům na discích CD-ROM ISO 9660 a magnetických páskách se štítky pásky ANSI .

Spolu s vydáním OpenVMS Alpha V7.0 v roce 1995 společnost Digital vydala souborový systém s logovou strukturou s názvem Spiralog, který byl zamýšlen jako potenciální nástupce Files-11. Spiralog dodáván jako volitelný produkt a byl ukončen při vydání OpenVMS Alpha 7.2. Přerušení Spiralogu bylo způsobeno řadou problémů, včetně problémů s manipulací s plnými objemy. Vývojáři Spiralogu začali pracovat na novém systému souborů v roce 1996, který byl pozastaven a později obnoven VSI v roce 2016 jako VMS Advanced File System (VAFS, nezaměňovat s Digital AdvFS pro Tru64 ). VAFS se již na nedávných plánech nezobrazuje a místo toho VSI diskutovalo o přenesení open source souborového systému GFS2 do OpenVMS. Jednou z hlavních motivací pro nahrazení struktur Files-11 je, že jsou omezeny na svazky 2TiB.

Tlumočník příkazového jazyka

OpenVMS Command Language Interpreter (CLI) implementuje rozhraní příkazového řádku pro OpenVMS; zodpovědný za provádění jednotlivých příkazů, stejně jako příkazových procedur (ekvivalent skriptů Shell nebo dávkových souborů ). Standardní CLI pro OpenVMS je příkazový jazyk DIGITAL , i když jsou k dispozici i další možnosti.

Na rozdíl od shellů Unixu , které obvykle běží ve vlastním izolovaném procesu a chovají se jako jakýkoli jiný program v uživatelském režimu, jsou rozhraní CLI OpenVMS volitelnou součástí procesu, který existuje vedle libovolného spustitelného obrazu, který tento proces může spustit. Zatímco unixový shell bude obvykle spouštět spustitelné soubory vytvořením samostatného procesu pomocí fork-exec , OpenVMS CLI obvykle načte spustitelný obraz do stejného procesu, přenese řízení do obrazu a zajistí, že bude ovládací prvek přenesen zpět do CLI, jakmile bude obraz byl ukončen a proces je vrácen do původního stavu. CLI se mapuje do soukromého adresního prostoru procesu prostřednictvím provádění LOGINOUTbitové kopie, kterou lze provést buď ručně, nebo automaticky pomocí určitých systémových služeb pro vytváření procesů.

Vzhledem k tomu, že CLI je načteno do stejného adresního prostoru jako uživatelský kód a že CLI je zodpovědné za vyvolání aktivace obrazu a doběhu obrazu, je CLI mapováno do adresního prostoru procesu v režimu přístupu správce. Důvodem je zabránit nechtěné nebo svévolné manipulaci s kódem a datovými strukturami CLI kódem uživatelského režimu.

Funkce

VAXstation 4000 model 96 se systémem OpenVMS V6.1, DECwindows Motif a prohlížečem NCSA Mosaic

Uživatelská rozhraní

VMS byl původně navržen tak, aby byl interaktivně používán a řízen pomocí textových video terminálů Digital , jako je VT100 , nebo tištěných terminálů, jako je řada DECwriter . Od zavedení řady VAXstation v roce 1984 má VMS volitelně podporovaná grafická uživatelská rozhraní pro použití s ​​pracovními stanicemi nebo X terminály .

Rozhraní příkazového řádku

OpenVMS Alpha V8.4-2L1, zobrazující DCL CLI v relaci terminálu

DIGITAL Command Language sloužil jako primární CLI OpenVMS od prvního vydání. Mezi další oficiální CLI dostupná pro VMS patří RSX-11 MCR (pouze VAX) a různé unixové shelly . Digitálně dostupné nástroje pro vytváření textových aplikací uživatelského rozhraní - Form Management System (FMS) a Terminal Data Management System (TDMS), později následované DECforms . Existuje také rozhraní nižší úrovně s názvem Screen Management Services (SMG $), srovnatelné s unixovými kletbami .

Grafická uživatelská rozhraní

VWS 4.5 běžící na VAX/VMS V5.5-2
Správce oken DECwindows XUI běžící nad VAX/VMS V5.5-2

V průběhu let VMS prošel řadou různých GUI nástrojů a rozhraní:

  • Původní grafické uživatelské rozhraní pro VMS byl proprietární okenní systém známý jako VMS Workstation Software (VWS), který byl poprvé vydán pro VAXstation I v roce 1984. Odhalil API nazvané User Interface Services (UIS). Běžel na omezeném výběru hardwaru VAX.
  • V roce 1989 DEC nahradil VWS novým okenním systémem na bázi X11 s názvem DECwindows . Poprvé byl zahrnut do VAX/VMS V5.1. Rané verze DECwindows obsahovaly rozhraní postavené na proprietární sadě nástrojů s názvem X User Interface (XUI). Byl poskytnut vrstvený produkt s názvem UISX, aby aplikace VWS/UIS mohly běžet nad DECwindows.
  • V roce 1991 DEC nahradil XUI sadou nástrojů Motif , čímž vytvořil DECwindows Motif . Výsledkem je, že Motif Window Manager se stal výchozím rozhraním DECwindows v OpenVMS V6.0, ačkoli XUI správce oken zůstal jako volba.
  • V roce 1996, jako součást OpenVMS V7.1, DEC vydal nové rozhraní Desktop pro DECwindows Motif, založené na Common Desktop Environment . V systémech Alpha a Itanium je stále možné vybrat starší uživatelské rozhraní založené na MWM (dále jen „DECwindows Desktop“) v době přihlášení. Nová plocha nebyla nikdy přenesena do verzí VAX OpenVMS.

Verze VMS běžící na pracovních stanicích DEC Alpha v 90. letech podporovaly grafické adaptéry OpenGL a Accelerated Graphics Port (AGP). VMS také poskytuje podporu pro starší grafické standardy, jako jsou GKS a PHIGS . Moderní verze DECwindows jsou založeny na X.Org Serveru .

Shlukování

OpenVMS podporuje klastrování (nejprve nazývané VAXcluster a později VMScluster ), kde více systémů provozuje vlastní instanci operačního systému, ale sdílí diskové úložiště, zpracování, správce distribuovaných zámků , společnou doménu pro správu a zabezpečení, fronty úloh a tiskové fronty a poskytuje single system image abstrakce. Systémy jsou propojeny buď proprietárním specializovaným hardwarem (Cluster Interconnect), nebo standardním ethernetovým LAN . OpenVMS podporuje až 96 uzlů v jednom clusteru a umožňuje klastry se smíšenou architekturou, kde systémy VAX a Alpha nebo systémy Alpha a Itanium mohou existovat společně v jednom clusteru. Klastry VMS umožňují vytváření aplikací, které vydrží plánované i neplánované výpadky části klastru.

Sítě

Sada protokolů DECnet společnosti Digital je úzce integrována do systému VMS, což umožňuje vzdálené přihlášení a transparentní přístup k souborům, tiskárnám a dalším zdrojům v systémech VMS prostřednictvím sítě. Moderní verze VMS podporují jak tradiční protokol DECnet Phase IV, tak i Phase V kompatibilní s OSI (také známý jako DECnet-Plus ). Podpora pro TCP/IP je poskytována volitelnými službami TCP/IP pro vrstvený produkt OpenVMS (původně známý jako VMS/ULTRIX Connection , poté jako ULTRIX Communications Extensions nebo UCX). Služby TCP/IP jsou založeny na portu síťového zásobníku BSD pro OpenVMS spolu s podporou běžných protokolů, jako jsou SSH , DHCP , FTP a SMTP . Vzhledem k tomu, že oficiální zásobník TCP/IP byl zaveden až v roce 1988 a omezená sada funkcí dřívějších verzí, bylo pro VMS vytvořeno několik zásobníků TCP/IP třetích stran. Některé z těchto produktů zůstávají v aktivním vývoji, například TCPware a MultiNet .

Společnost Digital prodala softwarový balíček s názvem PATHWORKS (původně známý jako Personal Computer Systems Architecture nebo PCSA), který umožňoval, aby osobní počítače se systémem MS-DOS , Microsoft Windows nebo OS/2 nebo Apple Macintosh sloužily jako terminál pro systémy VMS nebo používat systémy VMS jako souborový nebo tiskový server. PATHWORKS byl založen na LAN Manageru a podporoval buď DECnet nebo TCP/IP jako transportní protokol. PATHWORKS byl později přejmenován na Advanced Server pro OpenVMS a nakonec byl v době portu Itanium nahrazen portem VMS Samba .

Digital poskytl protokol Local Area Transport (LAT), který umožňoval připojení vzdálených terminálů a tiskáren k systému VMS prostřednictvím terminálového serveru, jako je jeden z rodiny DECserverů .

Programování

Digital (a jeho nástupnické společnosti) poskytovaly pro VMS širokou škálu programovacích jazyků. Mezi oficiálně podporované jazyky ve VMS, ať už aktuální nebo historické, patří:

Mezi pozoruhodné funkce OpenVMS patří Common Language Environment , přísně definovaný standard, který specifikuje konvence volání pro funkce a rutiny, včetně použití zásobníků , registrů atd., Nezávisle na programovacím jazyce. Z tohoto důvodu je možné volat rutinu napsanou v jednom jazyce (například Fortran) z jiného (například COBOL), aniž byste museli znát podrobnosti implementace cílového jazyka. OpenVMS je implementován v různých jazycích a prostředí běžného jazyka a standard volání podporuje libovolné míchání těchto jazyků. Digital vytvořil nástroj s názvem Structure Definition Language (SDL), který umožňoval generování definic datových typů pro různé jazyky ze společné definice.

Vývojové nástroje

„Šedá zeď“ dokumentace VAX/VMS, Living Living Computers: Museum + Labs

Společnost Digital poskytla kolekci nástrojů pro vývoj softwaru ve vrstveném produktu s názvem DECset (původně pojmenovaný VAXset ). Jednalo se o Language-Sensitive Editor (LSE), systém pro správu verzí ( Code Management System nebo CMS), nástroj pro sestavení ( Module Management System nebo MMS), statický analyzátor ( Source Code Analyzer nebo SCA), profiler ( Performance and Coverage Analyzer nebo PCA) a také správce testů ( Digital Test Manager nebo DTM). Kromě toho je v operačním systému zahrnuta řada textových editorů , včetně EDT , EVE a TECO .

Debugger OpenVMS podporuje všechny kompilátory DEC a mnoho jazyků třetích stran. Umožňuje ladění zarážek, hlídacích bodů a interaktivního běhu programu buď pomocí příkazového řádku nebo grafického uživatelského rozhraní . Dvojici debuggerů nižší úrovně, pojmenovaných DELTA a XDELTA , lze použít k ladění privilegovaného kódu navíc k normálnímu kódu aplikace.

V roce 2019 vydala VSI oficiálně podporované integrované vývojové prostředí pro VMS založené na kódu Visual Studio . To umožňuje vzdálený vývoj a ladění aplikací VMS z pracovní stanice Microsoft Windows , macOS nebo Linux .

Správa databáze

Digital vytvořil pro VMS řadu volitelných databázových produktů, z nichž některé byly prodávány jako rodina VAX Information Architecture . Tyto produkty zahrnovaly:

  • Rdb - relační databázový systém, který původně používal proprietární dotazovací rozhraní RDO ( Relational Data Operator ), ale později získal podporu SQL .
  • DBMS - systém pro správu databází, který používá síťový model CODASYL a jazyk DML ( Data Manipulation Language ).
  • Digital Standard MUMPS (DSM) -integrovaný programovací jazyk a databáze klíč-hodnota .
  • Common Data Dictionary (CDD) - centrální úložiště schémat databází , které umožňovalo sdílení schémat mezi různými aplikacemi a generování definic dat pro různé programovací jazyky.
  • DATATRIEVE - dotazovací a reportovací nástroj, který by mohl přistupovat k datům ze souborů RMS i databází Rdb a DBMS.
  • Systém správy řízení aplikací (ACMS)-monitor zpracování transakcí , který umožňuje vytváření aplikací pomocí vysoce kvalitního jazyka popisu úloh (TDL). Jednotlivé kroky transakce lze implementovat pomocí příkazů DCL nebo postupů Common Language Environment. Uživatelská rozhraní lze implementovat pomocí produktů TDMS, DECforms nebo Digital ALL-IN-1 pro automatizaci kanceláří.
  • RALLY , DECadmire - programovací čtvrté generace jazyky (4GLs) pro generování databázových aplikací aktivy. DECadmire představoval integraci s ACMS a později poskytoval podporu pro generování aplikací klient-server Visual Basic pro PC s Windows.

V roce 1994 společnost Digital prodala Rdb, DBMS a CDD společnosti Oracle , kde zůstávají v aktivním vývoji. V roce 1995 Digital prodal DSM společnosti InterSystems , která ji přejmenovala na Open M , a nakonec ji nahradila svým produktem Caché .

Mezi příklady systémů pro správu databází jiných výrobců pro OpenVMS patří MariaDB , Mimer SQL a System 1032 .

Bezpečnostní

OpenVMS poskytuje různé funkce a mechanismy zabezpečení, včetně identifikátorů zabezpečení, identifikátorů zdrojů, identifikátorů subsystémů, seznamů ACL , detekce narušení a podrobného auditu zabezpečení a alarmů. Specifické verze hodnocené podle kritérií pro hodnocení důvěryhodného počítačového systému třídy C2 a s vylepšeným vydáním zabezpečení SEVMS ve třídě B1. OpenVMS je také držitelem hodnocení ITSEC E3 (viz NCSC a společná kritéria ). Hesla jsou hašována pomocí Purdy Polynomial .

Zranitelnosti

  • Brzy verze VMS zahrnovala řadu privilegovaných uživatelských účtů (včetně SYSTEM, FIELD, SYSTESTa DECNET) s výchozími hesly, které byly často ponechány beze změny správci systému. Řada počítačových červů pro VMS včetně červa WANK a červa Father Christmas využila tato výchozí hesla k získání přístupu k uzlům v sítích DECnet. Tento problém také popsal Clifford Stoll ve hře The Cuckoo's Egg jako prostředek, kterým Markus Hess získal neoprávněný přístup k systémům VAX/VMS. Ve verzi V5.0 byla odstraněna výchozí hesla a při nastavování systému se stalo povinné poskytovat hesla pro tyto účty.
  • V roce 2017 byla objevena 33letá chyba zabezpečení ve VMS na VAX a Alpha, které bylo přiděleno CVE ID CVE - 2017-17482 . Na ohrožených platformách tato chyba zabezpečení umožnila útočníkovi s přístupem k příkazovému řádku DCL provést útok eskalace oprávnění . Tato chyba zabezpečení závisí na využití chyby přetečení vyrovnávací paměti v kódu zpracování příkazu DCL, schopnosti uživatele přerušit spuštěný obraz ( spustitelný program ) CTRL/Ya vrátit se do výzvy DCL a na skutečnosti, že DCL si zachovává oprávnění přerušeného obrazu . Chyba přetečení vyrovnávací paměti umožnila spuštění kódu shellu s oprávněními přerušeného obrazu. Toho lze použít ve spojení s bitovou kopií nainstalovanou s vyššími oprávněními než účet útočníka k obejití zabezpečení systému.

Kompatibilita napříč platformami

VAX/VMS původně obsahoval vrstvu kompatibility RSX-11M s názvem RSX Application Migration Executive (RSX AME), která umožňovala spouštění softwaru RSX-11M v uživatelském režimu nad VMS bez úpravy. To se spoléhalo na režim kompatibility PDP-11 implementovaný v procesorech VAX-11 . RSX AME hrál důležitou roli v dřívějších verzích VAX/VMS, které používaly znovu použité určité nástroje uživatelského prostoru RSX-11M, než byly vyvinuty nativní verze VAX. To bylo ukončeno v VAX/VMS V3.0, když byly všechny nástroje režimu kompatibility nahrazeny nativními implementacemi. Ve VAX/VMS V4.0 byl RSX AME odstraněn ze základního systému a nahrazen volitelným vrstveným produktem s názvem VAX-11 RSX , který při spouštění kódu PDP-11 na novějších procesorech VAX spoléhal na softwarovou emulaci. Od společnosti Digital byl k dispozici také port VAX vrstvy kompatibility RTEM pro aplikace RT-11 .

Pro VMS byly vytvořeny různé oficiální vrstvy kompatibility Unix a POSIX . První z nich byl DEC/Shell - což byl vrstvený produkt skládající se z portu Unix Bourne Shell verze 7 a několika dalších unixových nástrojů pro VAX/VMS. V roce 1992 společnost Digital vydala POSIX pro vrstvený produkt OpenVMS , který zahrnoval shell založený na Korn Shell . POSIX pro OpenVMS byl později nahrazen open source projektem GNV ( GNU 's not VMS), který byl poprvé zahrnut v médiích OpenVMS v roce 2002. Mezi další nástroje GNU obsahuje GNV port Bash shellu pro VMS. Mezi příklady vrstev kompatibility Unixu třetích stran pro VMS patří Eunice .

Digitálně licencovaný SoftPC (a později SoftWindows) a prodávaný jako vrstvený produkt pro architektury VAX i Alpha, což umožňuje běh aplikací Windows a DOS nad VMS.

V roce 1995 Digital oznámil Affinity for OpenVMS (také známý jako NT Affinity ), který měl umožnit OpenVMS sloužit jako vrstva trvalosti pro aplikace klient-server Windows NT . V rámci této iniciativy byla do OpenVMS Alpha přidána implementace modelu DCOM ( Distributed Component Object Model ), který se poprvé objevil ve verzi V7.2-1.

Open source aplikace

Některé z open source aplikací, které byly přeneseny do OpenVMS, zahrnují:

Existuje řada komunitních projektů pro přenos softwaru s otevřeným zdrojovým kódem do VMS, včetně portů VMS a GNV (GNU Not VMS).

Hobbyistické programy

V roce 1997 byl OpenVMS a řada vrstevnatých produktů bezplatně k dispozici pro hobby, nekomerční použití v rámci programu OpenVMS Hobbyist Program . Od té doby několik společností vyrábějících software OpenVMS zpřístupnilo své produkty za stejných podmínek, jako je například Process Software. Před portem x86-64 stáří a cena hardwaru schopného spouštět OpenVMS dělaly z emulátorů, jako je SIMH, běžnou volbu instalací pro kutily.

V březnu 2020 společnost HPE oznámila ukončení programu OpenVMS Hobbyist. Následovalo oznámení VSI o licenčním programu Společenství (CLP) v dubnu 2020, který byl určen jako náhrada za program HPE Hobbyist. CLP byl spuštěn v červenci 2020 a poskytuje licence pro vydání VSI OpenVMS v systémech Alpha a Integrity. Licence OpenVMS x86-64 budou k dispozici, jakmile bude pro tuto architekturu vydána stabilní verze. Na OpenVMS pro VAX se nevztahuje CLP, protože neexistují žádná VSI vydání OpenVMS VAX a staré verze jsou stále ve vlastnictví HPE.

Vliv

Během 80. let měl být případným nástupcem VMS operační systém MICA pro architekturu PRISM. MICA byla navržena tak, aby udržovala zpětnou kompatibilitu s aplikacemi VMS a zároveň podporovala aplikace Ultrix nad stejným jádrem. MICA byla nakonec zrušena spolu se zbytkem platformy PRISM, což vedlo k tomu, že Dave Cutler opustil Digital pro Microsoft. Ve společnosti Microsoft vedl Cutler vytvoření operačního systému Windows NT , který byl silně inspirován architekturou MICA. V důsledku toho je VMS považován za předchůdce systému Windows NT společně s RSX-11 , VAXELN a MICA a mezi VMS a NT existuje mnoho podobností. Tato linie je objasněna v Cutlerově předmluvě k „Inside Windows NT“ od Helen Custerové.

Nyní zaniklý projekt s názvem FreeVMS se pokusil vyvinout open source operační systém podle konvencí VMS. FreeVMS byl postaven na mikrokernelu L4 a podporoval architekturu x86-64 . Předchozí práce na zkoumání implementace VMS pomocí architektury založené na mikrojádrech byly dříve prováděny jako prototypové cvičení zaměstnanci DEC s pomocí Carnegie Mellon University pomocí mikrokernelu Mach 3.0 přeneseného na hardware VAXstation 3100 , přičemž byl přijat architektonický model s více servery.

Neoficiální derivát VAX / VMS pojmenovaný MOS VP ( rusky : Многофункциональная операционная система с виртуальной памятью, МОС ВП , rozsvícený ‚Multifunkční operační systém s virtuální paměť‘) byla vytvořena v Sovětském svazu v roce 1980 pro SM 1700 řady VAX klonovat hardware. Hlavním rozdílem mezi MOS VP a oficiálními digitálními verzemi byl překlad příkazů, zpráv a dokumentace do ruštiny a podpora skriptu cyrilice pomocí kódování KOI-8 . Byly také vytvořeny podobně upravené deriváty MicroVMS známé jako MicroMOS VP ( rusky : МикроМОС ВП ) nebo MOS-32M ( rusky : МОС-32М ).

Časová osa hlavního vydání

Verze Prodejce Datum vydání Datum konce životnosti Poznámky
Stará verze, již není udržována: X0,5 DEC Pozdní 1977 ? První verze odeslána zákazníkům
Stará verze, již není udržována: V1.0 Srpna 1978 ? První produkční vydání
Stará verze, již není udržována: V2.0 Duben 1980 ? VAX-11/750 . Nové nástroje včetně EDT .
Stará verze, již není udržována: V3.0 Duben 1982 ? VAX-11/730 , VAX-11/725 , VAX-11/782 , ASMP
Stará verze, již není udržována: V4.0 Září 1984 ? Klastry VAX 8600 , MicroVMS, VAX
Stará verze, již není udržována: V5.0 Duben 1988 ? VAX 6000 , SMP , LMF, modulární výkonný
Stará verze, již není udržována: V1.0 AXP Listopadu 1992 ? První vydání pro Alpha
Stará verze, již není udržována: V6.0 Června 1993 ? Soulad s VAX 7000/10000 , TCSEC C2
Stará verze, již není udržována: V6.1 Duben 1994 ? Sloučení čísel verzí VAX a Alpha
Stará verze, již není udržována: V7.0 Prosinec 1995 Března 1998 64bitové adresování na Alpha, Fast Path I/O
Stará verze, již není udržována: V7.3 Compaq Červen 2001 Prosinec 2012 Konečné vydání pro VAX
Stará verze, již není udržována: V8.0 HP Červen 2003 Prosinec 2003 Vydání hodnocení pro servery Integrity
Stará verze, již není udržována: V8.2 Únor 2005 Duben 2014 Produkční vydání pro Integrity a Alpha
Stará verze, již není udržována: V8.4 Červen 2010 Prosince 2020 Podpora pro HPVM , klastry přes TCP/IP
Starší verze, ale stále udržovaná: V8.4-1H1 VSI Květen 2015 Prosince 2022 Podpora pro procesory Poulson
Starší verze, ale stále udržovaná: V8.4-2L1 Září 2016 Prosince 2024 OpenSSL aktualizován na 1.0.2
Leden 2017 TBA První vydání pro Alpha od VSI
Starší verze, ale stále udržovaná: V8.4-2L2 Červenec 2017 TBA Konečné vydání pro Alpha
Aktuální stabilní verze: V8.4-2L3 Dubna 2021 Prosince 2028 Konečné vydání pro servery Integrity
Stará verze, již není udržována: V9.0 Květen 2020 Června 2021 Sada pro včasné osvojitele x86-64
Nejnovější verze náhledu budoucí verze: V9.1 Června 2021 H2 2021 Polní test x86-64
Budoucí vydání: V9.2 Dubna 2022 Prosince 2028 Vydání s omezenou produkcí x86-64
Budoucí vydání: V9.2-1 Listopadu 2022 Prosince 2029 Produkční vydání x86-64
Budoucí vydání: V9.2-2 2023 TBA Vylepšené zabezpečení clusteru
Legenda:
Stará verze
Starší verze, stále udržovaná
Nejnovější verze
Nejnovější verze náhledu
Budoucí vydání

Viz také

Reference

Další čtení

externí odkazy