Interview met Jeff Dike

ArticleCategory: [Choose a category, do not translate this]

KernelCorner

AuthorImage:[Here we need a little image from you]

[Floris Lambrechts]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Floris Lambrechts 

en to nl Floris Lambrechts 

AboutTheAuthor:[A small biography about the author]

Binnen een paar maanden ben ik officieel 'industrieel ingenieur elektronica/ict'. Ik hou van vrije software, open standaarden en goeie user interfaces.

Abstract:[Here you write a little summary]

User Mode Linux, UML in het kort, is ��n van de vele nieuwe mogelijkheden in de nieuwste Linux kernel (2.6.x). Dit interview is een bewerkt verslag van een email conversatie uit januari 2003 met de maker van UML, Jeff Dike.

Op het eind komt ook David Coulson nog een zegje doen over tools voor het beheren van UML systemen.

ArticleIllustration:[This is the title picture for your article]

[Illustratie]

ArticleBody:[The article body]

Introductie

Zoals altijd bevat de op stapel staande Linux versie (noot: dit was op het moment van schrijven versie 2.5) een heel arsenaal aan nieuwe mogelijkheden. UML is er daar slechts ��n van, maar dan wel een heel speciale - het kan een grote invloed hebben op de manier waarop Linux systemen beheerd worden.
Omdat we vinden dat UML best nog wat extra aandacht kan gebruiken, beschrijven we het in een speciaal introductie-interview met niemand minder dan de maker ervan, Jeff Dike.

Jeff zelf

LF: Jij bent dus Jeff Dike, de leider van het UML project. Kun je jezelf even kort beschrijven?

JD: Inderdaad, je hebt me gevonden...

OK, hier is een korte beschrijving door Bill Stearns, mijn officiële biograaf:

Jeff finished his tour of service to the State of New Hampshire when his parole was granted in 1992. Since then he has served as a freedom fighter in Idaho for the Potato Liberation Front, an extra in "Death to Smoochy" (dead body #7), and as lead starcher in Deering NH's largest Chinese laundry. He is currently rewriting the linux kernel as a DOS batch file.

LF: Werk je (semi-)professioneel aan UML, of is het slechts een hobby?

JD: Het is min of meer een hobby. Ik heb veel steun gekregen van Dartmouth ISTS (www.ists.dartmouth.edu) voor werk dat te maken had met UML en honeypots. Af en toe wordt ik ook gesteund door bedrijven die nieuwe mogelijkheden wensen of bugs willen opgelost zien.

LF: Laten we bij het begin beginnen. Na het lezen van de website user-mode-linux.sourceforge.net, begrijp ik dat UML een Linux kernel is die draait onder een andere, 'hosting' kernel. Daadoor draait UML in user space, en levert hij virtuele hardware diensten aan de toepassingen die eronder draaien. Klopt dit ongeveer?

JD: Ja. UML behandelt Linux als een platform waarop Linux draait, net zoals een kale x86 of ppc machine. Natuurlijk is Linux als platform voor een besturingssysteem een heel andere zaak dan een gewoon hardware-platform, en ��n van de dingen die UML heeft bewezen is dat de Linux system call interface uitgebreid genoeg is om een besturingssysteem te ondersteunen.

De hardware van UML is virtueel, in die zin dat alle toegang naar externe bronnen via de hosting kernel gaat. Meestal betekent dit dat een apparaat onder UML echt virtueel is, bijvoorbeeld een 'schijf' die eigenlijk gewoon een bestand is op de host. Maar het is evenzeer mogelijk om een fysieke schijf, een partitie, een floppy- of CD-ROM station toe te wijzen aan een UML block device door middel van de device file. UML kan dan wel niet rechtstreeks low-level commando's naar het apparaat sturen zoals de driver in de host kernel dat doet.

Er is op dit gebied wat werk geleverd, met een recente patch die beweert (ik heb het nog niet bekeken) om met gewone drivers rechtstreeks PCI apparaten aan te sturen.

LF: OK, dus het draait inderdaad in user space... Kun je UML draaien als je niet root bent? Kun je ook in een chroot omgeving draaien?

JD: Ja, en ja. Het is zelfs zo dat ik ten sterkste afraad om het als root te draaien, niet omdat dat heel gevaarlijk is, maar het is compleet zinloos. Sommige gebruikers kunnen maar niet wennen aan het feit dat ze UML kunnen draaien as gewone gebruiker, vervolgens root worden binnen de UML omgeving en dan opeens alle root-rechten hebben. Ze denken dat ze UML als root moeten draaien, dus vertel ik ze heel geduldig dat het echt niet nodig is, en het is voor hen een echt leerproces om dat te leren beseffen. Ik ben ook blij dat de UML gebruikersgemeenschap mijn houding heeft overgenomen; andere mensen doen dit soort van re-educatie nu in mijn plaats.

Je kunt het draaien onder chroot, en dat is ook aangeraden voor mensen die mogelijk gevaarlijke software of gebruikers in hun UML systeem hebben. De chroot omgeving is dan een extra bescherming om de host te beschermen in het geval iemand een manier vindt om 'uit te breken'.

LF: Er is een 2.4 en de nieuwere 2.5 reeks van UML. Kun je de 2.5 UML draaien op een 2.4 host kernel, en vice versa?

JD: Er is eigenlijk geen enkele beperking tussen de host kernel versie en de UML kernel versie. Zolang de host 'UML kan draaien', kan hij elke UML versie aan.

LF: Cool... Is het dan afhankelijk van het x86 platform? Draait het onder, bijvoorbeeld, MIPS of PPC?

JD: Nee. Er was een PPC versie die ooit bijna af was, maar die is niet meer onderhouden en verloederd. De omzetting is zeker mogelijk, en zou niet zo moeilijk moeten zijn. Ik kijk er naar uit, vooral als ze dan ook goed onderhouden worden.

LF: Dus totdat iemand dat werk op zich neemt, is dit eigenlijk een deel van de Linux kernel dat nog niet overgezet (geporteerd) is?

JD: Nee. UML is een overzetting (port). Je kunt niet zeggen dat het niet geporteerd is. UML overzetten naar een nieuwe architectuur staat gelijk aan het overzetten van een hardware architectuur naar een nieuwe chip van dezelfde architectuur.

LF: Ik snap het. Hoe zit het met 'echte' ports: hoeveel werk zou het zijn om UML te doen draaien onder Windows?

JD: Dit is al twee keer (bijna) gedaan. De meest recente poging was ongeveer een weekje werk. Aan de andere (http://umlwin32.sf.net) is gedurende enkele maanden gewerkt in de vrije tijd van de ontwikkelaars, dus het is moeilijk te zeggen hoe lang het duurde.

Ik zou nog willen zeggen dat het leuk zou zijn als deze ports afgewerkt en gedebugd worden. Er is heel wat interesse om UML onder Windows te draaien.

LF: Wat vond je ervan toen UML werd opgenomen in de officiële Linux 2.5 broncode?

JD: Technisch gezien was er niet veel aan. Ik beheerde UML al meer dan drie jaar buiten de officiële Linux code (net zoals ik dat nog doe met de 2.4 UML), en ik had dat ook wel kunnen blijven doen.

De erkenning die het opleverde was leuk. Toen Linus UML toevoegde aan 2.5, zag de wereld dat UML de moeite was (en een groot deel hoorde er voor het eerst van). Dit 'teken van goedkeuring' is wat mij betreft waarschijnlijk het belangrijkste effect van UML in de officiële code tree te hebben. Je kunt het niet langer beschouwen als een vage kernel patch in de marge van de officiële kernel ontwikkeling.

LF: UML is een nieuw concept voor systeembeheerders, een onontgonnen terrein. Zijn de beheertools ervoor (zoals UMLd) al uitgerijpt - zijn ze handig in het aanpakken van de taken die UML oplevert voor beheerders?

JD: Dit is een vraag die je best stelt aan Bill Stearns of David Coulson. Ik probeer me enkel bezig te houden met de kernel en laat de beheer tools over aan andere mensen.

LF: David? Hoe zit dat met UMLd?

DC: UMLd is een daemon die UMLs beheert, zowel voor gebruikers als voor beheerders. Voor gebruikers is het mogelijk om een gecrashte UML te herstarten, of om de kernel te updaten zonder shell toegang te hebben tot de machine. Voor beheerders is het mogelijk om UMLs te controleren en te veranderen, zelfs aan te maken, zonder te moeten prutsen met bestanden op de server.

Ideaal gezien zou UMLd alle aspecten van de UML moeten kunnen beheren, en voor het grootste deel doet het dat ook. Maar het moet constant aangepast worden aan nieuwe toevoegingen in de UML kernel.

(...)
Ik heb UMLd maandenlang gedraaid op een netwerk met twee hosts en meer dan 30 UML's, en ik heb er zeer weinig problemen mee gehad. Ik gebruik het om al mijn UMLs mee aan te maken, om ze te herstarten, om de kernels te updaten, enzoverder. Eigenlijk heeft UMLd een grafische interface nodig voor eindgebruikers. Waarschijnlijk begin ik daaraan te schrijven eenmaal ik tevreden ben met de mogelijkheden van UMLd en wanneer het protocol voor communicatie tussen UMLd en de clients gestabiliseerd is.

LF: Jullie lijken er veel plezier in te maken. Een voorbeeld is de wedstrijd "Sysadmin Disaster of the Month" op UML systemen; een andere deze uitspraak: "UML for fun and profit / Well, forget about the profit part" (http://uml.openconsultancy.com/ ). Is UML half speelgoed en half gereedschap, of zijn jullie gewoon van het humoristische slag ;-)?

JD: Ik denk het laatste. UML heeft een groep mensen samengebracht die toevallig een vrij geschift gevoel voor humor hebben. We komen dus goed overeen :-)

Misschien is het wel te verklaren doordat zo'n omgeving van virtuele werelden-in-een-wereld mensen aantrekt met een bepaalde mentaliteit.

Hoe belangrijk je werk ook is, of hoe ernstig de gevolgen ervan, je moet plezier maken. De wereld zou toch afschuwelijk zijn als je je niet zou kunnen amuseren met de dingen die je doet.

LF: Nog bijkomende opmerkingen, zestien maanden na de eerste vragen?

JD: Ik zou nog willen vermelden dat er nu een werkende x86_64 UML port is, die ik snel hoop uit te brengen.

Ook heb ik wat meer geschreven over wat er nieuw is in UML, en wat op stapel staat, in mijn dagboek [op de UML sourceforge site].

Conclusie

User Mode Linux is een welkgekomen toevoeging aan de Linux kernel die ideaal is voor het testen en demonstreren van toepassingen, kernels en distributies. Je kunt er ook flexibele 'virtual hosting' mee doen door de gebruikers hun 'eigen' virtuele Linux machine te geven met root-rechten, zonder het host systeem in gevaar te brengen.

Referenties