Maszyna wirtualna (system operacyjny)

z/VM
VM mascot - teddy bear.png
Deweloper IBM
Rodzina OS Rodzina VM
Stan roboczy Aktualny
Model źródłowy 1972–1986 Open source , 1977 – obecnie Zamknięte źródło
Pierwsze wydanie 1972 ; 51 lat temu ( 1972 )
Najnowsze wydanie IBM z/VM V7.2 / 16 września 2020 r . ; 2 lata temu ( 2020-09-16 )
Cel marketingowy Komputery mainframe IBM
Dostępne w język angielski
Platformy System/370 , System/390 , zSeries , IBM zEnterprise System
Licencja 1972–1981 domena publiczna , 1976 – obecnie własność
Oficjalna strona internetowa www .vm .ibm .com
Domyślny ekran logowania na VM/370 Release 6.

VM (często: VM/CMS ) to rodzina systemów operacyjnych maszyn wirtualnych IBM używanych na komputerach mainframe IBM System/370 , System/390 , zSeries , System z i kompatybilnych systemach, w tym emulator Hercules dla komputerów osobistych.

Znane są następujące wersje:

Virtual Machine Facility/370
VM/370, wydany w 1972 roku, jest reimplementacją System/370 wcześniejszego systemu operacyjnego CP/CMS .
VM/370 Basic System Extensions Program Product
VM/BSE (BSEPP) to rozszerzenie VM/370, które dodaje obsługę większej liczby urządzeń (takich jak dyski DASD o stałej architekturze blokowej typu 3370), ulepszenia środowiska CMS (takie jak ulepszony edytor) i pewne ulepszenia stabilności CP.
VM/370 System Extensions Program Produkt
VM/SE (SEPP) jest rozszerzeniem VM/370, które obejmuje funkcje VM/BSE, a także kilka dodatkowych poprawek i funkcji.
Maszyna wirtualna/produkt systemowy
VM/SP, wersja przełomowa, zastępuje VM/370, VM/BSE i VM/SE. Wersja 1 dodała EXEC2 i XEDIT System Product Editor; Wydanie 3 dodało REXX ; Wersja 6 dodała współdzielony system plików.
Wirtualna maszyna/produkt systemowy Opcja wysokiej wydajności
VM/SP HPO dodaje dodatkową obsługę urządzeń i funkcjonalność do VM/SP oraz pozwala niektórym maszynom S/370, które mogą wykorzystać więcej niż 16 MB rzeczywistej pamięci masowej, do 64 MB. Ta wersja była przeznaczona dla użytkowników, którzy mieliby jednocześnie obsługiwać wielu gości S / 370.
Pomoc w migracji maszyn wirtualnych/architektury rozszerzonej
VM/XA MA ma na celu ułatwienie migracji z MVS/370 do MVS/XA poprzez umożliwienie obu równoczesnym działaniu na tym samym kompleksie procesorów.
Virtual Machine/Extended Architecture System Facility
VM/XA SF to ulepszona maszyna VM/XA MA o ulepszonej funkcjonalności i wydajności.
Produkt systemu Virtual Machine/Extended Architecture
VM/XA SF to ulepszona maszyna VM/XA MA o ulepszonej funkcjonalności i wydajności, oferowana jako zamiennik VM/SP HPO na maszynach obsługujących S/370-XA. Zawiera wersję CMS, która może działać w trybie S/370 lub S/370-XA.
Architektura Virtual Machine/Enterprize Systems
VM/ESA zapewnia funkcje VM/SP, VM/SP HPO i VM/XA SP. VM/ESA wersja 1 może działać w trybie S/370, ESA/370 lub ESA/390; nie obsługuje trybu S/370 XA. Wersja 2 działa tylko w trybie ESA/390. Wersje VM/ESA obsługujące S/370 były w rzeczywistości oddzielną wersją od wersji VM/ESA ESA/390, ponieważ wersje S/370 są oparte na starszej bazie kodu VM/SP HPO, a ESA/390 wersje są oparte na nowszej bazie kodu VM/XA.
z/VM
z/VM, ostatnia wersja nadal szeroko stosowana jako jedno z głównych rozwiązań pełnej wirtualizacji na rynku komputerów mainframe. [ potrzebne źródło ] z/VM 4.4 była ostatnią wersją, która mogła działać w trybie ESA/390; kolejne wersje działają tylko w trybie z/Architecture.

CMS w nazwie odnosi się do Conversational Monitor System, składnika produktu, który jest systemem operacyjnym dla jednego użytkownika, który działa na maszynie wirtualnej i zapewnia współdzielenie czasu konwersacji w VM.

Przegląd

Sercem architektury VM jest Program Sterujący lub hypervisor w skrócie CP , VM-CP a czasami niejednoznacznie VM . Działa na fizycznym sprzęcie i tworzy maszyny wirtualnej . VM-CP zapewnia pełną wirtualizację maszyny fizycznej — w tym wszystkie operacje we/wy i inne operacje uprzywilejowane. Wykonuje współdzielenie zasobów systemowych, w tym zarządzanie urządzeniami, wysyłanie, zarządzanie wirtualną pamięcią masową i inne tradycyjne zadania systemu operacyjnego. Każdy użytkownik VM otrzymuje oddzielną maszynę wirtualną z własną przestrzenią adresową , urządzeniami wirtualnymi itp., na której można uruchomić dowolne oprogramowanie, które można uruchomić na maszynie autonomicznej. Dany komputer mainframe maszyny wirtualnej zwykle obsługuje setki lub tysiące instancji maszyn wirtualnych. VM-CP rozpoczął życie jako CP-370, reimplementacja CP-67 , która sama w sobie jest reimplementacją CP-40 .

Na każdej maszynie wirtualnej działa inny system operacyjny, system operacyjny gościa . To może być:

  • CMS ( Conversational Monitor System , przemianowany z Cambridge Monitor System of CP/CMS ). Większość maszyn wirtualnych obsługuje CMS, lekki system operacyjny dla jednego użytkownika. Jego interaktywne środowisko jest porównywalne z komputerem PC dla jednego użytkownika, w tym system plików, usługi programistyczne, dostęp do urządzeń i przetwarzanie w wierszu poleceń. (Podczas gdy wcześniejsza wersja CMS była niemiłosiernie opisywana jako „ CP/M na komputerze typu mainframe”, porównanie to jest anachronizmem; autor CP/M, Gary Kildall , był doświadczonym użytkownikiem CMS.)
  • GCS ( Group Control System ), który zapewnia ograniczoną symulację API MVS. IBM pierwotnie dostarczył GCS w celu uruchomienia VTAM bez usługi maszyny wirtualnej OS/VS1 i VTAM Communications Network Application (VCNA). RSCS V2 działał również pod GCS.
  • Główny system operacyjny. Główne systemy operacyjne IBM (tj. rodziny MVS , DOS/VSE lub TSS/370 ) można ładować i uruchamiać bez modyfikacji. Hypervisor VM traktuje systemy operacyjne gościa jako programy aplikacyjne z wyjątkowymi uprawnieniami – uniemożliwia im bezpośrednie korzystanie z uprzywilejowanych instrukcji (takich, które pozwoliłyby aplikacjom przejąć cały system lub jego znaczną część), ale symuluje uprzywilejowane instrukcje w ich imieniu. Większość systemów operacyjnych typu mainframe kończy normalną aplikację, która próbuje uzurpować sobie uprawnienia systemu operacyjnego. Hiperwizor maszyny wirtualnej może symulować kilka typów terminali konsoli dla systemu operacyjnego gościa, takich jak liniowy tryb wydruku 3215, graficzny 3270 oraz zintegrowaną konsolę na nowszych komputerach System/390 i System Z. Inni użytkownicy mogą następnie uzyskać dostęp do uruchomionych maszyn wirtualnych za pomocą polecenia DIAL na ekranie logowania, co połączy ich terminal z pierwszym dostępnym emulowanym urządzeniem 3270 lub pierwszym dostępnym urządzeniem 2703, jeśli użytkownik wybiera numer z terminala maszyny do pisania.
  • Kolejna kopia VM. Instancja maszyny wirtualnej drugiego poziomu może zostać w pełni zwirtualizowana wewnątrz maszyny wirtualnej. W ten sposób odbywa się rozwój i testowanie maszyny wirtualnej (maszyna wirtualna drugiego poziomu może potencjalnie zaimplementować inną wirtualizację sprzętu). Ta technika była używana do tworzenia oprogramowania S/370, zanim dostępny był sprzęt S/370, i nadal odgrywa rolę w rozwoju nowego sprzętu w IBM. W literaturze można znaleźć praktyczne przykłady wirtualizacji na pięciu poziomach . Poziomy maszyn wirtualnych poniżej szczytu są również traktowane jako aplikacje, ale z wyjątkowymi uprawnieniami.
  • Kopia wersji mainframe systemu AIX lub Linux . W środowisku komputerów mainframe te systemy operacyjne często działają pod maszyną wirtualną i są obsługiwane jak inne systemy operacyjne gościa. (Mogą również działać jako „natywne” systemy operacyjne na samym sprzęcie). Istniały również krótkotrwałe wersje IX / 370, a także wersje S / 370 i S / 390 systemu AIX (AIX / 370 i AIX / ESA) .
  • Wyspecjalizowany podsystem maszyny wirtualnej. Kilka systemów innych niż CMS działa na maszynach wirtualnych VM-CP, zapewniając użytkownikom CMS usługi, takie jak buforowanie, komunikację międzyprocesową, obsługę specjalistycznych urządzeń i tworzenie sieci. Działają za kulisami, rozszerzając usługi dostępne dla CMS bez dodawania do programu sterującego VM-CP. Działając na oddzielnych maszynach wirtualnych, otrzymują oni takie same zabezpieczenia i ochronę niezawodności, jak inni użytkownicy maszyn wirtualnych. Przykłady obejmują:
    • RSCS (Remote Spooling and Communication Subsystem, inaczej VNET) – narzędzia do komunikacji i przesyłania informacji między maszynami wirtualnymi a innymi systemami
    • RACF (Resource Access Control Facility) — system bezpieczeństwa
    • Shared File System (SFS), który organizuje udostępnione pliki w drzewie katalogów (serwery są powszechnie nazywane „VMSERVx”
    • VTAM (Virtual Telecommunications Access Method) – narzędzie zapewniające obsługę sieci Systems Network Architecture
    • PVM (VM/Pass-Through Facility) – narzędzie zapewniające zdalny dostęp do innych systemów VM
    • TCPIP, SMTP, FTPSERVE, PORTMAP, VMFS – zestaw maszyn usługowych zapewniających połączenie sieciowe TCP/IP z VM/CMS
    • Db2 Server for VM - system bazy danych SQL, serwery często noszą nazwy podobne do „SQLMACH” i „SQLMSTR”
    • DIRMAINT — uproszczony system zarządzania katalogami użytkowników (katalog to lista wszystkich kont w systemie, w tym konfiguracja sprzętu wirtualnego, hasła użytkowników i minidyski).
    • MUMPS/VM — implementacja bazy danych MUMPS i języka programowania, która może działać jako gość na VM/370. ŚWINKA/VM została wprowadzona w 1987 r. i wycofana w 1991 r.
  • System operacyjny napisany lub zmodyfikowany przez użytkownika , taki jak CSS firmy National CSS lub VPS/VM Uniwersytetu Bostońskiego .

Interfejs hiperwizora

IBM ukuł termin hypervisor dla 360/65 , a później użył go dla obsługi DIAG CP-67.


Instrukcja Diagnose ('83'x - brak mnemonika) to uprzywilejowana instrukcja pierwotnie przeznaczona przez IBM do wykonywania „wbudowanych funkcji diagnostycznych lub innych funkcji zależnych od modelu”. IBM zmienił przeznaczenie DIAG na „komunikację między maszyną wirtualną a CP”. Instrukcja zawiera dwa czterobitowe numery rejestrów, zwane Rx i Ry, które mogą „zawierać adresy przechowywania operandów lub kody powrotu przekazywane do interfejsu DIAGNOSE” oraz dwubajtowy kod, którego CP używa do określenia, jaką funkcję DIAGNOSE wykonać. " Poniżej wymieniono kilka dostępnych funkcji diagnostycznych.

Kod szesnastkowy Funkcjonować
0000 Przechowuj rozszerzony kod identyfikacyjny
0004 Sprawdź rzeczywistą pamięć masową
0008 Funkcja konsoli wirtualnej — Wykonaj polecenie CP
0018 Standardowe wejścia/wyjścia DASD
0020 Ogólne we/wy — wykonaj dowolny prawidłowy łańcuch CCW na taśmie lub urządzeniu dyskowym
003C Zaktualizuj katalog VM/370
0058 Interfejs konsoli wirtualnej 3270 — wykonywanie pełnoekranowych operacji we/wy na terminalu IBM 3270
0060 Określ rozmiar magazynu maszyny wirtualnej
0068 Narzędzie komunikacji z maszyną wirtualną ( VMCF )

CMS wykorzystanie DIAGNOSTYKI

Kiedyś CMS mógł działać na gołej maszynie jako prawdziwy system operacyjny (chociaż taka konfiguracja byłaby nietypowa). Teraz działa tylko jako system-gość pod maszyną wirtualną. Dzieje się tak, ponieważ CMS opiera się na hiperwizora do VM-CP, aby wykonywać operacje na systemie plików i żądać innych usług VM. Ten parawirtualizacji :

  • Zapewnia szybką ścieżkę do VM-CP, aby uniknąć kosztów związanych z pełną symulacją.
  • Po raz pierwszy został opracowany jako ulepszenie wydajności CP/CMS w wersji 2.1, ważny kamień milowy w wydajności CP.
  • Wykorzystuje niezwirtualizowaną, zależną od modelu instrukcję maszynową jako sygnał między CMS a CP: DIAG (diagnostyka).

Minidyski

Uruchomienie CMS po zalogowaniu się użytkownika MAINT (administratora systemu).

CMS i inne systemy operacyjne często mają wymagania DASD znacznie mniejsze niż rozmiary rzeczywistych woluminów. Z tego powodu CP umożliwia instalacji zdefiniowanie dysków wirtualnych o dowolnej wielkości do pojemności urządzenia. W przypadku woluminów CKD minidysk musi być zdefiniowany w pełnych cylindrach. Minidysk ma te same atrybuty, co bazowy dysk rzeczywisty, z tą różnicą, że jest zwykle mniejszy, a początek każdego minidysku jest odwzorowany na cylinder lub blok 0. Dostęp do minidysku można uzyskać za pomocą tych samych programów kanałów, co w przypadku dysku rzeczywistego .

Minidysk, który został zainicjowany z systemem plików CMS, jest określany jako minidysk CMS, chociaż CMS nie jest jedynym systemem, który może z nich korzystać.

Powszechną praktyką jest definiowanie minidysków pełnych woluminów do użytku przez systemy operacyjne gościa, takie jak z/OS, zamiast używania funkcji DEDICATE do przypisywania woluminu do określonej maszyny wirtualnej. Ponadto „łącza pełnego pakietu” są często definiowane dla każdego DASD w systemie i należą do identyfikatora użytkownika MAINT. Służą one do tworzenia kopii zapasowych systemu za pomocą programu DASD Dump/Restore, w którym cała zawartość DASD jest dokładnie zapisywana na taśmie (lub innym DASD).

Edytor CMS na VM/370, edycja pliku źródłowego programu COBOL.

Współdzielony system plików

VM/SP Release 6 wprowadził Shared File System, który znacznie poprawił możliwości przechowywania plików CMS. System plików minidisk CMS w ogóle nie obsługuje katalogów (folderów), jednak SFS tak. SFS wprowadza również bardziej szczegółowe zabezpieczenia. W przypadku minidysków CMS system można skonfigurować tak, aby zezwalał lub odmawiał użytkownikom dostępu tylko do odczytu lub dostępu do odczytu i zapisu do dysku, ale pojedyncze pliki nie mogą mieć takich samych zabezpieczeń. SFS łagodzi to i znacznie poprawia wydajność.

Usługa SFS jest dostarczana przez usługi maszyn wirtualnych. W nowoczesnym systemie VM zwykle wymagane są trzy: VMSERVR, „maszyna do odzyskiwania”, która w rzeczywistości nie obsługuje żadnych plików; VMSERVS, serwer puli plików VMSYS; oraz VMSERVU, serwer puli plików VMSYSU (użytkowników). Maszyny serwera puli plików posiadają kilka minidysków, zwykle w tym dysk A CMS (adres urządzenia wirtualnego 191, zawierający pliki konfiguracyjne puli plików), dysk kontrolny, dysk dziennika i dowolną liczbę dysków z danymi, które faktycznie przechowują pliki użytkownika.

Wywołanie kompilatora System/360 COBOL na VM/370 CMS, a następnie załadowanie i uruchomienie programu.

W przypadku nowoczesnych wersji maszyn wirtualnych większość systemu można zainstalować na SFS, a kilka pozostałych minidysków to te, które są absolutnie niezbędne do uruchomienia systemu, oraz te, które są własnością serwerów puli plików.

Przykład systemu operacyjnego gościa innego niż CMS działającego pod VM/370: DOS/VS wersja 34. System DOS/VS prosi teraz operatora o wprowadzenie nazwy nadzorcy, aby kontynuować ładowanie.

Jeśli konto użytkownika jest skonfigurowane do używania tylko SFS (i nie posiada żadnych minidysków), dysk A użytkownika będzie miał postać PULA PLIKÓW:ID UŻYTKOWNIKA. a wszelkie kolejne katalogi utworzone przez użytkownika będą miały postać FILEPOOL:USERID.DIR1.DIR2.DIR3 , gdzie równoważna ścieżka pliku systemu UNIX to /dir1/dir2/dir3 . Katalogi SFS mogą mieć znacznie bardziej szczegółową kontrolę dostępu w porównaniu z minidyskami (które, jak wspomniano powyżej, często mogą mieć tylko hasło odczytu, hasło zapisu i hasło wielokrotnego zapisu). Katalogi SFS rozwiązują również problemy, które mogą wystąpić, gdy dwóch użytkowników zapisuje jednocześnie na tym samym minidysku CMS, co może spowodować uszkodzenie dysku (ponieważ maszyna wirtualna CMS wykonująca zapisy może nie wiedzieć, że inna instancja CMS również zapisuje na minidysku) .

Serwery puli plików obsługują również blisko spokrewniony system plików: Byte File System. BFS służy do przechowywania plików w systemie plików w stylu UNIX. Jego głównym zastosowaniem jest środowisko VM OpenExtensions POSIX dla CMS. Same maszyny wirtualne użytkowników CMS komunikują się z maszynami wirtualnymi serwera SFS poprzez mechanizm IUCV.

Historia

Wczesna historia VM jest opisana w artykułach CP/CMS i Historia CP/CMS . VM/370 jest ponowną implementacją CP/CMS i został udostępniony w 1972 roku jako część ogłoszenia IBM System/370 Advanced Function (które dodało pamięci wirtualnej i systemy operacyjne do serii System/370 ). Wczesne wersje VM do VM / 370 Release 6 były kontynuowane jako open source do 1981 r., A dziś są uważane za należące do domeny publicznej . Ta polityka zakończyła się w 1977 roku wraz z płatnymi aktualizacjami VM/SE i VM/BSE, aw 1980 roku z VM/System Product (VM/SP). Jednak IBM przez wiele lat nadal dostarczał aktualizacje w formie źródłowej dla istniejącego kodu, chociaż aktualizacje do wszystkich oprócz bezpłatnej bazy wymagały licencji. Podobnie jak w przypadku CP-67, uprzywilejowane instrukcje w maszynie wirtualnej powodują przerwanie programu, a CP symulował zachowanie uprzywilejowanej instrukcji.

OS/VS1 począwszy od VM/370.

VM pozostała ważną platformą w IBM, używaną do tworzenia systemów operacyjnych i użytkowania z podziałem czasu; ale dla klientów pozostał „innym systemem operacyjnym” IBM. Rodziny OS i DOS pozostały strategicznymi produktami IBM, a klientów nie zachęcano do uruchamiania maszyn wirtualnych. Ci, którzy to zrobili, nawiązali bliskie relacje robocze, kontynuując model wsparcia społeczności wczesnych użytkowników CP/CMS. W międzyczasie system walczył z wewnętrznymi sporami politycznymi w IBM o to, jakie zasoby powinny być dostępne dla projektu, w porównaniu z innymi wysiłkami IBM. Podstawowy problem z systemem został zauważony na poziomie sprzedaży terenowej IBM: VM/CMS wyraźnie zmniejszył ilość sprzętu potrzebnego do obsługi określonej liczby użytkowników korzystających z podziału czasu. W końcu IBM zajmował się sprzedażą systemów komputerowych.

Melinda Varian przedstawia ten fascynujący cytat, ilustrujący nieoczekiwany sukces VM:

Prognozy marketingowe dla VM/370 przewidywały, że nie więcej niż jeden 168 kiedykolwiek uruchomi VM przez cały okres użytkowania produktu. W rzeczywistości pierwsze 168 dostarczonych klientowi działało tylko z CP i CMS. Dziesięć lat później dziesięć procent dużych procesorów wysyłanych z Poughkeepsie miało obsługiwać VM, podobnie jak bardzo znaczna część maszyn średniej klasy, które zostały zbudowane w Endicott. Zanim minie piętnaście lat, będzie więcej licencji VM niż licencji MVS.

Używanie DASD Dump/Restore (DDR) do tworzenia kopii zapasowych systemu VM/370.

Wersja PC DOS , która obsługuje CMS na XT/370 (a później na AT/370) nosi nazwę VM/PC. VM/PC 1.1 był oparty na VM/SP w wersji 3. Kiedy IBM wprowadził karty procesorowe P/370 i P/390, komputer PC mógł teraz obsługiwać pełne systemy VM, w tym VM/370, VM/SP, VM/XA i VM/ESA (karty te były w pełni kompatybilne z komputerami mainframe S/370 i S/390 i mogły obsługiwać dowolny system operacyjny S/370 z epoki 31-bitowej, np. MVS/ESA, VSE/ESA).

Oprócz podstawowych wersji VM/SP IBM wprowadził również VM/SP HPO (opcja o wysokiej wydajności). Ten dodatek (który jest instalowany w podstawowej wersji VM/SP) poprawił kilka kluczowych funkcji systemu, w tym umożliwił użycie ponad 16 MB pamięci (RAM) w obsługiwanych modelach (takich jak IBM 4381). Po zainstalowaniu VM/SP HPO nowy limit wynosił 64 MB; jednak pojedynczy użytkownik (lub maszyna wirtualna) nie mógł wykorzystać więcej niż 16 MB. Ulepszono również funkcje systemu plików buforowych, umożliwiając utworzenie 9900 zbiorów buforowych na użytkownika, zamiast 9900 dla całego systemu. Udoskonalono również architekturę systemu plików buforowych, każdy plik buforowy miał teraz powiązany z nim unikalny identyfikator użytkownika, a bloki kontrolne czytnika plików były teraz przechowywane w pamięci wirtualnej. System można również skonfigurować tak, aby odmawiał niektórym użytkownikom dostępu do obiektu wektora (za pomocą wpisów w katalogu użytkowników).

Wersje VM od VM/SP Release 1 obsługiwane systemy wieloprocesorowe. Wersje VM System/370 (takie jak VM/SP i VM/SP HPO) obsługiwały maksymalnie dwa procesory, przy czym system działał w trybie UP (jednoprocesorowym), trybie MP (wieloprocesorowym) lub trybie AP (procesor dołączony) . Tryb AP jest taki sam jak tryb MP, z tą różnicą, że drugi procesor nie ma możliwości wejścia/wyjścia. Wersje System/370-XA VM (takie jak VM/XA) obsługiwały więcej. Wersje System/390 (takie jak VM/ESA) prawie całkowicie zniosły ten limit, a niektóre nowoczesne systemy z/VM mogą mieć nawet 80 procesorów. Limit na maszynę wirtualną dla zdefiniowanych procesorów wynosi 64.

Gdy IBM wprowadził rozszerzoną architekturę System/370 w modelu 3081 , klienci stanęli przed koniecznością uruchomienia produkcyjnego systemu MVS/370 podczas testowania MVS/XA na tej samej maszynie. Rozwiązaniem IBM był VM/XA Migration Aid, który wykorzystywał nową instrukcję Start Interpretive Execution (SIE) do uruchamiania maszyny wirtualnej. SIE automatycznie obsługiwał niektóre uprzywilejowane instrukcje i zwracał się do CP w przypadkach, z którymi nie mógł sobie poradzić. Menedżer zasobów procesora / systemu (PR / SM) późniejszego 3090 również korzystał z SIE. Było kilka produktów VM/XA, zanim ostatecznie zostały wyparte przez VM/ESA i z/VM.

Oprócz sieci RSCS IBM zapewnił użytkownikom również sieć VTAM . ACF/VTAM dla VM był w pełni kompatybilny z ACF/VTAM na MVS i VSE. Podobnie jak RSCS, VTAM na maszynie wirtualnej działał pod wyspecjalizowanym systemem operacyjnym GCS. Jednak maszyna wirtualna obsługiwała również sieci TCP/IP. Pod koniec lat 80. IBM stworzył stos TCP/IP dla VM/SP i VM/XA. Stos obsługiwał sieci IPv4 i różne systemy interfejsów sieciowych (takie jak łącza między kanałami między komputerami mainframe lub wyspecjalizowany komputer IBM RT, który przekazywałby ruch do sieci Token Ring lub Ethernet ) . Stos zapewniał wsparcie dla Telnet z prostych emulatorów terminala w trybie liniowym lub emulatorów zgodnych z VT100 lub odpowiednich emulatorów terminala IBM 3270. Stos zapewniał również serwer FTP. IBM wyprodukował również opcjonalny serwer NFS dla VM; wczesne wersje były raczej prymitywne, ale współczesne wersje są znacznie bardziej zaawansowane.

Istniała również czwarta opcja sieciowa, znana jako VM/Pass-Through Facility (lub częściej nazywana PVM). PVM, podobnie jak VTAM, pozwalał na połączenia ze zdalnymi systemami VM/CMS, a także innymi systemami IBM. Jeśli dwa węzły VM/CMS były połączone ze sobą za pośrednictwem łącza kanał-kanał lub łącza bisync (prawdopodobnie przy użyciu modemu telefonicznego lub linii dzierżawionej), użytkownik mógł zdalnie połączyć się z dowolnym systemem, wprowadzając „DIAL PVM” na ekranie logowania VM , a następnie wpisując nazwę węzła systemowego (lub wybierając go z listy dostępnych węzłów). Alternatywnie użytkownik korzystający z CMS może skorzystać z programu PASSTHRU, który został zainstalowany wraz z PVM, umożliwiając szybki dostęp do zdalnych systemów bez konieczności wylogowywania się z sesji użytkownika. PVM obsługiwał również dostęp do systemów innych niż VM, wykorzystując technikę emulacji 3x74. Późniejsze wersje PVM zawierały również komponent, który mógł akceptować połączenia z a SNA .

VM był także podstawą systemu operacyjnego BITNET , ponieważ system RSCS dostępny dla VM zapewniał prostą sieć, łatwą do wdrożenia i nieco niezawodną. Witryny maszyn wirtualnych były ze sobą połączone za pomocą maszyny wirtualnej RSCS w każdym systemie maszyn wirtualnych komunikujących się ze sobą, a użytkownicy mogli wysyłać i odbierać wiadomości, pliki i zadania wsadowe za pośrednictwem RSCS. Polecenie „NOTE” wykorzystywało XEDIT do wyświetlenia okna dialogowego umożliwiającego utworzenie wiadomości e-mail, z której użytkownik może ją wysłać. Jeśli użytkownik podał adres w postaci user w node , plik e-mail zostałby dostarczony do RSCS, który następnie dostarczyłby go użytkownikowi docelowemu w systemie docelowym. Jeśli witryna ma zainstalowany protokół TCP/IP, RSCS może współpracować z maszyną usługową SMTP w celu dostarczania notatek (e-maili) do systemów zdalnych, jak również ich odbierania. Jeśli użytkownik określił użytkownika pod adresem jakaś.nazwa.hosta , program NOTE dostarczy wiadomość e-mail do maszyny obsługującej SMTP, która następnie przekieruje ją do miejsca docelowego w Internecie.

Rola maszyny wirtualnej zmieniła się w IBM, gdy ewolucja sprzętu doprowadziła do znaczących zmian w architekturze procesora. Kompatybilność wsteczna pozostała kamieniem węgielnym rodziny komputerów mainframe IBM , która nadal korzysta z podstawowego zestawu instrukcji wprowadzonego w oryginalnym System / 360 ; ale potrzeba wydajnego wykorzystania 64-bitowej serii zSeries sprawiła, że ​​podejście VM stało się znacznie bardziej atrakcyjne. VM był również używany w centrach danych konwertujących z DOS/VSE na MVS i jest przydatny podczas uruchamiania systemów mainframe AIX i Linux , platformy, które miały zyskiwać na znaczeniu. Obecna z/VM wreszcie zyskała uznanie w IBM, na które użytkownicy maszyn wirtualnych od dawna uważali, że na to zasługuje. W niektórych ośrodkach z/VM w jednym systemie działają tysiące użytkowników maszyn wirtualnych jednocześnie. z/VM został wydany po raz pierwszy w październiku 2000 roku i nadal jest aktywnie używany i rozwijany.

IBM i inne firmy zaoferowały wiele aplikacji i narzędzi działających pod maszyną wirtualną. Przykłady obejmują RAMIS , FOCUS , SPSS , NOMAD , DB2 , REXX , RACF i OfficeVision . Obecna oferta maszyn wirtualnych obejmuje całą gamę aplikacji mainframe, w tym serwerów HTTP , menedżerów baz danych, narzędzi analitycznych, pakietów inżynierskich i systemów finansowych.

Komendy KP

Począwszy od wersji 6, program sterujący VM/370 zawiera szereg poleceń dla zwykłych użytkowników, związanych z definiowaniem i kontrolowaniem maszyny wirtualnej użytkownika. Części polecenia pisane małymi literami są opcjonalne

Komenda Opis
#CP Pozwala użytkownikowi wydać polecenie CP ze środowiska poleceń lub dowolnej innej maszyny wirtualnej po naciśnięciu klawisza break (domyślnie PA1)
ZATRZYMAJ Ustawia zatrzymanie adresu w celu zatrzymania maszyny wirtualnej w określonej instrukcji
UWAGA Powoduje przerwanie uwagi , umożliwiając CP przejęcie kontroli w środowisku dowodzenia
Zaczynać Kontynuuj lub wznawiaj wykonywanie maszyny wirtualnej użytkownika, opcjonalnie pod określonym adresem
Zmiana Zmień atrybuty zbioru buforowego lub zbiorów. Można na przykład zmienić klasę wyjściową lub nazwę pliku albo ustawić atrybuty specyficzne dla drukarki
Zamknąć Zamyka otwarty plik drukarki, dziurkacza, czytnika lub konsoli i zwalnia go do systemu buforowania
PARA Podłącz wirtualny adapter kanał-kanał (CTCA) do innego. Służy również do podłączania symulowanych kart QDIO Ethernet do przełącznika wirtualnego.
CP Wykonaj polecenie CP w środowisku CMS
Definiować Zmień bieżącą konfigurację maszyny wirtualnej. Dodaj urządzenia wirtualne lub zmień dostępny rozmiar pamięci
Odłączyć Usuń urządzenie wirtualne lub kanał z bieżącej konfiguracji
WYBIERZ Połącz terminal na ekranie logowania z symulowanym terminalem 3270 lub maszyną do pisania na wielodostępowej maszynie wirtualnej, na której jesteś zalogowany
DISConn Odłącz terminal, pozwalając maszynie wirtualnej na dalsze działanie
Wyświetlacz Wyświetl pamięć maszyny wirtualnej lub rejestry (wirtualnego) sprzętu
WYSYPISKO Wydrukuj zrzut migawki bieżącej maszyny wirtualnej na wirtualnej drukarce w buforze
ECHO Ustaw maszynę wirtualną na echo wpisanych wierszy
Zewnętrzny Spowoduj zewnętrzne przerwanie dla maszyny wirtualnej
Wskazać Wyświetl bieżące obciążenie systemu lub wykorzystanie zasobów
Ipl IPL (rozruch) systemu operacyjnego na maszynie wirtualnej
POŁĄCZYĆ Podłącz urządzenie z innej maszyny wirtualnej, jeśli definicja tej maszyny umożliwia udostępnianie
ŁADUJVFCB Określ bufor kontroli formularzy (FCB) dla drukarki wirtualnej

WYLOGUJ WYLOGUJ
Zakończ wykonywanie bieżącej maszyny wirtualnej i odłącz się od systemu

Zaloguj Zaloguj się
Zaloguj się do systemu

Wiadomość MSG
Wyślij jednowierszową wiadomość do operatora systemu lub innego użytkownika
Nie gotowy Powoduje, że urządzenie wirtualne wydaje się niegotowe
Zamówienie Zmień kolejność zamkniętych zbiorów buforowych według identyfikatora lub klasy
Oczyszczać Usuń zamknięte zbiory bufora dla urządzenia według klasy, identyfikatora m lub WSZYSTKICH
Zapytanie Wyświetl informacje o stanie maszyny wirtualnej, wiadomość dnia lub liczbę lub nazwy zalogowanych użytkowników
GOTOWY Spowoduj przerwanie pracy urządzenia dla urządzenia
Wniosek Spowoduj przerwanie na konsoli wirtualnej
RESETOWANIE Wyczyść wszystkie oczekujące przerwania dla urządzenia
Przewijanie do tyłu Przewiń prawdziwą (nie wirtualną) jednostkę taśmy magnetycznej
USTAWIĆ Ustaw różne atrybuty maszyny wirtualnej, w tym komunikaty lub klawisze funkcyjne terminala
Spać Umieść maszynę wirtualną w stanie uśpienia na czas nieokreślony lub na określony czas
SMS g Wyślij specjalną wiadomość w jednym wierszu do innej maszyny wirtualnej (zwykle używana do kontrolowania działania maszyny wirtualnej; często używana z RSCS)
Szpula Ustaw opcje buforowanego urządzenia wirtualnego (drukarki, czytnika lub dziurkacza)
Sklep Zmień zawartość rejestrów lub pamięci swojej maszyny wirtualnej
System Zresetuj lub uruchom ponownie maszynę wirtualną lub wyczyść pamięć
Etykietka Ustaw znacznik skojarzony z urządzeniem buforowym lub zbiorem. Tag jest zwykle używany przez podsystem komunikacji Remote Spooling Communications Subystem (RSCS) maszyny wirtualnej do identyfikowania miejsca docelowego pliku
Terminal Ustaw charakterystykę swojego terminala
Namierzać Rozpocznij lub zatrzymaj śledzenie określonych działań maszyny wirtualnej
Przenosić Przenieś zbiór buforowy do lub od innego użytkownika
VMDUMP Zrzuć swoją maszynę wirtualną w formacie możliwym do odczytania przez program Interactive Problem Control System (IPCS).

Rozszerzenia OpenEdition

Począwszy od VM/ESA w wersji 2, IBM wprowadził płatną opcjonalną funkcję OpenEdition for VM/ESA Shell and Utilities Feature , która zapewnia zgodność z POSIX dla CMS. Cechą wyróżniającą była powłoka UNIX dla CMS. Kompilator C dla tego środowiska UNIX jest dostarczany przez C/370 lub C for VM/ESA. Ani system plików CMS, ani standardowy współdzielony system plików VM nie obsługują plików i ścieżek w stylu UNIX; zamiast tego używany jest bajtowy system plików. Po utworzeniu zakresu BFS w puli plików SFS użytkownik może go zamontować za pomocą OPENVM MOUNT /../VMBFS:nazwaserweraplików:nazwapuliplików/ścieżka/do/montowania/punkt . Użytkownik musi również zamontować główny system plików, używając OPENVM MOUNT /../VMBFS:VMSYS:ROOT/ / , powłokę można następnie uruchomić za pomocą OPENVM SHELL . W przeciwieństwie do zwykłego SFS, dostęp do systemów plików BFS jest kontrolowany przez uprawnienia POSIX (za pomocą chmod i chown ).

Począwszy od z/VM w wersji 3, IBM zintegrował OpenEdition z z/VM i zmienił jego nazwę na OpenExtensions. OpenEdition i OpenExtensions zapewniają CMS zgodność z POSIX.2. Programy skompilowane do działania w powłoce OpenExtensions są przechowywane w tym samym formacie, co standardowe moduły wykonywalne CMS. Edytory wizualne, takie jak vi , są niedostępne, ponieważ terminale 3270 nie obsługują. Użytkownicy mogą używać ed lub XEDIT zamiast vi.

maskotka VM

We wczesnych latach 80. grupa VM w SHARE (grupa użytkowników IBM) poszukiwała maskotki lub logo do przyjęcia przez społeczność. Było to po części odpowiedzią na to, że użytkownicy IBM MVS wybrali indyka jako maskotkę (wybraną, zgodnie z legendą, przez MVS Performance Group we wczesnych latach MVS, kiedy jego wydajność była drażliwym tematem). W 1983 roku pluszowy miś stał się de facto VM maskotka na SHARE 60, kiedy naklejki pluszowego misia zostały przymocowane do plakietek z imionami „przytulniejszych oldtimerów”, aby oznaczyć je dla nowicjuszy jako „przyjazne, jeśli się do nich zbliży”. Niedźwiedzie były hitem i wkrótce pojawiły się szeroko. Niedźwiedzie zostały przyznane induktorom „Zakonu Rycerzy VM”, osobom, które wniosły „pożyteczny wkład” w społeczność.

Krytyka

Podczas gdy VM był stosunkowo lekki (w porównaniu do swoich odpowiedników, takich jak MVS), VM był nieco niestabilny na początku. Utrzymanie systemu VM/370 przez ponad tydzień uznano za nie lada wyczyn. Użytkownicy skrytykowali również system plików CMS, zwracając uwagę, że inne systemy operacyjne w połowie lat 80. miały katalogi, dowiązania symboliczne i inne kluczowe funkcje; CMS nie miał żadnego z nich aż do 1988 roku, kiedy ukazała się wersja 6 VM/SP, która wprowadziła współdzielony system plików i złagodziła te problemy.

Niektórzy użytkownicy zauważyli również, że VM OpenEdition było nieco „niepotrzebne”.

Notatki

Zobacz też

Linki zewnętrzne

Źródła maszyn wirtualnych


  • Bob DuCharme, Podręcznik systemów operacyjnych, część 5: VM/CMS – dość szczegółowy przewodnik użytkownika po VM/CMS

  • EC Hendricks i TC Hartmann, „Ewolucja podsystemu maszyny wirtualnej”, IBM Systems Journal , tom. 18, s. 111–142 (1979) – projekt i wdrożenie RSCS

  • IBM Corporation, IBM Virtual Machine Facility/370 Wprowadzenie , GC20-1800, (1972) – oryginalna instrukcja

Podstawowe źródła CP/CMS

Dodatkowe źródła CP/CMS


  • RJ Adair, RU Bayles, LW Comeau i RJ Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320‐2007 (maj 1966) — przełomowy artykuł opisujący implementację koncepcji maszyny wirtualnej, z opisami dostosowanego CSC S / 360-40 i projektu CP-40

  • International Business Machines Corporation, CP-67/CMS , Program 360D-05.2.005, IBM Program Information Department (czerwiec 1969) — podręcznik IBM

  • RA Meyer i LH Seawright, „System podziału czasu maszyny wirtualnej”, IBM Systems Journal, tom. 9, nr 3, s. 199–218 (wrzesień 1970) ― opisuje system CP-67/CMS, nakreślając funkcje i zastosowania
  • RP Parmelee, TI Peterson, CC Tillman i DJ Hatfield, „Koncepcje pamięci wirtualnej i maszyn wirtualnych”, IBM Systems Journal, tom. 11, nr 2 (czerwiec 1972)

Źródła CP/CMS w tle

  • FJ Corbató i in., Kompatybilny system podziału czasu, Przewodnik programisty, MIT Press, 1963
  • FJ Corbató, M. Merwin-Daggett i RC Daley, "Eksperymentalny system podziału czasu", Proc. Spring Joint Computer Conference (AFIPS) 21, s. 335–44 (1962) — opis CTSS
  • FJ Corbató i VA Vyssotsky, „Wprowadzenie i przegląd systemu MULTICS”, Proc. Jesienna wspólna konferencja komputerowa (AFIPS) 27, s. 185–96 (1965)
  • PJ Denning, „Pamięć wirtualna”, Computing Surveys , tom. 2, s. 153–89 (1970)

  • JB Dennis, „Segmentacja i projektowanie wieloprogramowych systemów komputerowych”, JACM tom. 12, s. 589–602 (1965) ― wymagania dotyczące pamięci wirtualnej dla Project MAC, przeznaczonej dla GE 645
  • CAR Hoare i RH Perrott, red., Techniki systemów operacyjnych , Academic Press, Inc., Nowy Jork (1972)

  • T. Kilburn, DBG Edwards, MJ Lanigan i FH Sumner, „One-Level Storage System”, IRE Trans. Elektron. Komputery EC-11, s. 223–35 (1962) ― Manchester/Ferranti Atlas

  • RA Nelson, „Mapping Devices and the M44 Data Processing System”, Research Report RC 1303 , IBM Thomas J. Watson Research Center (1964) — o IBM M44/44X
  • RP Parmelee, TI Peterson, CC Tillman i DJ Hatfield, „Koncepcje pamięci wirtualnej i maszyn wirtualnych”, IBM Systems Journal , tom. 11, s. 99–130 (1972)

Dodatkowe zasoby CP/CMS on-line

Inne zasoby

pochodzenie >> silny wpływ > pewien wpływ/pierwszeństwo
  CTSS  
> IBM M44/44X
>> CP-40/CMS CP[-67]/CMS   VM/370 → Wersje VM/SE → Wersje VM/SP → Wersje VM/XA → VM/ESA z/VM
VP/CSS
> TSS/360
> TSO dla MVT → dla OS/VS2 → dla MVS → ... → dla z/OS
>> MULTICS i większość innych platform współdzielenia czasu