Brukermodus Linux - User-mode Linux
| Skrevet i | C |
|---|---|
| Type | Virtualisering |
| Tillatelse | GNU General Public License |
| Nettsted | user-mode-linux |
User-mode Linux ( UML ) gjør det mulig for flere virtuelle Linux-kjernebaserte operativsystemer (kjent som gjester) å kjøre som et program i et normalt Linux-system (kjent som verten). Siden hver gjest bare er et vanlig program som kjører som en prosess i brukerområdet , gir denne tilnærmingen brukeren en måte å kjøre flere virtuelle Linux-maskiner på en enkelt maskinvare, noe som gir en viss isolasjon, vanligvis uten å påvirke vertsmiljøets konfigurasjon eller stabilitet .
applikasjoner
Mange ting blir mulig gjennom bruk av UML. Man kan kjøre nettverkstjenester fra et UML-miljø og forbli fullstendig bundet fra det viktigste Linux-systemet der UML-miljøet kjører. Administratorer kan bruke UML til å sette opp honningkasser , som lar en teste sikkerheten til datamaskiner eller nettverk. UML kan tjene til å teste og feilsøke ny programvare uten å påvirke vertssystemet negativt. UML kan også brukes til undervisning og forskning, og gir et realistisk Linux-nettverksmiljø med høy grad av sikkerhet.
I UML-miljøer trenger ikke verts- og gjestekjerneversjoner å matche, så det er fullt mulig å teste en " blødende kant " -versjon av Linux i brukermodus på et system som kjører en mye eldre kjerne. UML tillater også at kjernedebugging kan utføres på en maskin, der andre kjerne-feilsøkingsverktøy (for eksempel kgdb ) krever to maskiner som er koblet til en nullmodemkabel .
Noen leverandører av webhotell tilbyr UML-drevne virtuelle servere til lavere priser enn ekte dedikerte servere . Hver kunde har root- tilgang til det som ser ut til å være sitt eget system, mens i virkeligheten en fysisk datamaskin deles mellom mange mennesker.
libguestfs har støttet en UML-backend siden versjon 1.24 som et alternativ til å bruke QEMU eller KVM.
Integrasjon i Linux-kjernen
UML-gjesteapplikasjonen (en Linux binær ELF ) var opprinnelig tilgjengelig som en patch for noen Kernel-versjoner over 2.2.x, og verten med en hvilken som helst kjerneversjon over 2.2.x støttet den lett i trådmodus (dvs. ikke-SKAS3) .
Fra og med Linux 2.6.0 er den integrert i hovedkjernekildetreet . En metode for å kjøre et eget kjerneadresseområde (SKAS) som ikke krever vertskjerneoppdatering, er implementert. Dette forbedrer ytelsen og sikkerheten i forhold til den gamle Traced Thread-tilnærmingen, der prosesser som kjører i UML, deler samme adresseplass fra vertens synspunkt, noe som fører til at minnet inne i UML ikke blir beskyttet av minneadministrasjonsenheten . I motsetning til dagens UML ved bruk av SKAS, kan buggy eller ondsinnet programvare i en UML som kjører på en ikke-SKAS-vert være i stand til å lese minneplassen til andre UML-prosesser eller til og med UML-kjerneminnet.
Sammenligning med andre teknologier
User-mode Linux anses generelt å ha lavere ytelse enn noen konkurrerende teknologier, som Xen og OpenVZ . Fremtidig arbeid med å legge til støtte for x86 virtualisering til UML kan redusere denne ulempen.
Ofte sitert som en styrke av Xen (en konkurrerende teknologi) er støtte for tråd-lokal lagring (TLS). Dette støttes nå også i de nyeste UML-kjernene. Xen konsentrerer seg om å virtualisere hele maskinen, og dermed er alle systemer som kjører på en Xen-maskin virkelig virtuelle maskiner. I UML blir vertsmaskinen ikke virtualisert på noen måte, og bare gjestesystemer er ekte virtuelle maskiner. Dette gir UML-gjest direkte tilgang til vertsfilsystemer og maskinvare, der det er vanlig å kartlegge en vertskatalog (f.eks. / Uml / root → / ).
Støttede plattformer
UML ble opprinnelig designet for x86 instruksjonssett, men har også blitt portet til andre, inkludert IA-64 og PowerPC .