Historia wirtualizacji – skąd wzięły się wirtualne maszyny?

Początek historii wirtualnych maszyn sięga lat 60. XX wieku i pionierskich projektów inżynieryjnych realizowanych w laboratoriach badawczych koncernu IBM. W tamtych czasach komputery klasy mainframe, na czele z legendarnymi seriami IBM System/360 oraz System/370, stanowiły potężne instalacje warte miliony dolarów. Zasoby obliczeniowe pojedynczego urządzenia musiały być współdzielone przez dziesiątki instytucji, naukowców i inżynierów.

W 1965 roku zespół badawczy IBM uruchomi projekt CP-40, który dał początek komercyjnemu systemowi CP-67/CMS. Wprowadził unikalną warstwę oprogramowania kontrolnego (Control Program), która potrafiła logicznie podzielić pojedynczy fizyczny mainframe na w pełni niezależne instancje. Każdy zalogowany użytkownik pracował w przekonaniu, że ma do dyspozycji wyłączny, kompletny komputer, a system w ułamkach sekund zarządzał czasem procesora i pamięcią operacyjną.

Kiedy w latach 80. i 90. XX wieku rynek IT zdominowały mikrokomputery i architektura x86, wirtualizacja na pewien czas zniknęła z centrum uwagi. Powód był czysto techniczny: procesory x86 nie posiadały sprzętowego wsparcia dla wirtualizacji, a część uprzywilejowanych instrukcji procesora łamała reguły bezpiecznej izolacji.

Do idei wirtualnej maszyny powrócono pod koniec lat 90. W 1999 roku inżynierowie z Doliny Krzemowej zaprezentowali oprogramowanie VMware Workstation, które wykorzystywało innowacyjną technikę dynamicznej binarnej translacji kodu. W 2001 roku, zadebiutował VMware ESX Server – pierwszy natywny hypervisor typu 1 działający bezpośrednio na sprzęcie serwerowym (bare-metal), dając początek masowej konsolidacji korporacyjnych serwerowni.

Przełom wydajnościowy przyniósł okres lat 2005–2006, gdy producenci układów scalonych wprowadzili wsparcie wirtualizacji bezpośrednio w krzemie: technologie Intel VT-x oraz AMD-V. W efekcie procesory zaczęły natywnie wykonywać instrukcje systemów gościa, eliminując konieczność kosztownej programowej translacji. W 2006 roku zadebiutował projekt KVM (Kernel-based Virtual Machine), który rok później został oficjalnie włączony do głównej gałęzi jądra Linuksa (w wersji 2.6.20), co zrewolucjonizowało podejście do wirtualizacji w systemach open source. Niemal w tym samym czasie Microsoft zaprezentował swój hypervisor Hyper-V, na stałe integrując wirtualizację z ekosystemem Windows Server.

W 2010 roku wirtualizacja ewoluowała w stronę chmury obliczeniowej (Cloud Computing) w modelu IaaS (Infrastructure as a Service). Wirtualna maszyna przestała być sztywno przypisanym serwerem konfigurowanym ręcznie przez administratora w lokalnej serwerowni. Stała się programowalną, w pełni elastyczną jednostką obliczeniową powoływaną w kilka sekund za pomocą kodu i API. Nowoczesne platformy chmurowe oparły swoją infrastrukturę na technologii KVM oraz ultraszybkich macierzach NVMe, oferując przedsiębiorstwom bezpieczne, redundantne i suwerenne środowiska IT bez konieczności inwestowania w kosztowny sprzęt fizyczny.

Nawigacja po przewodniku

← Poprzedni rozdział: 1. Czym jest wirtualna maszyna?

Następny rozdział: 3. Jak działa wirtualna maszyna? Architektura techniczna →

Powrót do głównego rozdziału