# VMS

# VMS / OpenVMS — kronika systemu, który nie chciał umrzeć

<p class="callout info">*Historia operacyjnego systemu, który wyprzedził epokę o dekady, w ukryciu wychował Windowsa, został pogrzebany przez korporacyjne fuzje — i wstał z grobu na procesorze, którego za życia nie znał.*</p>

> Inne komputery padały. Ten po prostu trwał. Administrator, który go uruchomił, zdążył się zwolnić, ożenić i awansować gdzie indziej, a maszyna wciąż przyjmowała loginy. W społeczności VMS-a uptime liczony w latach był powodem do dumy, nie do paniki — udokumentowano klastry działające bez przerwy **siedemnaście lat**.

---

## Spis treści

1. Wprowadzenie: dlaczego warto znać system, którego nigdy nie widziałeś
2. Narodziny (1975–1978)
3. Filozofia i powłoka DCL
4. Architektura od środka
5. System plików, który pamiętał wszystko
6. Klaster: niezniszczalność jako cecha projektowa
7. VMS kontra reszta świata (Unix, Linux, DOS, Windows)
8. Czas hakerów
9. Skąd się wziął POSIX i jak zmienił VMS-a
10. Zemsta Cutlera: jak VMS został Windowsem
11. Trzy przeprowadzki: VAX → Alpha → Itanium
12. Śmierć (powolna i przez korporacyjne ręce)
13. Zmartwychwstanie (2014 →)
14. Epilog
15. Ciekawostki zebrane
16. Oś czasu
17. Źródła i dalsze lektury

---

## 1. Wprowadzenie: dlaczego warto znać system, którego nigdy nie widziałeś

Jeśli nie pracowałeś w banku, na giełdzie, w fabryce, szpitalu albo instytucji rządowej z długą pamięcią, prawdopodobnie nigdy nie widziałeś działającego OpenVMS-a na oczy. A mimo to dotykasz jego dziedzictwa codziennie — bo fundament każdego współczesnego Windowsa to w prostej linii intelektualne dziecko VMS-a, zaprojektowane przez tego samego człowieka.

VMS to system, który warto poznać z trzech powodów. Po pierwsze, był laboratorium pomysłów, które reszta branży „odkrywała” dziesięć, dwadzieścia, trzydzieści lat później: wersjonowanie plików, klastry wysokiej dostępności, rozproszone blokowanie zasobów, listy kontroli dostępu. Po drugie, jego historia to gotowy scenariusz na film — z hakerami sprzedającymi sekrety KGB, robakiem protestującym przeciw broni jądrowej i korporacyjnym dramatem o zdradzie, ucieczce i procesie. Po trzecie, to jedno z nielicznych pełnych studiów przypadku tego, jak **doskonała technologia może przegrać** nie z lepszą technologią, lecz z decyzjami zarządów i logiką rynku — a potem, wbrew wszystkiemu, wrócić do życia.

Ten tekst jest pomyślany jako rozdział książki: można go czytać linearnie jak opowieść, ale każdy rozdział stoi też o własnych siłach jako notatka merytoryczna. Daty i fakty są opatrzone źródłami na końcu.

## 2. Narodziny (1975–1978)

Na początku był problem inżynierski. W kwietniu 1975 roku **Digital Equipment Corporation (DEC)** — wówczas druga firma komputerowa świata, ustępująca tylko IBM — rozpoczęła projekt 32-bitowego rozszerzenia swojej legendarnej, 16-bitowej linii minikomputerów **PDP-11**. Architektura 16-bitowa dusiła się w ciasnocie adresowej; klienci potrzebowali większej przestrzeni pamięci i mocy. Odpowiedzią był **VAX** — *Virtual Address eXtension* — a jego pierwszym wcieleniem maszyna **VAX-11/780**, ogłoszona **25 października 1977 roku**.

VAX-11/780 stał się czymś więcej niż produktem — stał się jednostką miary. Jego wydajność, około jednego miliona instrukcji na sekundę, przyjęto w branży za punkt odniesienia: „1 VUP” (VAX Unit of Performance). Przez lata moc innych komputerów podawano w wielokrotnościach tej jednej, konkretnej maszyny spod Bostonu.

Sprzęt potrzebował systemu operacyjnego. Tym systemem był **VMS** — *Virtual Memory System*. Pierwsza pełna wersja, V1.0, ukazała się w 1978 roku. Architektura systemu wyrastała wprost z doświadczeń zespołu przy systemie **RSX-11M** na PDP-11, i to dziedzictwo widać w dziesiątkach konwencji — od sposobu zarządzania procesami po filozofię niezawodności.

Głównymi architektami byli trzej ludzie: **Dave Cutler**, **Dick Hustvedt** i **Peter Lipman**. To Cutler nadał systemowi charakter. Inżynier o bezkompromisowym, niemal wojskowym podejściu do dyscypliny kodu, słynął z otwartej niechęci do Uniksa — uważał go za niespójny zlepek złożony przez zbyt wiele rąk bez jednej nadrzędnej wizji. Z tej niechęci wyrósł cały etos VMS-a: jeden spójny projekt, w którym kompletność i niezawodność stoją ponad elegancją minimalizmu, a słowo „reboot” jest przyznaniem się do porażki. Ta postać wróci do naszej opowieści w najmniej oczekiwanym miejscu — po drugiej stronie barykady, w Microsoftcie.

> 💡 **Ciekawostka.** Terminal **VT100** firmy DEC, towarzyszący maszynom VAX, do tego stopnia zdominował rynek, że jego sekwencje sterujące stały się faktycznym standardem. Gdy dziś otwierasz „terminal” na Linuksie czy macOS, twój emulator najczęściej deklaruje się jako kompatybilny z `vt100` albo `xterm`. Duch DEC-a siedzi w każdej konsoli.

## 3. Filozofia i powłoka DCL

Pierwsze spotkanie z VMS-em wyglądało tak:

```
          Welcome to VAX/VMS Version V4.7

Username: ANDERSON
Password:

          Welcome to VAX/VMS Version V4.7

    Last interactive login on Tuesday,  3-MAR-1987 09:12:47.06
    Last non-interactive login on Monday,  2-MAR-1987 23:58:01.55

$
```

Ten skromny znak zachęty `$` to **DCL** — *Digital Command Language* — powłoka i język skryptowy VMS-a. I to właśnie tu najszybciej czuć różnicę filozofii w stosunku do Uniksa. Tam, gdzie Unix mówił lakonicznie `ls`, `cp`, `rm`, VMS mówił pełnymi słowami: `DIRECTORY`, `COPY`, `DELETE`, `SET DEFAULT`. Każde polecenie można było skrócić do unikalnego przedrostka (`DIR`, `SET DEF`), ale domyślny ton był jasny: **kod ma być czytelny dla człowieka, który przyjdzie po tobie** — najpewniej o trzeciej w nocy, gdy coś się zepsuje.

DCL miał spójną, samodokumentującą się składnię opartą na kwalifikatorach z ukośnikiem:

```
$ DIRECTORY/SIZE/DATE/OWNER [ANDERSON.PROJEKT]
$ COPY/LOG raport.txt raport_kopia.txt
$ PRINT/QUEUE=LASER/COPIES=3 umowa.txt
$ SET DEFAULT DKA0:[ANDERSON.PROJEKT]
$ HELP COPY
```

Dwa filary elastyczności DCL to **symbole** (odpowiednik zmiennych) i **nazwy logiczne** (*logical names*). Te drugie to jeden z najsprytniejszych pomysłów systemu: warstwa pośrednia między nazwą a fizycznym zasobem. Nazwa logiczna mogła wskazywać dysk, katalog, urządzenie, plik, a nawet inną nazwę logiczną — coś pomiędzy zmienną środowiskową a montowaniem, tylko bardziej systemowe i wszechobecne.

```
$ DEFINE BAZA DKA1:[PRODUKCJA.DANE]
$ DEFINE/SYSTEM RAPORTY DKA2:[WSPOLNE.RAPORTY]
$ TYPE BAZA:klienci.dat
$ SHOW LOGICAL BAZA
   "BAZA" = "DKA1:[PRODUKCJA.DANE]" (LNM$PROCESS_TABLE)
```

Dzięki temu aplikacja nigdy nie musiała znać twardych ścieżek. Przenosisz dane na inny dysk? Zmieniasz jedną definicję, a setki programów dalej działają. To rozwiązanie, do którego świat uniksowy dochodził później przez dowiązania symboliczne i zmienne środowiskowe — tu było wpisane w rdzeń systemu od początku.

## 4. Architektura od środka

Pod przyjazną powłoką krył się system zaprojektowany z chirurgiczną dbałością o izolację błędów i synchronizację. Najważniejsze decyzje architektoniczne VMS-a opierały się wprost na sprzętowych możliwościach procesora VAX — i to one tłumaczą, dlaczego ten system był tak stabilny.

### Cztery tryby dostępu

Procesor VAX oferował **cztery sprzętowe tryby uprzywilejowania**, a VMS wykorzystywał je wszystkie — w odróżnieniu od Uniksa i większości późniejszych systemów, które obywały się dwoma (jądro i użytkownik):

- **Kernel** — jądro, sterowniki, zarządzanie pamięcią i procesami; najwyższy poziom przywilejów,
- **Executive** — usługi rekordowe (RMS) i części systemu zarządzania danymi,
- **Supervisor** — interpreter DCL,
- **User** — aplikacje użytkownika; najniższy poziom.

Każdy tryb miał własny stos, a każda strona pamięci mogła mieć ochronę określoną osobno dla każdego z trybów. Awaria w warstwie wyższej nie musiała pociągać za sobą całości — drobnoziarnista izolacja, której większość systemów wtedy nie miała. Co istotne, te cztery poziomy okażą się później kłopotem przy przenoszeniu VMS-a na nowoczesne procesory, które udostępniają tylko dwa użyteczne — ale o tym w rozdziale 13.

### Przerwania, AST-y i synchronizacja

VAX miał **32 poziomy priorytetu przerwań** (IPL), które VMS wykorzystywał do precyzyjnej synchronizacji w jądrze. Dla aplikacji kluczowym mechanizmem były **AST-y** (*Asynchronous System Traps*) — sprzętowo wspierane wywołania zwrotne, dzięki którym proces mógł zostać powiadomiony o zdarzeniu (np. zakończeniu operacji wejścia-wyjścia) bez aktywnego czekania. To fundament asynchronicznego I/O, które VMS miał elegancko rozwiązane dekady przed modnym dziś „async/await”.

### Wejście-wyjście i komunikacja międzyprocesowa

Sercem operacji wejścia-wyjścia była usługa systemowa **`$QIO`** (*Queue I/O*), pozwalająca zlecać operacje synchronicznie lub asynchronicznie. Procesy komunikowały się i synchronizowały za pomocą **flag zdarzeń** (*event flags*), **skrzynek pocztowych** (*mailboxes* — wirtualnych urządzeń do przekazywania komunikatów) oraz globalnych sekcji pamięci współdzielonej. To był bogaty, spójny zestaw prymitywów systemowych — znów kontrast z uniksową filozofią „złóż sobie sam z prostych klocków”.

### VAX: triumf złożoności (CISC)

Architektura VAX była skrajnym przykładem podejścia **CISC** — *Complex Instruction Set Computing*. Miała pojedyncze instrukcje robiące rzeczy, które gdzie indziej wymagały całych procedur: obliczanie wielomianu, formatowanie tekstu z polami, operacje na kolejkach, liczenie sum kontrolnych. Idea była szlachetna: zbliżyć język maszynowy do języków wysokiego poziomu. W praktyce ta złożoność stała się ciężarem, a branża skręciła ku prostocie **RISC**. Gdy DEC projektował następcę VAX-a — procesor **Alpha** — świadomie odrzucił całą tę barokową złożoność na rzecz minimalistycznego, szybkiego rdzenia. To zderzenie filozofii (bogactwo VAX-a kontra ascetyzm Alphy) jest jednym z najciekawszych wątków technicznych w całej historii i, jak zobaczymy, wymusiło sprytne sztuczki przy każdej kolejnej przeprowadzce systemu.

## 5. System plików, który pamiętał wszystko

Tu mieści się funkcja, która do dziś wywołuje u weteranów westchnienia tęsknoty. System plików VMS-a, **Files-11** (struktury dyskowe ODS-2, później ODS-5), miał wbudowane **wersjonowanie**. Zapis nie nadpisywał pliku — tworzył jego nową wersję, oznaczoną kolejnym numerem po średniku.

```
$ DIRECTORY

Directory DKA0:[ANDERSON.PROJEKT]

LOGIN.COM;3         RAPORT.TXT;7        RAPORT.TXT;6        RAPORT.TXT;5
MAIL.MAI;1          NOTATKI.TXT;12      BUDZET.DAT;2        BUDZET.DAT;1

Total of 8 files.
$
```

Widać `RAPORT.TXT` w wersjach 7, 6 i 5 jednocześnie. Pomyłkowo zapisałeś bzdury na ważnym pliku? Poprzednia wersja wciąż istnieje — wystarczy odwołać się do niej numerem. Sprzątanie starych wersji było czynnością świadomą (`PURGE`), a limit przechowywanych wersji ustawiało się per plik lub katalog (`SET FILE/VERSION_LIMIT`). Pełna specyfikacja pliku w VMS była zresztą małym dziełem sztuki, kodując w jednym ciągu węzeł sieci, dysk, hierarchię katalogów, nazwę, typ i wersję:

```
WEZEL::DYSK:[KATALOG.PODKATALOG]NAZWA.TYP;WERSJA
BOSTON::DKA0:[ANDERSON.PROJEKT]RAPORT.TXT;7
```

W odróżnieniu od uniksowego pliku-jako-strumienia-bajtów, pliki VMS-a były **strukturalne** dzięki warstwie **RMS** (*Record Management Services*), wbudowanej w sam system. RMS rozumiał rekordy o stałej i zmiennej długości oraz pliki **indeksowane (ISAM)** z wyszukiwaniem po kluczach — bez angażowania osobnej bazy danych. Dla aplikacji biznesowych (księgowość, ewidencja, bankowość) był to ogromny komfort; dla unixowca przyzwyczajonego do `cat` i `grep` — kulturowy szok.

### Bezpieczeństwo: tożsamość, przywileje, ACL

Tożsamości i uprawnienia trzymał plik **`SYSUAF.DAT`** (*System User Authorization File*), którym zarządzało się narzędziem `AUTHORIZE`. VMS miał drobnoziarnisty model **przywilejów** (np. `SYSPRV`, `BYPASS`, `CMKRNL`) zamiast uniksowego „wszystko albo nic” roota, a także **listy kontroli dostępu (ACL)** i identyfikatory praw — znów dekady przed tym, zanim stały się standardem gdzie indziej. Konto administracyjne nazywało się `SYSTEM`; istniało też serwisowe konto `FIELD` dla techników DEC. Te dwa konta, jak zobaczymy w rozdziale o hakerach, były piętą achillesową niejednej instalacji.

## 6. Klaster: niezniszczalność jako cecha projektowa

Jeśli jedna funkcja miałaby zdefiniować VMS-a, byłoby to **klastrowanie** — i to nie doklejone później, lecz przemyślane jako fundament dostępności.

DEC ogłosił **VAXcluster w maju 1983 roku**, a wsparcie weszło do systemu wraz z VMS V4 w 1984. Idea była radykalna: wiele fizycznych maszyn, z których każda uruchamia **własną kopię** systemu, prezentuje się światu jako **jeden system** (single system image) — ze wspólną pamięcią dyskową, wspólnymi kolejkami zadań i wydruków oraz wspólną domeną bezpieczeństwa. Węzły mogły dołączać i odłączać się od klastra bez zakłócania reszty.

Mechanizmem, który to spinał, był **rozproszony menedżer blokad** (*Distributed Lock Manager*, DLM), zaprojektowany przez **Steve'a Beckhardta** i wydany w 1984 z VAX/VMS V4.0 (jednowęzłowa synchronizacja istniała już w V3.0 z 1982). DLM pozwalał wielu węzłom bezpiecznie współdzielić te same dyski, a nawet te same pliki, z blokowaniem na poziomie pojedynczego rekordu. To rzadkość: większość klastrów oferowała dostęp „albo ja, albo ty”; VAXcluster dawał **przezroczysty, w pełni rozproszony zapis i odczyt z blokadą rekordową**.

Pierwsze klastry wymagały specjalnego sprzętu — interconnectu **CI** (*Computer Interconnect*) z pasywnym **Star Couplerem** i kontrolerami pamięci masowej **HSC**. W 1986 roku DEC dodał **LAVc** (*Local Area VAXcluster*) działający po zwykłym Ethernecie, co otworzyło klastrowanie dla tańszych maszyn MicroVAX i pozwoliło uruchamiać bezdyskowe węzły-satelity bootujące przez sieć. Z czasem doszły kolejne nośniki (DSSI, SCSI, FDDI, Memory Channel, Gigabit Ethernet), a w OpenVMS V8.4 (2010) — **klastrowanie po TCP/IP**, co umożliwiło rozciąganie klastra na duże odległości geograficzne i budowę konfiguracji odpornych na katastrofy.

```
$ SHOW CLUSTER

View of Cluster from system ID 1024  node: BOSTON   14-MAR-1995 11:42:18

+--------------------------------------+
| SYSTEMS          |     MEMBERS       |
|------------------+-------------------|
| NODE     SOFTWARE| STATUS    VOTES   |
|------------------+-------------------|
| BOSTON   VMS V6.1| MEMBER       1    |
| QUINCY   VMS V6.1| MEMBER       1    |
| SALEM    VMS V6.1| MEMBER       1    |
+--------------------------------------+
```

Klaster obsługiwał do **96 węzłów** i — co niezwykłe — pozwalał na konfiguracje **mieszane architektonicznie**: w jednym klastrze mogły współistnieć maszyny VAX i Alpha albo Alpha i Itanium. To była błogosławiona własność podczas migracji: stary i nowy sprzęt pracowały ramię w ramię, a usługę przenosiło się stopniowo, nie gasząc jej ani na chwilę. Stąd właśnie biorą się legendarne **uptime'y liczone w latach** — bo aktualizacja systemu czy wymiana sprzętu nie oznaczała przerwy, lecz „przepięcie” obciążenia na inny węzeł klastra.

Warto dodać, że VMS dorobił się też wczesnego, dojrzałego **SMP** (przetwarzania symetrycznego na wielu procesorach) już w wersji V5.2 z 1988 roku.

> 💡 **Ciekawostka.** Cała branża „odkryła” wysoką dostępność i klastry pod hasłem *high availability* w latach 90. i 2000. VMS robił to produkcyjnie, z blokowaniem rekordowym i pojedynczym obrazem systemu, od **1984 roku**.

## 7. VMS kontra reszta świata (Unix, Linux, DOS, Windows)

Charakter VMS-a najlepiej widać w zderzeniu z konkurencją. Każdy z tych systemów był ucieleśnieniem innej filozofii informatyki.

**Unix** (i jego potomek **Linux**) wyrastał z laboratoriów Bell Labs i głosił ascetyczne wyznanie: *małe narzędzia, które robią jedną rzecz dobrze, i komponuj z nich resztę*. Plik to strumień bajtów, uprawnienia są proste, jądro robi minimum. Elegancja, elastyczność i przenośność za cenę tego, że spójne, kompletne usługi musisz sobie poskładać sam.

**VMS** głosił dokładnie odwrotne wyznanie: *dam ci kompletne, dopracowane, niezawodne usługi, żebyś nie musiał ich składać*. Strukturalne pliki, bogate prymitywy, klastry w standardzie, drobnoziarniste bezpieczeństwo. Kompletność i niezawodność za cenę większej masy i mniejszej zwięzłości.

**DOS** grał w zupełnie innej lidze — minimalistyczny, jednozadaniowy system dla domowych pecetów, bez ochrony pamięci i bez prawdziwej wielozadaniowości. **Windows** do wersji 3.x był jedynie graficzną nakładką na DOS. Dopiero **Windows NT** — o czym osobny, dramatyczny rozdział — wprowadził do świata Microsoftu prawdziwy, chroniony, wielozadaniowy system. I zrobił to, czerpiąc garściami z VMS-a.

<table id="bkmrk-cecha-vms-%2F-openvms-"><thead><tr><th>Cecha</th><th>VMS / OpenVMS</th><th>Unix / Linux</th><th>DOS</th><th>Windows (NT+)</th></tr></thead><tbody><tr><td>Filozofia</td><td>jeden spójny projekt, niezawodność ponad wszystko</td><td>małe narzędzia, kompozycja</td><td>minimalizm na PC</td><td>GUI + kompatybilność wsteczna</td></tr><tr><td>Powłoka</td><td>DCL (pełne słowa)</td><td>sh / bash (zwięzła)</td><td>COMMAND.COM</td><td>cmd / PowerShell</td></tr><tr><td>Pliki</td><td>strukturalne (RMS) + wersjonowanie</td><td>strumień bajtów</td><td>strumień bajtów</td><td>strumień bajtów</td></tr><tr><td>Tryby CPU</td><td>4 pierścienie</td><td>2</td><td>brak ochrony</td><td>2</td></tr><tr><td>Bezpieczeństwo</td><td>przywileje + ACL (wcześnie)</td><td>uprawnienia rwx, później ACL</td><td>brak</td><td>ACL (model NT)</td></tr><tr><td>Klastrowanie</td><td>natywne od 1984, blokada rekordowa</td><td>doklejane warstwy</td><td>brak</td><td>doklejane później</td></tr><tr><td>Rodowód</td><td>własna linia (z RSX-11)</td><td>własna linia (Bell Labs)</td><td>QDOS / CP/M</td><td>**dziecko VMS-a**</td></tr></tbody></table>

## 8. Czas hakerów

W latach 80. i wczesnych 90. sieci akademickie, wojskowe i korporacyjne stały w dużej mierze na VAX-ach z VMS-em, spiętych protokołem **DECnet** — który był tak głęboko zintegrowany z systemem, że zdalne logowanie czy dostęp do plików na innym węźle (`SET HOST`) były równie naturalne jak praca lokalna. A tam, gdzie stoją ciekawe maszyny pełne ciekawych danych, prędzej czy później pojawiają się ciekawscy ludzie. Dwie historie z tej epoki przeszły do legendy.

### Kukułcze jajo (1986)

Bohaterem jest **Clifford Stoll** — astronom, który po utracie grantu trafił do działu komputerowego **Lawrence Berkeley National Laboratory (LBNL)** w Kalifornii. W 1986 roku przełożony zlecił mu wyjaśnienie błahostki: **rozbieżności na 75 centów** w rozliczeniu czasu komputerowego. Okazało się, że to dziewięć sekund pracy systemu zużyte przez konto, które za nie nie zapłaciło — bo nie powinno istnieć.

Zamiast zaksięgować różnicę i zapomnieć, Stoll pociągnął za nitkę. Odkrył intruza, który zdobył uprawnienia administratora, wykorzystując dziurę w funkcji `movemail` programu GNU Emacs — „podłożył jajo” w cudzym systemie, niczym tytułowa kukułka podrzucająca jajo do obcego gniazda. Włamywacz nie zatrzymywał się w Berkeley; używał laboratorium jako odskoczni do sieci wojskowej **MILNET**, polując na pliki ze słowami „nuclear”, „SDI” (reaganowska Inicjatywa Obrony Strategicznej) czy „stealth”.

Stoll rozpoczął samotne, miesięczne polowanie. Zwoził do laboratorium dziesiątki terminali i drukarek (pożyczanych z biurek nieobecnych kolegów), by rejestrować każdy ruch intruza, sypiał w biurze, bo włamywacz logował się nocą. Ślad telekomunikacyjny prowadził przez sieć **Tymnet** i kontraktora obronnego **MITRE**, a ostatecznie — z pomocą niemieckiej poczty (Bundespost) — do **Hanoweru** w RFN.

By zatrzymać włamywacza wystarczająco długo do namierzenia, Stoll zastawił pułapkę, która przeszła do podręczników jako jeden z pierwszych **honeypotów** w historii: wymyślił fikcyjny dział „SDInet” z fałszywą sekretarką „Barbarą Sherwin” i zapełnił go górnolotnie brzmiącymi, lecz bezwartościowymi dokumentami. Włamywacz połknął przynętę.

Tropem był **Markus Hess**, który wraz ze wspólnikami (m.in. Dirk Brzezinski i Peter Carl, w orbicie niemieckiego **Chaos Computer Clubu** kręcili się też hakerzy o pseudonimach **Pengo** — Hans Hübner — i **Hagbard** — Karl Koch) **sprzedawał wykradzione dane radzieckiemu KGB**. Szacuje się, że Hess włamał się do około 400 amerykańskich systemów wojskowych, a grupa zarobiła na tym około 54 000 dolarów. Stoll opisał śledztwo w fachowym artykule „Stalking the Wily Hacker” (*Communications of the ACM*) i w bestsellerowej książce ***The Cuckoo's Egg*** (1989); historię sportretował też dokument PBS NOVA „The KGB, the Computer, and Me” (3 października 1990).

> 💡 **Ciekawostka — i przestroga, która nie zestarzała się ani trochę.** Stoll był zdumiony, jak łatwo intruz wchodził na maszyny o wysokim rygorze bezpieczeństwa, w tym wojskowe: administratorzy nagminnie nie zmieniali **fabrycznych haseł domyślnych**, a na niektórych systemach dało się zalogować jako `guest` bez żadnego hasła. Trzydzieści kilka lat później to wciąż jeden z najczęstszych wektorów włamań.

### Robak WANK (1989)

**16 października 1989 roku**, kilka dni przed startem wahadłowca z sondą **Galileo** na pokładzie, na ekranach systemów VMS w sieci **SPAN** (NASA Space Physics Analysis Network) oraz w sieciach Departamentu Energii USA zaczął pojawiać się komunikat:

```
  W O R M S    A G A I N S T    N U C L E A R    K I L L E R S
 ______________________________________________________________

            Your System Has Been Officially WANKed
```

To był **WANK** — *Worms Against Nuclear Killers* — pierwszy poważny robak komputerowy z jawnym **przesłaniem politycznym**. Sonda Galileo zasilana była plutonowymi generatorami radioizotopowymi, co — trzy lata po katastrofie Challengera i w cieniu zimnej wojny — wywołało protesty ruchów antynuklearnych pod Centrum Kosmicznym Kennedy'ego. Robak był cyfrowym przedłużeniem tego protestu.

Napisany w całości w **DCL**, WANK rozprzestrzeniał się po DECnecie, wykorzystując te same słabości, które tropił Stoll: konta, w których **nazwa użytkownika była zarazem hasłem**, konta bez hasła oraz konta systemowe. Miał na sztywno zakodowaną listę około stu typowych nazw użytkowników VAX-a. Symulował kasowanie plików (siejąc panikę), choć w istocie nie niszczył danych. Dwa tygodnie później pojawił się jego poprawiony wariant, **OILZ**, łatający część błędów oryginału.

Odpowiedź obrońców była elegancka: **John McMahon** (NASA) i **Kevin Oberman** (DOE) napisali program „anti-WANK”, który wykorzystywał mechanizm samokontroli robaka — ten przed infekcją sprawdzał, czy w tablicy procesów nie ma już jego kopii. Anti-WANK podszywał się pod tę kopię, więc robak „uznawał”, że system jest już zajęty, i sam się wycofywał.

Autorów nigdy oficjalnie nie wskazano. Najczęściej wymienia się dwóch hakerów z Melbourne o pseudonimach **Electron** i **Phoenix**, a w kodzie znaleziono nawiązania do australijskiego, antynuklearnego zespołu **Midnight Oil**. Najbardziej poetycki dowód australijskiego śladu: robak **celowo omijał strefę 48 DECnetu** — czyli Nową Zelandię, która ogłosiła się krajem wolnym od broni jądrowej. „Tam już zrozumieli”, zdawał się mówić kod.

> 💡 **Ciekawostka.** Historię WANK-a spisali później australijska dziennikarka Suelette Dreyfus i — jako badacz — **Julian Assange** w książce *Underground*. Tak, ten sam Assange, wiele lat przed WikiLeaks. Świat hakerów bywa zaskakująco mały.

## 9. Skąd się wziął POSIX i jak zmienił VMS-a

Ten wątek nie jest historią VMS-a — to historia, która VMS-a **dopadła**.

Problem narastał przez całe lata 80.: Unix, zamiast pozostać jednym systemem, rozmnożył się w dziesiątki niezgodnych ze sobą wariantów (System V, BSD, SunOS, HP-UX, AIX, Xenix i inne). Program napisany pod jeden nie chciał się kompilować pod drugim. Dla największego pojedynczego nabywcy komputerów na świecie — **rządu USA** — był to kosztowny absurd i pułapka uzależnienia od dostawcy.

Rozwiązaniem miała być **standaryzacja**. Pod egidą **IEEE** powstał projekt (rozpoczęty około 1984 roku), którego owocem była norma **IEEE Std 1003.1-1988** — wspólny, „neutralny wobec producenta” interfejs systemowy wzorowany na Uniksie. Program zgodny z normą miał dać się przenosić między systemami.

Norma potrzebowała chwytliwej nazwy. Komitet ochrzcił ją roboczo „IEEE-IX” (czy „IEEEIX”), co **Richardowi Stallmanowi** — twórcy projektu GNU — zdecydowanie się nie spodobało. Jak sam wspominał, „IEEEIX” wymawiałoby się jak okrzyk przerażenia, więc obawiał się, że ludzie i tak będą mówić po prostu „Unix” — a to wzmocniłoby AT&amp;T, rynkowego rywala GNU. Stallman wziął więc inicjały od „Portable Operating System” i dokleił uniksowy sufiks „-ix”. Tak powstał **POSIX**: *Portable Operating System Interface*. Komitet uznał nazwę za łatwiejszą do wymówienia i zapamiętania — i ją przyjął.

Sednem dla losów VMS-a był jednak ruch administracyjny: rząd USA przekuł POSIX w wymóg zakupowy poprzez federalny standard **FIPS 151-1**. W praktyce oznaczało to brutalne: *jeśli twój system nie jest zgodny z POSIX, wypadasz z przetargów rządowych*.

Dla DEC-a był to problem egzystencjalny. VMS był wszystkim — tylko nie Uniksem. Odpowiedź była dwutorowa: do systemu **dodano warstwę zgodności POSIX** (uniksowe interfejsy i narzędzia), a sam system około **1991–1992 roku przemianowano z „VAX/VMS” na „OpenVMS”** (nazwa pojawiła się po wersji V5.4-2), by podkreślić otwartość na standardy. Przy okazji odcięto słowo „VAX”, bo trwał właśnie port na nową architekturę Alpha.

> 💡 **Ciekawostka — najczęstsze nieporozumienie.** „Open” w OpenVMS **nigdy** nie znaczyło „open source”. Znaczyło „otwarty na otwarte standardy (POSIX, Unix)”. System był i pozostaje własnościowy (z domieszką komponentów open source). To tak częsty błąd, że twórcy musieli go prostować przez dekady.

Ironia tej historii jest pełna: POSIX — narzędzie ujednolicania rozbujanego świata Uniksa — pośrednio zmusił najbardziej „nie-uniksowy” system rynku do założenia uniksowego kostiumu. Tradycja trwa do dziś: współczesny OpenVMS na x86 oferuje środowisko **GNV** (żartobliwie: *GNU's Not VMS*) z powłoką `bash` i narzędziami GNU dla deweloperów przyzwyczajonych do Uniksa.

## 10. Zemsta Cutlera: jak VMS został Windowsem

To najbardziej zaskakujący zwrot akcji w całej opowieści — i najlepszy dowód, że idee nie umierają tam, gdzie się rodzą.

Cofnijmy się do końca lat 80. DEC pracował nad nową, ambitną architekturą RISC o kryptonimie **Prism** i pisanym pod nią systemem **Mica**, projektowanym jako następca VMS-a. Szefem tych prac był **Dave Cutler**. W 1988 roku zarząd DEC anulował Prism (stawiając na inne plany), a Cutler — sfrustrowany utratą swojego dzieła — w **październiku 1988 odszedł do Microsoftu**, zabierając ze sobą znaczną część zespołu inżynierów.

Po drugiej stronie czekał Bill Gates, który szukał kogoś, kto zbuduje **poważny** system operacyjny — nie graficzną nakładkę na DOS-ie, lecz prawdziwy, chroniony, wielozadaniowy i przenośny OS. (Kontakt skojarzył podobno Nathan Myhrvold.) Cutler dostał ten projekt. Powstał z niego **Windows NT** (*New Technology*), który zadebiutował w 1993 roku i stał się fundamentem całej późniejszej linii: Windows 2000, XP, 7, 10, 11 oraz wszystkich edycji Windows Server.

I tu robi się gorąco. NT odziedziczył po linii VMS/Mica zaskakująco wiele: warstwową architekturę z trybami jądra i użytkownika, menedżer obiektów, drobnoziarniste przywileje i ACL, asynchroniczne wejście-wyjście, struktury i pomysły rozpoznawalne dla każdego, kto znał VMS-a. Sam Cutler był głównym architektem obu systemów, a podobieństwa wielokrotnie zauważano — branżowcy mówili wręcz o „efekcie Cutlera”.

Inżynierowie DEC dostrzegli te zbieżności i uznali, że przeszczepiono know-how (a być może i kod) z projektu Mica. DEC **zagroził pozwem** o własność intelektualną. Sprawa zakończyła się ugodą: Microsoft zapłacił DEC-owi (źródła podają kwoty od około 100 do 180 milionów dolarów, najczęściej wymienia się **około 150 mln**) i zobowiązał się **wspierać architekturę Alpha w Windows NT**. Oficjalnie ubrano to w język współpracy i szkoleń — ale w branży nikt nie miał złudzeń, czego ta ugoda naprawdę dotyczyła.

A na deser anegdota, którą fani powtarzają od lat. Weź litery `V`, `M`, `S` i przesuń każdą o jedną w alfabecie:

```
V → W
M → N
S → T
-----------
VMS  →  WNT   (Windows NT)
```

To dokładnie ten sam dowcip, co `HAL → IBM` z *2001: Odysei kosmicznej*. I tak jak Arthur C. Clarke oraz Stanley Kubrick zaprzeczali, że HAL był celowy, tak Cutler zaprzeczał intencjonalności WNT. Oficjalnie to „ciekawy zbieg okoliczności”. Technicznie jednak wniosek pozostaje: **za każdym razem, gdy uruchamiasz Windowsa, dotykasz ducha systemu zaprojektowanego w DEC-u w latach 70.**

> 💡 **Ciekawostka.** Cutler nie zatrzymał się na NT. Później pracował nad przeniesieniem Windows na 64-bitową architekturę **AMD64 (x86-64)** — tę samą, na której dziś działa odrodzony OpenVMS — a jeszcze później przy platformie Azure i konsoli **Xbox**. Jeden architekt zostawił ślad w trzech epokach informatyki.

## 11. Trzy przeprowadzki: VAX → Alpha → Itanium

Większość systemów operacyjnych jest przywiązana do jednej architektury procesora i ginie razem z nią. VMS przeżył **trzy** wielkie przeprowadzki — inżynierski wyczyn, który sam w sobie zasługuje na rozdział.

### VAX → Alpha (lata 90.)

Gdy CISC-owa złożoność VAX-a stała się hamulcem, DEC zaprojektował czystą, 64-bitową architekturę RISC o nazwie **Alpha**. Port VMS-a wykonano, biorąc „migawkę” kodu VAX-a z okolic wersji V5.4-2 i tworząc na jej bazie osobne, w pełni 64-bitowe drzewo źródeł (zarządzane narzędziem **VDE**). Wiele zależności sprzętowych VAX-a przeniesiono do firmware'u Alphy (SRM) oraz do mikrokodu **PALcode** — to właśnie PALcode emulował charakterystyczne mechanizmy VAX-a, w tym cztery tryby dostępu, na nowym sprzęcie. Aby ułatwić migrację klientom, udostępniono **translator binarny VEST**, tłumaczący stare pliki wykonywalne VAX-a na Alphę bez dostępu do kodu źródłowego. W 1994 roku, wraz z OpenVMS V6.1, osiągnięto „funkcjonalną równoważność” wersji VAX i Alpha.

### Alpha → Itanium (2001–2005)

W 2001 roku — tuż przed przejęciem przez HP — Compaq ogłosił port OpenVMS na intelowską architekturę **Itanium (IA-64)**, będący konsekwencją decyzji o porzuceniu rozwoju Alphy. Tym razem nie tworzono osobnego drzewa źródeł: Itanium budowano ze **wspólnej bazy kodu** z Alphą, dodając kod warunkowy tam, gdzie różniła się platforma. Pierwsze uruchomienie nastąpiło **31 stycznia 2003 roku** — minimalny system wystartował na stacji HP i2000, zalogował się jako `SYSTEM` i wykonał polecenie `DIRECTORY` (ten skromny rytuał „pierwszego DIR-a” powtórzy się przy każdej kolejnej przeprowadzce). Wersje przedprodukcyjne V8.0 i V8.1 ukazały się w 2003, a pierwsze produkcyjne wydanie, **V8.2**, w lutym 2005 (dostępne także dla Alphy). Dla zgodności udostępniono translator **AEST**, tłumaczący pliki Alphy (a nawet wcześniej przełożone z VAX-a) na Itanium.

> 💡 **Ciekawostka.** Decyzja, by przedprodukcyjne wersje portu na Alphę numerować jako „V1.x”, narobiła zamieszania wśród klientów — i nie powtórzono jej przy Itanium. Drobiazg, ale pokazuje, jak bardzo numeracja wersji potrafi mieszać ludziom w głowach.

## 12. Śmierć (powolna i przez korporacyjne ręce)

VMS nie zginął od jednego ciosu ani od konkurencji technicznej. Zginął od **łańcucha przejęć i strategicznych decyzji**, z których żadna nie była tak naprawdę o nim.

1. **Styczeń 1998 — DEC przejęty przez Compaqa.** Niegdysiejszy gigant, druga firma komputerowa świata, przestaje istnieć jako samodzielny byt.
2. **2001 — wyrok na Alphę.** Compaq ogłasza porzucenie rozwoju własnej, znakomitej architektury Alpha na rzecz intelowskiego Itanium. VMS traci swój naturalny, najlepszy sprzęt.
3. **2002 — HP kupuje Compaqa.** OpenVMS trafia pod skrzydła firmy o zupełnie innych priorytetach, w której inwestycje w system zaczynają wysychać.
4. **Ślepy zaułek Itanium.** HP przenosi OpenVMS na Itanium — ale sam Itanium okazuje się komercyjną klapą, złośliwie przezywaną „Itanic”. System zostaje przywiązany do tonącej platformy.
5. **2013 — HP zwija mapę drogową.** Ogłoszenie końca rozwoju nowych wersji, brak planów portu na nowoczesne procesory, harmonogram wygaszania wsparcia. Dla wielu klientów to był wyrok śmierci. Wsparcie dla VAX-a i Alphy gasło (Alpha — do 2018), a przyszłości po prostu nie zaproponowano.

Około roku 2013 obraz był jednoznaczny: legendarny, niezniszczalny system po prostu się kończył — nie dlatego, że był zły, lecz dlatego, że **żaden z kolejnych właścicieli nie miał w nim interesu**. To jedno z najczystszych studiów przypadku tego, jak doskonała technologia przegrywa z logiką korporacyjnego portfela.

## 13. Zmartwychwstanie (2014 →)

I tu zaczyna się trzeci akt, którego prawie nikt się nie spodziewał.

W **2014 roku** powstała firma **VMS Software Inc. (VSI)**, która przejęła od HP całość biznesu rozwoju i wsparcia OpenVMS. Cel był podwójny: utrzymać przy życiu system dla klientów, którzy nigdy nie zmigrowali (banki, giełdy, fabryki, szpitale, infrastruktura krytyczna, instytucje rządowe) — i wyrwać go z tonącego Itanium, przenosząc na **najpopularniejszą architekturę świata, x86-64**. To czwarta wielka przeprowadzka systemu w jego historii:

```
1977 ── VAX ──► lata 90. ── Alpha ──► 2000s ── Itanium ──► 2020s ── x86-64
```

Port na x86-64 wymagał kilku sprytnych decyzji inżynierskich, z których jedna jest pięknym domknięciem wątku z rozdziału 4. Procesor x86-64 udostępnia cztery pierścienie ochrony, ale w praktyce użyteczne są tylko dwa — a VMS od zawsze opierał się na **czterech** trybach dostępu. Rozwiązanie? **Brakujące poziomy zasymulowano programowo.** To samo, co kiedyś robił PALcode na Alphie, teraz robi warstwa programowa na x86-64. Przy okazji zamieniono firmowy backend kompilatora (GEM) na otwarty **LLVM** i zmieniono proces startu tak, by system bootował z dysku w pamięci.

Kamienie milowe odrodzenia:

- **14 maja 2019** — pierwsze uruchomienie OpenVMS na x86-64 (w maszynie wirtualnej VirtualBox), zwieńczone — jakże by inaczej — wykonaniem polecenia `DIRECTORY`.
- **Maj 2020** — V9.0, zestaw dla pierwszych testerów (Early Adopter's Kit).
- **2022** — V9.2, pierwsze **produkcyjne** wydanie na x86-64, działające jako maszyna wirtualna na VMware, KVM i VirtualBox.
- **V9.2-1 i V9.2-2** — rozszerzenie wsparcia sprzętu, hipernadzorców i pakietów open source (OpenSSL, OpenSSH, TCP/IP).
- **20 listopada 2024** — **V9.2-3**, najnowsze wydanie linii x86-64 (stan na 2025/2026).
- **Czerwiec 2025** — odświeżone środowisko GNV V3.0-2E (bash i narzędzia GNU) dla deweloperów na x86-64.

```
$ SHOW SYSTEM/NODE
OpenVMS V9.2-3  on node CLOUD01   21-JUN-2026 11:42:18.07  Uptime  412 03:18:55

  Pid    Process Name    State  Pri      I/O       CPU
00000041 SWAPPER         HIB     16        0   0 00:00:09.11
0000010C SYSTEM          LEF      9     4128   0 00:02:41.55
00000180 ANDERSON        CUR      4     1203   0 00:00:12.33
$
```

VSI uruchomiło też program **Community License**, dzięki któremu hobbyści i entuzjaści mogą legalnie postawić OpenVMS x86-64 we własnej maszynie wirtualnej. Po dekadach bycia systemem „tylko dla wielkich korporacji”, VMS w końcu trafił pod strzechy.

> 💡 **Ciekawostka — pełne domknięcie koła.** System z 1977 roku, zaprojektowany pod konkretny, fizyczny minikomputer wielkości lodówki, dziś żyje przede wszystkim jako **maszyna wirtualna w chmurze** — na architekturze x86-64, którą do świata pomógł wprowadzić nie kto inny jak **Dave Cutler**, już po stronie Microsoftu. Człowiek, który zbudował VMS-a, a potem (wedle złośliwych) „zabrał go” do Windowsa, nieświadomie przygotował grunt pod jego zmartwychwstanie.

## 14. Epilog

VMS to system, który wyprzedził epokę (wersjonowanie plików, klastry, blokada rekordowa, ACL), odcisnął się na świecie nie wprost (jako duch w każdym Windowsie), został zmuszony przez POSIX do założenia uniksowego kostiumu, trzy razy przeprowadzał się między architekturami procesorów, został pogrzebany przez korporacyjne fuzje — i wstał z grobu na x86-64, by działać tam, gdzie zaczynała się ta historia, tyle że teraz w chmurze.

Jego losy są przestrogą i pociechą zarazem. Przestrogą — bo pokazują, że doskonała technologia nie wygrywa sama z siebie; przegrywa z decyzjami zarządów, kaprysami rynku i strategicznymi błędami właścicieli. Pociechą — bo dowodzą, że dobrze zaprojektowana rzecz potrafi przeżyć własną śmierć, jeśli znajdzie się grupa ludzi gotowych ją podnieść.

> *„Systemy operacyjne umierają. VMS po prostu przeszedł na inny procesor.”*

## 15. Ciekawostki zebrane

- **1 VUP.** VAX-11/780 był tak wzorcowy, że jego wydajność (≈1 MIPS) stała się jednostką miary — „VAX Unit of Performance”, do której latami porównywano inne maszyny.
- **VT100 wszędzie.** Sekwencje sterujące terminala DEC stały się faktycznym standardem; każdy współczesny emulator terminala wciąż jest „kompatybilny z vt100”.
- **Uptime jako sport.** Udokumentowano klastry VMS działające bez restartu siedemnaście lat. To efekt projektu, nie przypadku.
- **„Open” ≠ open source.** Najtrwalsze nieporozumienie w historii systemu.
- **Rytuał pierwszego DIR-a.** Każda przeprowadzka na nową architekturę (Itanium 2003, x86-64 2019) była celebrowana tym samym gestem: zalogować się jako SYSTEM i wykonać `DIRECTORY`.
- **Cztery pierścienie, dwa razy zasymulowane.** Cztery tryby dostępu VMS-a najpierw emulował PALcode na Alphie, a dziś — warstwa programowa na x86-64, bo nowoczesny Intel/AMD daje tylko dwa użyteczne poziomy.
- **GNV = GNU's Not VMS.** Żartobliwy ukłon w stronę nazewnictwa GNU („GNU's Not Unix”).
- **WNT = VMS + 1**, dokładnie jak **HAL = IBM − 1**. Oba „przypadki” oficjalnie zaprzeczone przez twórców.
- **Honeypot z 1986.** Fałszywy dział „SDInet” Cliffa Stolla to jeden z pierwszych udokumentowanych honeypotów w dziejach.
- **Robak, który szanował Nową Zelandię.** WANK celowo omijał strefę 48 DECnetu (NZ) jako kraj wolny od broni jądrowej.
- **Assange przed WikiLeaks.** Historię WANK-a współopisał w książce *Underground* młody Julian Assange.
- **Cutler-wszechobecny.** VMS → Windows NT → port Windows na x86-64 → Azure → Xbox. Jeden inżynier, pół historii współczesnego oprogramowania.

## 16. Oś czasu

<table id="bkmrk-rok-wydarzenie-1975-"><thead><tr><th>Rok</th><th>Wydarzenie</th></tr></thead><tbody><tr><td>1975</td><td>DEC rozpoczyna projekt 32-bitowego rozszerzenia PDP-11 (VAX)</td></tr><tr><td>1977</td><td>Premiera VAX-11/780; ogłoszenie VAX/VMS (25 października)</td></tr><tr><td>1978</td><td>VAX/VMS V1.0</td></tr><tr><td>1982</td><td>Jednowęzłowy menedżer blokad (VMS V3.0)</td></tr><tr><td>1983</td><td>Ogłoszenie VAXcluster (maj)</td></tr><tr><td>1984</td><td>Klastry i rozproszony menedżer blokad w VMS V4.0</td></tr><tr><td>1986</td><td>Cliff Stoll wykrywa włamanie (Kukułcze jajo); LAVc po Ethernecie</td></tr><tr><td>1988</td><td>SMP w VMS V5.2; Dave Cutler odchodzi z DEC do Microsoftu</td></tr><tr><td>1988</td><td>Norma POSIX IEEE Std 1003.1-1988</td></tr><tr><td>1989</td><td>Robak WANK atakuje VMS-y w NASA/DOE (16 października); wydanie *The Cuckoo's Egg*</td></tr><tr><td>1991–92</td><td>VAX/VMS → OpenVMS (zgodność z POSIX); port na Alpha</td></tr><tr><td>1993</td><td>Premiera Windows NT (intelektualne dziecko VMS-a)</td></tr><tr><td>1994</td><td>OpenVMS V6.1 — równoważność funkcjonalna VAX/Alpha</td></tr><tr><td>1998</td><td>DEC przejęty przez Compaqa</td></tr><tr><td>2001</td><td>Compaq porzuca Alphę; ogłoszenie portu na Itanium</td></tr><tr><td>2002</td><td>HP przejmuje Compaqa</td></tr><tr><td>2003</td><td>Pierwsze uruchomienie OpenVMS na Itanium (31 stycznia)</td></tr><tr><td>2005</td><td>OpenVMS V8.2 — pierwsze produkcyjne wydanie na Itanium</td></tr><tr><td>2010</td><td>OpenVMS V8.4 — klastrowanie po TCP/IP</td></tr><tr><td>2013</td><td>HP ogłasza koniec mapy drogowej OpenVMS</td></tr><tr><td>2014</td><td>Powstaje VSI i przejmuje rozwój OpenVMS</td></tr><tr><td>2019</td><td>Pierwsze uruchomienie OpenVMS na x86-64 (14 maja)</td></tr><tr><td>2022</td><td>OpenVMS V9.2 — produkcyjnie na x86-64</td></tr><tr><td>2024</td><td>OpenVMS V9.2-3 — najnowsze wydanie (20 listopada)</td></tr><tr><td>2025</td><td>GNV V3.0-2E; OpenVMS żyje w chmurze i wirtualizacji</td></tr></tbody></table>

## 17. Źródła i dalsze lektury

**Historia i architektura systemu**

- OpenVMS — Wikipedia: `https://en.wikipedia.org/wiki/OpenVMS`
- VMScluster — Wikipedia: `https://en.wikipedia.org/wiki/VMScluster`
- Distributed Lock Manager — VSI OpenVMS Wiki: `https://wiki.vmssoftware.com/Distributed_Lock_Manager`
- Architektury / OpenVMS — VSI OpenVMS Wiki: `https://wiki.vmssoftware.com/OpenVMS`
- Software:OpenVMS — HandWiki (tryby dostępu, porty, translatory VEST/AEST): `https://handwiki.org/wiki/Software:OpenVMS`

**Czas hakerów**

- Clifford Stoll, *The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage* (1989) — książka źródłowa.
- The Cuckoo's Egg (book) — Wikipedia: `https://en.wikipedia.org/wiki/The_Cuckoo's_Egg_(book)`
- Markus Hess — Wikipedia: `https://en.wikipedia.org/wiki/Markus_Hess`
- WANK (computer worm) — Wikipedia: `https://en.wikipedia.org/wiki/WANK_(computer_worm)`
- „Beyond preliminary analysis of the WANK and OILZ worms” — ScienceDirect (analiza techniczna): `https://www.sciencedirect.com/science/article/abs/pii/016740489390013U`
- Suelette Dreyfus, Julian Assange, *Underground* (1997) — szerszy kontekst sceny hakerskiej.

**POSIX**

- POSIX — Wikipedia: `https://en.wikipedia.org/wiki/POSIX`
- Richard Stallman, „The origin of the name POSIX”: `https://stallman.org/articles/posix.html`
- „What is POSIX? Richard Stallman explains” — Opensource.com: `https://opensource.com/article/19/7/what-posix-richard-stallman-explains`
- FIPS 151-1 (NIST) — federalne przyjęcie POSIX.1: `https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub151-1.pdf`

**Cutler, Windows NT i ugoda z DEC**

- Dave Cutler — Wikipedia: `https://en.wikipedia.org/wiki/Dave_Cutler`
- Windows NT — Wikipedia (wpływy: VMS, RSX-11, VAXELN, MICA, Mach): `https://en.wikipedia.org/wiki/Windows_NT`
- „DEC forced Microsoft into alliance with legal threat” — Tech Monitor: `https://www.techmonitor.ai/technology/dec_forced_microsoft_into_alliance_with_legal_threat`
- Neil Rieck, „Dave Cutler, PRISM, Mica, Emerald, etc.”: `https://neilrieck.net/docs/dave_cutler-prism-mica-emerald-etc.html`

**Stan obecny (VSI, x86-64)**

- VMS Software, Inc. — strona produktowa V9.2 / V9.2-1 / V9.2-2: `https://vmssoftware.com/`
- Dokumentacja VSI (release notes, GNV): `https://docs.vmssoftware.com/`

*Uwaga: część dat „okołostandardowych” (POSIX, FIPS) oraz przejściowych (zmiana nazwy na OpenVMS) podawana jest w źródłach w przedziale 1988–1992, ponieważ procesy te rozciągały się na kilka lat. Kwoty ugody DEC–Microsoft różnią się między źródłami (ok. 100–180 mln USD).*