Warum sollte jemand UserMode Linux (UML) ausführen wollen?

18

In der Linux-README heißt es:

Linux wurde auch für sich selbst portiert. Sie können den Kernel jetzt als Userspace-Anwendung ausführen - dies wird als UserMode Linux (UML) bezeichnet.

Warum sollte jemand das tun wollen?

JohnAllen
quelle
Wenn Sie es selbst versuchen, wird es vielleicht klar, es ist einfach! unix.stackexchange.com/questions/73203/…
Ciro Santilli am

Antworten:

18

UML ist sehr schnell für die Entwicklung und viel einfacher zu debuggen. Wenn Sie beispielsweise KVM verwenden, müssen Sie eine Umgebung einrichten, die vom Netzwerk aus gestartet wird, oder Sie müssen neue Kernel in die VM kopieren. Mit UML führen Sie einfach den neuen Kernel aus.

Irgendwann habe ich Netzwerkcode auf dem Kernel getestet. Dies bedeutet, dass Sie sehr, sehr häufig Kernel-Panics oder andere Probleme bekommen. Das Debuggen mit UML ist sehr einfach.

Darüber hinaus wird UML an Orten ausgeführt, an denen keine hardwaregestützte Virtualisierung vorhanden ist. Daher wurde UML noch häufiger verwendet, bevor KVM zur Standardisierung wurde.

V13
quelle
IIRC linode.com verwendet UML für die Virtualisierung.
Paul Cager
2
@PaulCager Ja, von 2003 bis zum Wechsel zu Xen im Jahr 2008.
Matt Nordhoff
11

Ihre Webseite hat mehrere Gründe

Hier sind einige der Dinge, für die UML verwendet wird:

  • Hosting von virtuellen Servern
  • Kernel-Entwicklung
  • Experimentieren mit neuen Kerneln und Distributionen
  • Bildung
  • Sandkasten
Patrick
quelle
Es wäre cool, einen Vergleich mit anderen Virtualisierungsmethoden zu sehen. Hier ist ein Schritt-für-Schritt-Tutorial für GDB: stackoverflow.com/questions/4943857/…
Ciro Santilli am
4

UML war auch die Basis der Originalversion der FAUmachine , einer virtuellen Maschine, mit der Sie "Hardware" -Fehler in einen laufenden Kernel einfügen können.

Jörg W. Mittag
quelle
Klingt interessant, aber die von Ihnen angegebene URL ist ein fehlerhafter Link.
Isuldor
1

Einige Containerisierungsmethoden wie Docker erlauben die Verwendung nicht, z. B. FUSE ohne Ausführung eines privilegierten Containers, wodurch einige der Sicherheitsgrenzen, die Container bieten können, aufgebrochen werden. Wenn Sie so etwas wie UML zwischen Ihre App und die Containerisierungsplattform stecken, können Sie auf mehr Kernelfunktionen zugreifen, ohne die Hostsicherheit zu gefährden.

Michael Mol
quelle