Umożliwia uruchomienie Linuxa jako zwykłego procesu w przestrzeni użytkownika w Linuxie.
Od wersji jądra 2.6 został z nim zintegrowany.
Przy odpowiedniej instalacji pozwala na to, aby gość widział dyski hosta, mimo braku np. połączenia sieciowego pomiędzy nimi (patrz niżej)
Dwa tryby pracy:
Tracing Thread (TT) - na każdy proces gościa przypada jeden proces hosta.
Separate Kernel Address Space (SKAS) - w hoście istnieje tylko kilka (4) procesy UMLa, jądro ma własną przestrzeń adresową, dzięki czemu jest chronione przez MMU (Memory Management Unit). Bezpieczniejszy niż TT.
Jak to uruchomić - dla zaawansowanych (por. następny plik prezentacji)
Ściągamy kernela z rodziny 2.6
wchodzimy do jego katalogu
make menuconfig ARCH=um
konfigurujemy, tak jak chcemy
aby mieć dostęp do dysków hosta trzeba zaznaczyć (przykład dla jądra 2.6.17-gentoo-r6)
UML-specific options --->
< > Host filesystem
make ARCH=um
w katalogu arch/um mamy skompilowany plik binarny ELF, który jest programem - kernelem
Zastosowania:
honeypot - przynęta na hackerów
uruchamianie poszczególnych usług sieciowych w UML
kiedy ktoś włamie się do np. serwera WWW ma dostęp tylko do "pudełka" z tą jedną usługą, nie może nic zrobić hostowi
niestabilność usługi nie ma wpływu na niestabilność systemu
testowanie i odpluskwianie nowego oprogramowania
gość może mieć dostęp do wybranego sprzętu hosta
zawieszenie się gościa nie powoduje zawieszenia się hosta
można sobie zkillować gościa
debugowanie jądra
tańszy odpowiednik serial consoli, zamiast dwóch komputerów rolę jednego pełni gość, a drugiego host
wersja kernela hosta i gościa nie muszą się zgadzać
w zastosowaniach komercyjnych: wirtualne serwery
każdy klient ma root'a i złudzenie własnego systemu, a także odizolowanie od pozostałych klientów
niższe koszta, zarówno dla klienta jak i dostawcy usług hostingowych, gdyż na jednym serwerze można uruchomić wiele "pudełek" z serwerami klientów