Historia systemów operacyjnych
Komputerowe systemy operacyjne (ang. operating systems, skrót OSes) dostarczają zestawu funkcji wymaganych i używanych przez większość aplikacji uruchamianych na komputerze, a także tych pozwalających kontrolować i synchronizować pracę sprzętu komputerowego. Pierwsze komputery nie były wyposażone w systemy operacyjne, przez co każdy program uruchamiany na nich potrzebował pełnej specyfikacji sprzętu, żeby poprawnie pracować i wykonywać podstawowe zadania. Dodatkowo każdy taki program musiał być wyposażony we własne sterowniki do urządzeń peryferyjnych, takich jak drukarki, czy czytniki kart perforowanych. Wzrost złożoności komputerów oraz programów pracujących na nich sprawił, że systemy operacyjne stały się niezbędne do codziennego użytku.
Tło historyczne
[edytuj | edytuj kod]Pierwsze komputery były mainframe’ami bez jakiegokolwiek systemu operacyjnego. Użytkownicy rezerwowali całą maszynę na pewien okres i przychodzili z gotowym programem i danymi wejściowymi, zwykle zapisanymi na karcie perforowanej, taśmie magnetycznej lub taśmie papierowej. Następnie program był ładowany do pamięci komputera i pracował do momentu zakończenia lub do pojawienia się błędu. Programy mogły być debugowane w panelu sterowania poprzez przełączniki i kontrolki.
Początkowo programista musiał zapisać program w kodzie maszynowym. Później powstały języki symboliczne, asemblery oraz kompilatory, które tłumaczyły kod źródłowy programu na kod maszynowy komputera. Późniejsze maszyny były tworzone wraz z bibliotekami, które zawierały ułatwiający pracę gotowy kod zapisany na kartach perforowanych lub taśmach magnetycznych. Takie biblioteki były następnie łączone z programem użytkownika i pomagały w typowych operacjach, np. wejścia i wyjścia. Z nich wywodzą się nowoczesne systemy operacyjne.
Wraz ze wzrostem mocy obliczeniowej komputerów czas pracy poszczególnych programów malał, przez co stosunek czasu, w którym jeden użytkownik kończył pracę i przekazywał sprzęt następnemu, do czasu pracy programów rósł bardzo szybko. Rozliczanie pracy użytkowników na maszynach ewoluowało z ręcznego sprawdzania zegara do automatycznego logowania przez sam komputer. Kolejki zmieniły się z dosłownej kolejki ludzi czekających przy drzwiach na stos nośników leżących na stole z oczekującymi zadaniami albo stos kart perforowanych leżących na czytniku, z którego komputery same potrafiły wybierać następne karty. Wyznaczeni operatorzy przejęli obowiązki programistów uruchamiania programów na komputerze, a także utrzymywania maszyny w dobrym stanie technicznym. Gdy komercyjne centra obliczeniowe stanęły przed problemami wynikającymi z utraty danych przez fałszowanie lub błędy obliczeniowe, dostawcy sprzętu zostali zmuszeni do rozwinięcia bibliotek uruchomieniowych w celu zapobiegania nadużywania zasobów. Automatyczne monitorowanie nie było już potrzebne wyłącznie do rejestrowania czasu użycia procesora, ale także do liczenia wydrukowanych stron, kart perforowanych, odczytanych kart, używanej pamięci dyskowej oraz interwencji operatora przy zadaniach takich jak zmiana taśmy magnetycznej. Następnie dodane zostały funkcje poprawiające bezpieczeństwo, na przykład zapisywanie, który program odczytywał jakie pliki, czy ograniczenie dostępu do pliku z listą płac.
Wszystkie te funkcje łącznie tworzyły coraz bardziej kompletny system operacyjny. Biblioteki uruchomieniowe zostały połączone w jeden program, który uruchamiał się przed pierwszym programem klienta, kontrolował pracę programów klientów, zapisywał zużycie zasobów systemowych, a po skończonej pracy natychmiast uruchamiał następny program w kolejce. Takie programy działające w tle były zwykle nazywane monitorami lub programami monitorującymi, zanim powstał termin system operacyjny.
Podstawowy program oferujący zarządzanie sprzętem, harmonogramowanie programów i monitorowanie zasobów może wydawać się odległym przodkiem systemów operacyjnych zorientowanych na użytkownika z ery komputerów osobistych. W pewnym momencie nastąpiła jednak zmiana w znaczeniu terminu system operacyjny. Coraz więcej programów, które kiedyś były opcjonalne, stało się standardem w każdym systemie operacyjnym. Doprowadziło to do postrzegania systemu operacyjnego jako kompletnego systemu dla użytkownika, zawierającego zintegrowany graficzny interfejs, podstawowe narzędzia oraz aplikacje takie jak edytory tekstowe, menedżery plików, czy narzędzia konfiguracyjne.
Prawdziwym potomkiem wczesnych systemów operacyjnych jest to, co dzisiaj nazywamy „jądrem”.
Mainframe’y
[edytuj | edytuj kod]Pierwszym systemem operacyjnym był Director Tape pracujący na komputerze Whirlwind. System ten powstał w 1954 roku, a został zaprezentowany przez Douga Rossa 8 maja 1955 roku[1]. W 1955 roku General Motors stworzyło system General Motors OS dla komputera IBM 704. W 1956 General Motors współpracując z North American Aviation stworzyło pierwszy system operacyjny, który był użyty w praktyce do prawdziwej pracy, GM-NAA I/0[2], znów dla maszyny IBM 704.[3]
Wszystkie powyższe systemy były uzupełnieniem bibliotek uruchomieniowych. Ich podstawowym zadaniem było zainicjalizowanie programu użytkownika, uruchomienie go, monitorowanie programu i zasobów, zwolnienie zasobów po zakończeniu pracy programu i automatyczne uruchomienie następnego programu[4]. Dzięki nim zminimalizowano czas bezczynności komputerów, zmniejszono ilość potrzebnego personelu, a także uproszczono sposób uruchamiania programów.
Wczesne systemy operacyjne były bardzo zróżnicowane. Każdy dostawca i każdy klient tworzyli jeden lub więcej systemów operacyjnych odnoszących się do konkretnego mainframe’a. Każdy system operacyjny, nawet od tego samego dostawcy, mógł mieć zupełnie różne modele poleceń, procedur operacyjnych i pomocy przy takich czynnościach jak debugowanie. Zwykle za każdym razem gdy dostawca tworzył nową maszynę, powstawał nowy system operacyjny, a większość aplikacji musiała być ręcznie poprawiona, zrekompilowana oraz ponownie testowana.
Systemy dla komputerów IBMu
[edytuj | edytuj kod]Sytuacja ta trwała do 1960 roku, gdy IBM, który był już wtedy wiodącym dostawcą sprzętu, przerwał pracę nad istniejącymi systemami i skoncentrował wszystkie swoje wysiłki w rozwijaniu maszyn z serii System/360, z których wszystkie używały takich samych poleceń wejścia/wyjścia oraz architektury. IBM miał na celu stworzenie jednolitego systemu operacyjnego dla nowego sprzętu, OS/360. Problemy napotykane podczas rozwoju OS/360 są legendarne. Zostały opisane przez Freda Brooksa w książce The Mythical Man-Month, która stała się klasykiem inżynierii oprogramowania. Ze względu na różnice w wydajności sprzętu i opóźnienia w rozwoju oprogramowania, wprowadzona została cała rodzina systemów operacyjnych, zamiast pojedynczego OS/360.[5]
Ostatecznie IBM wypuścił serię tymczasowych rozwiązań przed wydaniem dwóch dłużej działających systemów operacyjnych:
- OS/360 dla systemów średniej wielkości oraz dużych. Dostępny był w trzech generacjach:
- PCP dla wczesnych użytkowników oraz dla tych, którzy nie mieli zasobów na wprowadzenie wieloprogramowania.
- MFG dla średniej wielkości systemów, zastąpiony przez MFT-II w OS/360 w wydaniu 15/16. Miał jednego następcę, OS/VS1, nad którym pracę przerwano w latach 80.
- MVT dla dużych systemów. Był bardzo podobny do PCP i MFT (większość programów mogła być przenoszona pomiędzy tymi systemami bez rekompilowania), ale miał bardziej zaawansowane zarządzanie pamięci oraz współdzielenie czasu. MVT miał wielu następców, w tym aktualny z/OS.
- DOS/360 dla małych maszyn z serii System/360. Miał wielu następników, w tym aktualny z/VSE. Znacząco różnił się od OS/360.
IBM zachowało pełną kompatybilność wstecz, więc programy napisane w latach 60. wciąż można uruchomić na systemie z/VSE (jeśli były napisane na DOS/360) lub z/OS (jeśli były napisane na MFT lub MVT) nie wprowadzając żadnych zmian.
Systemy operacyjne innych mainframe’ów
[edytuj | edytuj kod]Control Data Corporation w latach 60. stworzyło system operacyjny SCOPE[a], który miał zaimplementowane przetwarzanie wsadowe, a później system MACE ze współdzieleniem czasu, który był podstawą dla systemu Kronos. CDC razem z Uniwersytetem Minnesota stworzyli system Kronos, a w latach 70. system NOS, który wspierał symultaniczne przetwarzanie wsadowe oraz współdzielenie czasu. Podobnie jak w przypadku wielu innych komercyjnych systemów obsługujących współdzielenie czasu, jego interfejs był rozszerzeniem systemu DTSS.
W późnych latach 70., Control Data i Uniwersytet Illinois stworzyły system PLATO, który miał plazmowe ekrany oraz długodystansowe sieci współdzielenia czasu. PLATO był niezwykle innowacyjny jak na swoje czasy. Model współdzielenia pamięci języka programowania TUTOR umożliwił stworzenie takich aplikacji jak czat w czasie rzeczywistym i graficzne gry wieloosobowe.
Dla maszyny UNIVAC 1107, UNIVAC, pierwszy komercyjny dostawca komputerów, wyprodukował system operacyjny EXEC I, a Computer Sciences Corporation stworzyło system EXEC II i dostarczyło go do firmy UNIVAC. System ten został później przeniesiony na komputer UNIVAC 1108. Następnie UNIVAC stworzyło system EXEC 8 dla komputera 1108, który był podstawą późniejszych systemów operacyjnych tej rodziny. Podobnie do innych wczesnych mainframe’owych systemów, EXEC I i EXEC II były systemami zorientowanymi wsadowo, zarządzającymi pamięciami bębnowymi, dyskami, czytnikami kart i drukarkami. System EXEC 8, oprócz trybu wsadowego, wspierał również przetwarzanie transakcji online. W latach 70. UNIVAC stworzył system Real-Time Basic (RTB) do wspierania współdzielenia czasu na dużą skalę, wzorowany na systemie Dartmouth BASIC.
Burroughs Corporation wprowadziła w 1961 roku komputer B5000 z systemem operacyjnym Master Control Program (MCP). Komputer B5000 wspierał jedynie języki wysokiego poziomu i nie posiadał żadnego oprogramowania, nawet najniższych warstw jądra, napisanego w języku maszynowym lub asemblerze. MCP zaprezentował wiele przełomowych innowacji, np. miał jedną[b] z pierwszych implementacji pamięci wirtualnej. Wersja systemu MCP dla komputera B6500 wciąż jest w użyciu w serii komputerów ClearPath/MCP firmy Unisys.
Na początku lat 60. naukowcy z MIT zauważyli, że następuje kolejny krok milowy w sposobie pracy na komputerach. Na początku lat 50. skupiano się przede wszystkim na rozwoju sprzętu. Następnie, w połowie lat 50., powstawały pierwsze języki programowania, co uprościło tworzenie programów. Trzecim krokiem miało być uproszczenie interakcji między człowiekiem, a komputerem. W tym celu stworzyli eksperymentalny system operacyjny ze współdzieleniem czasu na komputer IBM 709, który następnie przenieśli na komputer IBM 7090. System ten pozwolił na jednoczesną pracę 3 użytkowników aktywnych i jednego użytkownika w tle[6].
W 1962 roku firma General Electric wprowadziła serię komputerów GE-600 z systemem operacyjnym General Electric Comprehensive Operating Supervisor (GECOS). Po przejęciu przez firmę Honeywell biznesu komputerowego GE, została zmieniona nazwa tego systemu na General Comprehensive Operating System (GCOS). W latach 70. Honeywell rozszerzył użycie nazwy GCOS na swoje wszystkie systemy operacyjne, mimo że wiele jego komputerów nie miało nic wspólnego z wcześniejszą serią GE 600, a ich systemy operacyjne nie pochodziły z oryginalnego GECOS.
Projekt MAC na MIT, przy współpracy z GE i Bell Labs, stworzył system operacyjny Multics, który jako pierwszy wprowadził koncepcję kręgów bezpieczeństwa z poziomami uprawnień.
Firma Digital Equipment Corporation stworzyła w 1967 roku system TOPS-10 dla swojej linii 32-bitowych komputerów PDP-10. Przed rozpowszechnieniem się Unixa, TOPS-10 był bardzo popularnym systemem na uniwersytetach i w społeczności ARPANET. Firma Bolt, Beranek, and Newman stworzyła system TENEX dla zmodyfikowanych komputerów PDP-10, które obsługiwały stronicowanie pamięci na żądanie. Był to kolejny popularny system używany do badań oraz przez społeczności ARPANET. Później był rozwijany przez DEC i został nazwany TOPS-20.
Firma Scientific Data Systems (SDS, później nazwa została zmieniona na Xerox Data Systems, XDS) stworzyła kilka systemów operacyjnych dla serii komputerów Sigma, takich jak Basic Control Monitor (BCM), Batch Processing Monitor (BPM) i Basic Time-Sharing Monitor (BTM). Później BPM i BTM zostały zastąpione przez Universal Time-Sharing System (UTS). Następnie UTS został zastąpiony systemem CP-V, który łączył UTS z mocno zorientowanym wsadowo systemem Xerox Operating System (XOS).
Minikomputery i powstanie Unixa
[edytuj | edytuj kod]Digital Equipment Corporation stworzyło kilka systemów operacyjnych dla swoich 16-bitowych komputerów PDP-11, w tym prosty system RT-11, system ze współdzieleniem czasu RSTS oraz rodzinę systemów czasu rzeczywistego RSX-11, a także system VMS dla 32-bitowych komputerów VAX.
Kilku konkurentów Digital Equipment Corporation, takich jak Data General, Hewlett-Packard, czy Computer Automation, stworzyło własny system operacyjny „MAX III”. Był on stworzony dla komputerów firmy Modular Computer Systems: Modcomp II i Modcomp III. System ten charakteryzował się tym, że był skierowany dla rynku automatyki przemysłowej. Biblioteki Fortrana zawierały taką, która pozwalała na dostęp do urządzeń pomiarowych i kontrolnych.
W późnych latach 60. firma AT&T Bell Laboratories stworzyła system operacyjny Unix, początkowo dla komputera PDP-7, a później także dla PDP-11. System ten uzyskał szeroką akceptację dzięki temu, że był łatwo dostępny i łatwo modyfikowalny. Unix napisany był w języku C. W związku z tym, gdy język ten był przeniesiony na nowe architektury, Unix także był tam przenoszony. To pozwoliło mu zostać wybranym na system operacyjny drugiej generacji minikomputerów oraz pierwszej generacji stacji roboczych. Poprzez powszechne stosowanie stał się przykładem idei systemu operacyjnego, który był koncepcyjnie taki sam na różnych platformach sprzętowych. Wciąż był jednak własnością firmy AT&T Corporation, co ograniczyło jego użycie do grup i firm, które mogły sobie pozwolić na zakup licencji. Było to jednym z powodów powstania ruchów wolnego oprogramowania i open source. W 1991 roku Linus Torvalds rozpoczął pracę nad Linuksem, open source’owym jądrem. Jądro było jedynym brakującym elementem systemu operacyjnego GNU (stworzonego przez Richarda Stallmana). Połączenie jądra Linux i kodu użytkowników z GNU i nie tylko pozwoliło na stworzenie systemu operacyjnego GNU/Linux.
Innym systemem operacyjnym, który powstał w tych czasach był Pick operating system. Został on stworzony i sprzedany przez firmę Microdata Corporation, która stworzyła także jego poprzedników. Jest on przykładem systemu, który na początku był programem wspierającym pracę z bazą danych, a stał się systemem operacyjnym.
Mikrokomputery: 8-bitowe komputery domowe oraz konsole do gier
[edytuj | edytuj kod]W połowie lat 70. nowa klasa komputerów trafiła na rynek. Wyposażone w 8-bitowy procesor, zwykle MOS Technology 6502, Intel 8080 lub Zilog Z80, wraz z elementarnym interfejsem wejścia wyjścia i tak dużą ilością pamięci RAM, jaka była praktyczna, systemy te zaczęły jako zestawy bazowe dla hobbystów komputerowych, ale szybko przerodziły się w niezbędne narzędzia biznesowe.
Komputery domowe
[edytuj | edytuj kod]Mimo że wiele 8-bitowych komputerów domowych lat 80, takich jak Commodore 64, Apple II, Atari 8-bit, Amstrad CPC, czy seria ZX Spectrum, było w stanie używać systemów operacyjnych firm trzecich, np. CP/M lub GEOS, zwykle były używane bez nich. Ich wbudowane systemy operacyjne były projektowane w czasach, gdy dyskietki były bardzo drogie i oczekiwano, że większość użytkowników ich nie używa, więc standardowym magazynem danych były napędy taśmowe używające zwykłych kaset magnetofonowych. Większość z tych komputerów, jeśli nie wszystkie, była dostarczana z wbudowanym interpreterem języka BASIC, który służył również jako surowy interfejs wiersza poleceń pozwalający użytkownikowi na załadowanie oddzielnego systemu operacyjnego do wykonywania poleceń zarządzania plikami, odczytywania i zapisywania danych na dysk. Najbardziej popularny komputer domowy, Commodore 64, był chlubnym wyjątkiem, ponieważ jego DOS był zapisany w ROM-ie hardware’u dysku, a dysk ten był adresowany tak samo jak drukarki, modemy i inne urządzenia zewnętrzne.
Bardziej rozbudowane systemy operacyjne nie były potrzebne po części dlatego, że większość tego rodzaju maszyn była wykorzystywana w celach rozrywkowych i edukacyjnych, rzadziej w biznesowych czy naukowych. Innym powodem jest sprzęt, na którym systemy te się rozwijały. Początkowo był produkowany z minimalną ilością pamięci. Standardem było 4–8 kilobajtów pamięci oraz 8-bitowe procesory bez specjalistycznego wsparcia takich układów, jak jednostka zarządzania pamięcią czy nawet zegar czasu rzeczywistego. Użycie na takim sprzęcie złożonego systemu operacyjnego, wspierającego wielozadaniowość i jednoczesną pracę wielu użytkowników, mocno obniżyłby wydajność komputera, a taki system nie byłby tak naprawdę potrzebny.
Gry komputerowe, czy nawet dostępne arkusze kalkulacyjne, bazy danych i edytory tekstu były zwykle samowystarczającymi programami, które całkowicie zajmowały komputer. Mimo że istniały pakiety zintegrowane dla tych komputerów, zwykle brakowało im wielu funkcji w stosunku do ich samodzielnych odpowiedników, przede wszystkim z powodu ograniczeń pamięci. Wymiana danych odbywała się przede wszystkim używając standardowych formatów tekstowych takich jak ASCII lub CSV, albo przez wyspecjalizowane programy do konwersji plików.
Początki systemów operacyjnych w grach komputerowych na konsolach do gier
[edytuj | edytuj kod]Ponieważ praktycznie wszystkie konsole i automaty do gier zaprojektowane i zbudowane po 1980 były prawdziwymi maszynami cyfrowymi (w przeciwieństwie do analogowych klonów gry Pong i podobnych), niektóre z nich zawierały minimalną formę BIOSa lub wbudowaną grę, jak np. ColecoVision, Sega Master System, czy Neo Geo firmy SNK.
Nowoczesne konsole do gier, zaczynając od PC-Engine, zawierają minimalny BIOS, który zapewnia także interaktywne narzędzia, które służą np. do zarządzania kartami pamięci, odtwarzania płyt audio i wideo, zabezpieczania przed kopiowaniem, a czasem zawierają też biblioteki dla programistów. Jednak jedynie kilka z tych przypadków możemy zakwalifikować jako prawdziwy system operacyjny.
Jednym z nich jest konsola Dreamcast, która, zawiera minimalny BIOS, podobnie jak PlayStation, ale oprócz tego może załadować system operacyjny Windows CE z dysku, co pozwala na proste przeniesienie gier z komputerów PC. Kolejny to konsola Xbox, która niewiele różni się od ukrytego PC z działającą w tle zmodyfikowaną wersją systemu Microsoft Windows. Ponadto istnieją wersje systemu operacyjnego Linux, które działają na konsoli Dreamcast oraz na późniejszych konsolach.
Długo przed tym firma Sony udostępniła zestaw narzędzi deweloperskich, Net Yaroze, dla pierwszej wersji konsoli PlayStation. Narzędzia te mogły być użyte ze zwykłym komputerem klasy PC oraz specjalną wersją konsoli „Black PlayStation”, która mogła pobierać programy z podłączonego komputera PC. Te operacje wymagały w szczególności w pełni funkcjonalnego systemu operacyjnego na obu urządzeniach.
Ogólnie rzecz biorąc konsole oraz automaty do gier w latach 70., 80. i przez większą część lat 90. w większości używały wbudowanego BIOSu, a z nastaniem ery PlayStation stawały się coraz bardziej wyrafinowane. W pewnym momencie zaczęły potrzebować specjalnych systemów operacyjnych.
Era komputerów osobistych
[edytuj | edytuj kod]Rozwój mikroprocesorów sprawił, że małe firmy i hobbyści uzyskali dostęp do niedrogich komputerów. To z kolei doprowadziło do rozpowszechnienia użycia wymiennych części sprzętu komputerowego przy wykorzystaniu powszechnych połączeń takich jak S-100, SS-50, Apple II, ISA i szyny PCI oraz do rosnącej potrzeby “standardowych” systemów operacyjnych, które by je kontrolowały. Pośród pierwszych systemów na takich urządzeniach najważniejszy był CP/M-80 dla procesorów 8080 / 8085 / Z-80 firmy Digital Research. Bazował on na kilku systemach operacyjnych Digital Equpiment Corporation, głównie ze względu na architekturę PDP-11. Pierwszy system operacyjny Microsoftu, MDOS/MIDAS miał wiele cech podobnych do PDP-11, ale był zaprojektowany dla systemów opartych na mikroprocesorach.
MS-DOS, zwany też PC DOS gdy był dostarczany przez IBM, początkowo był oparty na CP/M-80. Każda z tych maszyn posiadała mały program rozruchowy w ROM-ie, który uruchamiał system operacyjny z płyty. Rozszerzeniem tego pomysłu był BIOS na urządzeniach klasy IBM-PC, do którego wprowadzono więcej dodatków i funkcji w ciągu 21 lat od pierwszego zaprezentowania IBM-PC w 1981.
Malejące koszty procesorów i sprzętu wyświetlającego umożliwiły dostarczanie graficznego interfejsu użytkownika (ang. GUI) dla wielu systemów operacyjnych, takich jak generyczny X Window System, w który zaopatrzone jest wiele systemów Unix, a także dla innych systemów graficznych typu Microsoft Windows, OS-9 Level II/MultiVue firmy RadioShack Color Computer, AmigaOS firmy Commodore, Atari TOS, Mac OS firmy Apple, OS/2 firmy IBM. Oryginalny graficzny interfejs użytkownika budowano na systemie komputerowym Xerox Alto w Xerox Palo Alto Research Center we wczesnych latach 70, a w latach 80. i 90. go skomercjalizowano.
Od końca lat 90. w powszechnym użyciu na komputerach osobistych są trzy systemy operacyjne: Microsoft Windows, OS X od Apple Inc., i wolny GNU/Linux. Od roku 2005, w którym też Apple zaczął używać procesorów Intela, wszystkie z nich są rozwijane głównie na platformie x86, chociaż OS X wspierało PowerPC aż do roku 2009, a GNU/Linux nadal jest przenoszony na wiele architektur, łącznie z 68k, PA-RISC i DEC Alpha, które zostały zastąpione i przestały być produkowane, a także SPARC i MIPS, używane w serwerach albo w systemach wbudowanych, ale nie w komputerach stacjonarnych. Inne systemy operacyjne takie jak AmigaOS i OS/2 są używane, jeżeli w ogóle, głównie przez entuzjastów retrocomputingu albo do wyspecjalizowanych wbudowanych aplikacji.
Początki wirtualizacji
[edytuj | edytuj kod]Systemy operacyjne były początkowo uruchamiane bezpośrednio na sprzęcie i świadczyły usługi na rzecz aplikacji. Wraz z systemem CP-67 działającym na maszynie IBM System/360 Model 67 oraz systemie Virtual Machine Facility/370 (VM/370) dla System/370 IBM wprowadził pojęcie wirtualnej maszyny, gdzie system operacyjny działa pod kontrolą hipernadzorcy i nie ma już bezpośredniej kontroli nad sprzętem. Firma VMware spopularyzowała tę technologię na komputerach osobistych. Z upływem czasu granica pomiędzy maszynami wirtualnymi, monitorami i systemami operacyjnymi się rozmyła:
- Hipernadzorca stał się bardziej złożony, zyskał własny interfejs programistyczny aplikacji[7], system zarządzania pamięcią, czy plikami[8].
- W niektórych systemach, takich jak serwerach opartych na POWER5, czy POWER6, hipernadzorca nie jest już opcjonalny.
- Część aplikacji została ponownie zaprojektowana, żeby mogła działać bezpośrednio na monitorze maszyn wirtualnych[9].
Pod wieloma względami oprogramowanie maszyn wirtualnych pełni dzisiaj rolę, która do tej pory należała do systemów operacyjnych, włączając w to zarządzanie zasobami komputera (procesora, pamięci, urządzeń wejścia/wyjścia), wprowadzanie polityk planowania, a także pozwalanie administratorom systemu na zarządzanie całym systemem.
Uwagi
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ Tom Merritt: Chronology of Tech History. 2012, s. 74. ISBN 978-1300253075.
- ↑ Publikacja Roberta Patricka z Rand Corporation. [dostęp 2015-02-07].
- ↑ Computer History Museum. [dostęp 2015-02-07].
- ↑ 20th century Computers and IT Director Tape Doug Ross March 8, 1955: The Mother of All Operating Systems. [dostęp 2015-02-07].
- ↑ Chuck Boyer, The 360 Revolution.
- ↑ Fernando J. Corbató, Marjorie Merwin Daggett, Robert C. Daley: An experimental time-sharing system. [dostęp 2015-02-08]. (ang.).
- ↑ Dokumentacja API VIX. [dostęp 2015-02-07].
- ↑ System plików maszyny wirtualnej VMware® vStorage. [dostęp 2015-02-07].
- ↑ JRockit’s Liquid VM could be the first real Java OS. [dostęp 2015-02-07]. [zarchiwizowane z tego adresu (2012-08-30)]. (ang.).
Linki zewnętrzne
[edytuj | edytuj kod]- Neal Stephenson: In the Beginning... Was the Command Line. Harper Perennial, 1999. ISBN 0-380-81593-1. (ang.).