Previous Up

Next


UML
 

 

Opis

UML (User Mode Linux) to oprogramowanie rozpowszechniane w postaci Open Source na licencji GNU. Umożliwia uruchomienie pod systemem Linux wielu wirtualnych komputerów pracujących również pod kontrolą systemu Linux, które są odizolowane zarówno od siebie, jak i od systemu macierzystego (wraz z kontrolowanym przez niego sprzętem).
W gruncie rzeczy UML jest jądrem linuksa zmodyfikowanym w ten sposób by mogło być uruchomione wewnątrz innego Linuksa: posiada własną pamięć wirtualną i własny scheduler, ale korzysta z wywołań systemowych zamiast z interfejsu hardware’u i jest uruchamiane w przestrzeni użytkownika systemu macierzystego.

Ogólna wydajność wirtualnego systemu nie jest zbyt mocno obniżona, ale spadek wydajności obsługi urządzeń we/wy jest znaczny. Jednak najczęstsze przyczyny korzystania z UML to m. in. przeprowadzanie testów, eksperymentów czy też debugowanie jądra, czyli czynności w kontekście których wydajność wydaje się mniej znaczącym elementem niż np. bezpieczeństwo. Zatem nie ma potrzeby by UML w jak najbardziej optymalny sposób wirtualizował Linuksa.

User-mode Linux może działać w dwóch trybach: trybie TT (Tracing Thread) lub trybie skas (Seperate Kernel Address Space).

Tryb TT: Tracing Thread
Jest to tradycyjny tryb User Mode Linux. Działa według następującego modelu:

Takie rozwiązanie jest wymuszone przez ograniczone wsparcie dla UML-a ze strony systemu macierzystego i powoduje kilka problemów:

Tryb SKAS: Separate Kernel Adress Space
Jest to nowszy tryb pracy UML-a, który korzysta ze wsparcia ze strony jądra systemu macierzystego. Działa on znacznie szybciej niż tryb TT, jednakże do działania wymaga lekkiego zmodyfikowania systemu hosta (zainstalowania patcha).

Wprowadzone zmiany powodują, że jądro UML-a wykonuje się w zupełnie innej przestrzeni adresowej hosta niż UML-owe procesy, co likwiduje m.in. problemy bezpieczeństwa, sprawiając, że jądro UML-a jest zupełnie niedostępne dla UML-owych procesów. Przestrzenie adresowe procesów UML-owych są dokładnie takie, jak gdyby procesy wykonywały się w systemie macierzystym. Takie rozwiązanie skutkuje również zauważalnym wzrostem wydajności UML-a, dzięki wyeliminowaniu przetwarzania wywołań systemowych z UML-a na sygnały.

Kolejną różnicą w stosunku do trybu TT jest zmniejszenie w systemie macierzystym liczby procesów odpowiadających jednemu UML-owi do następujących czterech:

Wymagana i kompatybilność

System operacyjny Linux (ew. inny system POSIXowy (BSD, systemy UNIXopodobne)).
Używane trybu SKAS wymaga zainstalowania odpowiedniej łatki na jądro systemu hosta.

Przeznaczenie

Głównym przeznaczeniem UML jest ułatwienie testowania nowych jąder Linuksa, eksperymentalnego oprogramowania, debugowania jądra, debugowania procesów, przeprowadzania eksperymentów na jądrze oraz badania zachowania jądra w krytycznych sytuacjach.

Źródła:

http://user-mode-linux.sourceforge.net
http://usermodelinux.org
http://user-mode-linux.sourceforge.net/dl-sf.html (tutaj można pobrać UML)


Previous Up

Next