Wstęp
Krótki wstęp
System operacyjny
System operacyjny (OS) to podstawowe oprogramowanie, które zarządza sprzętem komputerowym i umożliwia interakcję użytkownika z komputerem. Jest to warstwa między aplikacjami a sprzętem komputerowym, koordynująca wszystkie podstawowe funkcje i procesy.
- 
Podstawowe Funkcje
- Zarządzanie Zasobami
 - Uruchamianie Aplikacji
 - Interfejs Użytkownika
 
 - 
Rodzaje Systemów Operacyjnych
- Systemy na Komputery Osobiste: Windows, macOS i różne dystrybucje Linuxa
 - Mobilne Systemy Operacyjne: iOS, Android
 - Systemy Serwerowe: Windows Server, Linux Server
 - Systemy Wbudowane
 - Systemy czasu rzeczywistego
 
 - 
Znaczenie
- System operacyjny jest kluczowym elementem każdego komputera, umożliwiając efektywne i bezpieczne wykorzystanie jego zasobów.
 - Ułatwia interakcję użytkownika z komputerem, oferując przyjazny interfejs i zarządzanie aplikacjami.
 - Zapewnia bezpieczeństwo danych, zarządzając dostępem do zasobów i izolując różne procesy.
 
 
Czym jest wirtualizacja?
W kontekście przedmiotu SO
Wirtualizacja to proces tworzenia wirtualnych, a nie fizycznych wersji systemu operacyjnego.
- 
Zalety: Wirtualizacja pozwala na bardziej efektywne wykorzystanie zasobów sprzętowych, umożliwiając uruchamianie wielu systemów operacyjnych i aplikacji na pojedynczym fizycznym serwerze. Zapewnia to oszczędności kosztów, zwiększa elastyczność, ułatwia backup, odzyskiwanie po awarii oraz testowanie i rozwój oprogramowania.
 - 
Rodzaje Wirtualizacji:
- Wirtualizacja serwerów: Pojedynczy serwer fizyczny jest dzielony na wiele izolowanych serwerów wirtualnych.
 - Wirtualizacja sieci: Zasoby sieciowe, takie jak przełączniki, routery i połączenia sieciowe, są wirtualizowane.
 - Wirtualizacja pamięci masowej: Dzieli i zarządza zasobami pamięci masowej w sposób elastyczny i efektywny.
 - Wirtualizacja aplikacji: Aplikacje są uruchamiane w odizolowanych środowiskach, co zapobiega konfliktom między oprogramowaniem.
 
 
Hypervisor:
To oprogramowanie umożliwiające wirtualizację, zarządzające VM-ami i przydzielające im zasoby. Istnieją dwa główne typy hipernadzorców:
- Bare-Metal: Zainstalowany bezpośrednio na sprzęcie.
 - Hostowany: Działa na konwencjonalnym systemie operacyjnym.
 
Zalety Ochrony i Bezpieczeństwa:
Wirtualizacja umożliwia lepsze zarządzanie bezpieczeństwem, izolując różne systemy operacyjne i aplikacje, co zmniejsza ryzyko rozprzestrzeniania się problemów z jednego systemu na inny.
Elastyczność i Skalowalność:
Ułatwia skalowanie zasobów w górę lub w dół w zależności od potrzeb, bez konieczności inwestowania w dodatkowy sprzęt.
Dostępne technologie
Hipervisor
Hipervisor - Bare-Metal
Te hipernadzorcy działają bezpośrednio na sprzęcie gospodarza, kontrolując sprzęt i zarządzając systemami operacyjnymi gości.
- VMware ESXi: Szeroko stosowany w środowiskach korporacyjnych, oferując zaawansowane funkcje i narzędzia zarządzania.
 - Microsoft Hyper-V: Dostępny na Windows Server i niektórych edycjach Windows 10 i 11, znany ze swojej integracji z ekosystemami Microsoft.
 - Citrix Hypervisor: Dawniej znany jako XenServer, to potężny hipernadzorca open source często używany w centrach danych.
 - Oracle VM Server dla SPARC/x86: Zaprojektowany dla sprzętu Oracle, zwykle stosowany w środowiskach korporacyjnych.
 - KVM (Kernel-Based Virtual Machine): Zintegrowany z Linuksem, KVM zamienia jądro Linuksa w hipernadzorcę bare-metal.
 
Hipernadzorcy - Hostowane
Te hipernadzorcy działają na konwencjonalnym systemie operacyjnym, tak jak inne programy komputerowe.
- VMware Workstation (dla Windows/Linux) i Fusion (dla macOS)
 - Oracle VirtualBox
 - Parallels Desktop
 
- Pełne Symulacje Systemów
 
Te narzędzia wykraczają poza tradycyjną wirtualizację, symulując całe systemy, w tym sprzęt i środowiska sieciowe.
- QEMU: Open-source emulator, który może wykonywać wirtualizację sprzętu.
 - GNS3 (Graphical Network Simulator-3): Głównie używany dla urządzeń sieciowych
 - Simics: Pełny symulator systemu używany do symulacji procesorów, systemów i kompletnych systemów sieciowych.
 
- Wirtualizacja Aplikacji Skupia się na uruchamianiu poszczególnych aplikacji w odizolowanym środowisku.
 
- Microsoft Application Virtualization (App-V): Zaprojektowany dla środowisk Windows, pozwala aplikacjom działać w izolowanych środowiskach.
 - Wine: Nie jest właściwie oprogramowaniem do wirtualizacji, ale pozwala uruchamiać aplikacje Windows na systemach operacyjnych podobnych do Unix.
 - Docker: Specjalizuje się w konteneryzacji, umożliwiając aplikacjom i ich zależnościom działanie w izolowanych procesach zasobów.
 
- Wirtualizacja oparta na chmurze
 
- Amazon EC2 (część AWS)
 - Google Compute Engine
 - Microsoft Azure Virtual Machines
 
- Specjalistyczne lub niszowe narzędzia do wirtualizacji
 
- Bochs: Emulator dla platform x86 i x86-64, bardziej skupiony na dokładności emulacji.
 - Bhyve: Lekki hipernadzorca działający na FreeBSD.
 - Gem5: To już jest bardziej symulator architektury