
KVM (Kernel-based Virtual Machine) to otwarta technologia pełnej wirtualizacji dla systemu Linux na sprzęcie z rozszerzeniami wirtualizacji (Intel VT lub AMD-V). Składa się z ładowalnego modułu jądra (kvm.ko) oraz modułów zależnych od procesora (kvm-intel.ko lub kvm-amd.ko), które pozwalają jądru Linux pełnić funkcję hypervisora uruchamiającego wiele odizolowanych maszyn wirtualnych.
KVM został stworzony przez Aviego Kivity w firmie Qumranet w 2006 roku i włączony do głównego drzewa jądra Linux w wersji 2.6.20 dnia 5 lutego 2007 roku. Po przejęciu Qumranet przez Red Hat w 2008 roku Red Hat stał się jednym z głównych kontrybutorów i buduje na KVM swój portfel wirtualizacji. Kod jest rozwijany w ramach jądra Linux i objęty licencją GNU GPL v2 (część komponentów na LGPL).
KVM współpracuje z QEMU (emulacja urządzeń) oraz warstwą zarządzania libvirt. Obsługuje architektury x86/x86-64, ARM, IBM Z (s390x), PowerPC, RISC-V i LoongArch. Oferuje m.in. planowanie i zarządzanie maszynami wirtualnymi przez standardowy scheduler Linux, migrację na żywo, kontrolę zasobów oraz izolację opartą o SELinux i sVirt.
Warstwa wirtualizacji (hypervisor / monitor maszyn wirtualnych, VMM), która abstrahuje zasoby sprzętowe — CPU, pamięć, I/O — i pozwala uruchamiać wiele odizolowanych maszyn wirtualnych na jednym hoście. Obejmuje hypervisory typu 1 (bare-metal) oraz typu 2 (hostowane) i rozwiązania hybrydowe wbudowane w jądro systemu operacyjnego (np. KVM).
Podstawa portfela wirtualizacji Red Hat (RHEL, OpenShift Virtualization); wykorzystywana przez dostawców chmury publicznej (m.in. Google Compute Engine, AWS Nitro).
C to język programowania powszechnie wykorzystywany w firmware, sterownikach, mikrokontrolerach i systemach embedded, gdzie wymagana jest bezpośrednia kontrola nad zasobami sprzętowymi.
Wymaga jądra Linux z modułem KVM oraz sprzętowego wsparcia wirtualizacji.
64-bitowa architektura procesora wywodząca się z rodziny x86, opracowana przez AMD (jako AMD64) i zaadoptowana przez Intel (jako Intel 64 / EM64T). Dominująca architektura w komputerach osobistych, serwerach, stacjach roboczych i komputerach przemysłowych. W robotyce stosowana jako główna platforma obliczeniowa dla: stacji operatorskich i komputerów deweloperskich (Ubuntu 22.04/24.04 x86_64), serwerów fleet management i cloud robotics, symulatorów (Gazebo, Isaac Sim wymagają x86_64 z GPU NVIDIA dla pełnej wydajności), komputerów pokładowych robotów mobilnych wyższej klasy (Intel NUC, mini-PC przemysłowe jak Nuvo, OnLogic). Oficjalne wsparcie ROS 2 dla x86_64 jest tier-1 – wszystkie dystrybucje ROS 2 (Humble, Jazzy, Kilted) są w pełni wspierane i testowane. Pakiety apt dostępne przez packages.ros.org dla Ubuntu x86_64. Dominuje w środowiskach deweloperskich i symulacyjnych. Na robotach mobilnych i humanoidach x86_64 jest stosowane gdy wymagana jest wysoka moc obliczeniowa (np. Intel Core Ultra, AMD Ryzen Embedded) bez ograniczeń energetycznych typowych dla ARM. Przykłady hardware: Intel NUC 13 Pro, AMD Ryzen Embedded V2000, Advantech MIC-770.
64-bitowa architektura ARM (Advanced RISC Machine) w wersji ARMv8-A i nowszych – dominująca architektura w embedded computing, robotyce mobilnej i edge AI. Dwie nazwy oznaczają to samo: ARM64 (nazwa stosowana przez Apple i w kontekście macOS/iOS), AArch64 (oficjalna nazwa architektury ARM, używana w Linuksie i ekosystemie embedded). Absolutnie dominująca architektura w nowoczesnej robotyce mobilnej i humanoidalnej: NVIDIA Jetson (Orin NX, AGX Orin – Cortex-A78AE), Raspberry Pi 4/5 (Cortex-A72/A76), Qualcomm Robotics RB5/RB6 (Kryo), Apple M1/M2/M3 (dla stacji deweloperskich macOS), procesory w smartfonach używanych jako moduły robotyczne. Oficjalne wsparcie ROS 2 tier-1 dla aarch64 od dystrybucji Humble – pakiety apt dostępne przez packages.ros.org dla Ubuntu 22.04/24.04 aarch64. Unitree SDK2 dostępne dla aarch64 (target: Jetson Orin NX w G1). Boston Dynamics Spot: Qualcomm aarch64. Zalety wobec x86_64: znacznie niższy pobór energii (TDP 5–65W vs 45–125W), lepsza wydajność na wat, wbudowane NPU/GPU dla edge AI, mniejszy footprint fizyczny. Ograniczenia: historycznie mniejsza dostępność prebuildowanych pakietów (szybko zmniejsza się), niektóre biblioteki x86-only nie są portowane.
z/Architecture to 64-bitowa architektura procesorów mainframe’ów IBM Z, wprowadzona w 2000 r. jako następca ESA/390. Charakteryzuje się trybami adresowania 24/31/64-bit oraz wbudowanymi akceleratorami (m.in. Integrated Accelerator for AI w procesorach Telum i Telum II). W ekosystemie Linuksa architektura ta oznaczana jest jako s390x.
Otwarta architektura RISC-V – rosnąca adopcja w robotyce.
PowerPC (Performance Optimization With Enhanced RISC – Performance Computing) to architektura zbioru instrukcji RISC. Współczesne warianty serwerowe IBM Power obejmują ppc64 (big-endian) oraz ppc64le (little-endian). Architektura jest wspierana m.in. przez jądro Linux i technologię wirtualizacji KVM.
Rodzina licencji: Silny copyleft
Silna licencja copyleft GNU – każde oprogramowanie łączące się z kodem GPL v2 lub zawierające kod GPL v2 musi być dystrybuowane na GPL v2 z pełnym kodem źródłowym. Niekompatybilna z Apache 2.0 (klauzula 6 GPL v2 vs klauzula 7 Apache 2.0). Jądro Linux dystrybuowane na GPL v2 z wyjątkiem 'Linux syscall note' umożliwiającym zamknięte programy użytkujące syscall.
Spotykana w starszych komponentach ROS 1 i niektórych sterownikach hardware. Inkompatybilność z Apache 2.0 była historycznym problemem ekosystemu ROS 1. Firmy OEM muszą unikać GPL v2 w komponentach runtime zamkniętych produktów robotycznych lub uzyskać wyjątek licencyjny. Jądro Linux (GPL v2) używane w robotach jest bezpieczne dzięki syscall exception.
Pierwsze włączenie KVM do głównego drzewa jądra Linux.