Tải bản đầy đủ (.pdf) (533 trang)

Prentice hall user mode linux apr 2006 ISBN 0131865056

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.23 MB, 533 trang )

UserModeLinux®
ByDikeJeff
...............................................
Publisher:PrenticeHall
PubDate:April12,2006
PrintISBN-10:0-13-186505-6
PrintISBN-13:978-0-13-186505-1
Pages:352

TableofContents|Index

WithUserModeLinuxyoucancreatevirtualLinuxmachineswithinaLinuxcomputerand
usethemtosafelytestanddebugapplications,networkservices,andevenkernels.You
cantryoutnewdistributions,experimentwithbuggysoftware,andeventestsecurity.
Now,forthefirsttime,thecreatorandmaintainerofUserModeLinuxshowshowtoputit
toworkhands-on.JeffDikecoverseverythingfromgettingstartedthroughrunning
enterprise-classUserModeLinuxservers.You'llfindauthoritativeadviceonbootup,
compilation,administration,specializedconfigurations,andmuchmore.
Coverageincludes
WhatUserModeLinuxis,howitworks,anditsusesinLinuxnetworks
Keyapplications,includingserverconsolidation,development,anddisasterrecovery
Bootingandexploration:logins,consoles,swapspace,partitioneddisks,andmore
Copy-On-Write(COW):UML'sefficientapproachtostoringfilesystemchanges
In-depthdiscussionofUserModeLinuxnetworkingandsecurity
CentrallymanagingUserModeLinuxinstances,andcontrollingtheirhardware
resources
Implementingclustersandotherspecializedconfigurations
SettingupUserModeLinuxservers,step-by-step:small-scaleandlarge-scale
examples
ThefutureofvirtualizationandUserModeLinux
Whetheryou'reanetadmin,sysadmin,teacher,student,orprogrammer,UserMode


Linux®--thetechnologyandthisbook--isindispensable.


UserModeLinux®
ByDikeJeff
...............................................
Publisher:PrenticeHall
PubDate:April12,2006
PrintISBN-10:0-13-186505-6
PrintISBN-13:978-0-13-186505-1
Pages:352

TableofContents|Index












































Copyright
BrucePerens'OpenSourceSeries
Preface
Acknowledgments

AbouttheAuthor
Chapter1.Introduction
WhatIsUML?
ComparisonwithOtherVirtualizationTechnologies
WhyVirtualMachines?
ABitofHistory
WhatIsUMLUsedFor?
TheFuture
Chapter2.AQuickLookatUML
BootingUMLfortheFirstTime
BootingUMLSuccessfully
LookingataUMLfromtheInsideandOutside
Conclusion
Chapter3.ExploringUML
LoggingInasaNormalUser
ConsolesandSerialLines
AddingSwapSpace
PartitionedDisks
UMLDisksasRawData
Networking













































































ShuttingDown
Chapter4.ASecondUMLInstance
COWFiles
NetworkingtheUMLInstances
AVirtualSerialLine
Chapter5.PlayingwithaUMLInstance
UseandAbuseofUMLBlockDevices
NetworkingandtheHost
Chapter6.UMLFilesystemManagement
MountingHostDirectorieswithinaUML
HostAccesstoUMLFilesystems
MakingBackups
ExtendingFilesystems
WhentoUseWhat
Chapter7.UMLNetworkinginDepth
ManuallySettingUpNetworking
TheUMLNetworkingTransports
AnExtendedExample
Chapter8.ManagingUMLInstancesfromtheHost
TheManagementConsole
ControllingaUMLInstancewithSignals
Chapter9.HostSetupforaSmallUMLServer
HostKernelVersion
UMLExecutionModes
ManagingLong-LivedUMLInstances
Networking

UMLPhysicalMemory
HostMemoryConsumption
umidDirectories
OverallRecommendations
Chapter10.LargeUMLServerManagement
Security
JailingUMLInstances
ProvidingConsoleAccessSecurely
skas3versusskas0
FutureEnhancements
FinalPoints
Chapter11.CompilingUMLfromSource
DownloadingUMLSource



















































Configuration
Compilation
Chapter12.SpecializedUMLConfigurations
LargeNumbersofDevices
Clusters
UMLasaDecision-MakingToolforHardware
Chapter13.TheFutureofUML
TheexternfsFilesystem
VirtualProcesses
CaptiveUML
VirtualizedSubsystems
Conclusion
AppendixA.UMLCommand-LineOptions
DeviceandHardwareSpecifications
DebuggingOptions
ManagementOptions
InformationalOptions
AppendixB.UMLUtilitiesReference
humfsify
uml_moo
uml_mconsole
tunctl
uml_switch
InternalUtilities
Index


Copyright

Manyofthedesignationsusedbymanufacturersandsellersto
distinguishtheirproductsareclaimedastrademarks.Where
thosedesignationsappearinthisbook,andthepublisherwas
awareofatrademarkclaim,thedesignationshavebeenprinted
withinitialcapitallettersorinallcapitals.
Theauthorandpublisherhavetakencareinthepreparationof
thisbook,butmakenoexpressedorimpliedwarrantyofany
kindandassumenoresponsibilityforerrorsoromissions.No
liabilityisassumedforincidentalorconsequentialdamagesin
connectionwithorarisingoutoftheuseoftheinformationor
programscontainedherein.
Thepublisheroffersexcellentdiscountsonthisbookwhen
orderedinquantityforbulkpurchasesorspecialsales,which
mayincludeelectronicversionsand/orcustomcoversand
contentparticulartoyourbusiness,traininggoals,marketing
focus,andbrandinginterests.Formoreinformation,please
contact:
U.S.CorporateandGovernmentSales
(800)382-3419

ForsalesoutsidetheUnitedStates,pleasecontact:
InternationalSales

VisitusontheWeb:www.prenhallprofessional.com
LibraryofCongressCataloging-in-PublicationData
Dike,Jeff.


UserModeLinux/JeffDike.
p.cm.

Includesbibliographicalreferencesandindex.
ISBN0-13-186505-6(pbk.:alk.paper)
1.Linux.2.Operatingsystems(Computers)3.Applicationsoftware
porting.I.Title.
QA76.76.O63D5452006
005.4'32--dc22
2006004225
Copyright©2006PearsonEducation,Inc.
Thismaterialmaybedistributedonlysubjecttothetermsand
conditionssetforthintheOpenPublicationLicense,v1.0or
later(thelatestversionispresentlyavailableat
/>TextprintedintheUnitedStatesonrecycledpaperatRR
DonnelleyinCrawfordsville,Indiana.
Firstprinting,April2006




BrucePerens'OpenSourceSeries
www.prenhallprofessional.com/perens
BrucePerens'OpenSourceSeriesisadefinitiveseriesof
booksonLinuxandopensourcetechnologies,writtenbymany
oftheworld'sleadingopensourceprofessionals.Itisalsoa
voiceforup-and-comingopensourceauthors.Eachbookinthe
seriesispublishedundertheOpenPublicationLicense
(www.opencontent.org),anopensourcecompatiblebook
license,whichmeansthatelectronicversionswillbemade
availableatnocostafterthebookshavebeeninprintforsix
months.
JavaTMApplicationDevelopmentonLinux®

CarlAlbingandMichaelSchwarz
C++GUIProgrammingwithQt3
JasminBlanchetteandMarkSummerfield
ManagingLinuxSystemswithWebmin:System
AdministrationandModuleDevelopment
JamieCameron
UnderstandingtheLinuxVirtualMemoryManager
MelGorman
PHP5PowerProgramming
AndiGutmans,StigBakken,andDerickRethans


Linux®QuickFixNotebook
PeterHarrison
ImplementingCIFS:TheCommonInternetFileSystem
ChristopherHertel
OpenSourceSecurityTools:APracticalGuidetoSecurity
Applications
TonyHowlett
ApacheJakartaCommons:ReusableJava™Components
WillIverson
Linux®PatchManagement:KeepingLinux®SystemsUpTo
Date
MichaelJang
EmbeddedSoftwareDevelopmentwitheCos
AnthonyMassa
RapidApplicationDevelopmentwithMozilla
NigelMcFarlane
SubversionVersionControl:UsingtheSubversionVersion
ControlSysteminDevelopmentProjects

WilliamNagel
IntrusionDetectionwithSNORT:AdvancedIDSTechniques


UsingSNORT,Apache,MySQL,PHP,andACID
RafeeqUrRehman
Cross-PlatformGUIProgrammingwithwxWidgets
JulianSmartandKevinHockwithStefanCsomor
Samba-3byExample,SecondEdition:PracticalExercisesto
SuccessfulDeployment
JohnH.Terpstra
TheOfficialSamba-3HOWTOandReferenceGuide,Second
Edition
JohnH.TerpstraandJelmerR.Vernooij,Editors
Self-ServiceLinux®:MasteringtheArtofProblem
Determination
MarkWildingandDanBehman


Preface
WhenIstartedtheUserModeLinux(UML)projectin1999,I
hadnoideahowlargeaprojectitwouldbecomeorhowmuch
ofmytimeitwouldendupconsuming.Astimewenton,the
UMLuserbasegrew,andpeoplefoundnewwaystouseit.Asa
resultoftheirrequests,UMLcontainsanumberoffeaturesthat
wouldneverhaveoccurredtome.
ThisbookconcentratesontheuseofUMLratherthanits
internalsorplansforthefuture.I'vetriedtomakeitaseasyas
possibletogetstartedwithUMLandputtogooduseallofthe
featuresmyusersinducedmetoadd.Ofcourse,Icouldn't

resistgoingintohowUMLworksandwhatIhaveplannedforits
future.Thatwouldbetoomuchtoaskofanydeveloperofany
project.Ihopethiscontentaddstothebookandthereaders'
understandingandappreciationofUML.




Acknowledgments
ItisnotmuchofanexaggerationtosaythattheUserMode
Linux(UML)projectwouldnotexistwithoutitsusers.They
providetesting,bugreports,andsuggestionsfor
improvements.Therefore,Iwouldfirstliketothankeveryone
whohasusedUMLfortakingpart,especiallythosewhohave
testedbleeding-edgeversionsandwhohaveprovidedfeedback,
goodorbad.IwouldespeciallyliketothankBillStearns,who
hassupportedUMLininnumerablewayssinceitsearlydays.
AnumberofpeoplehavemadecontributionstotheUMLcode
basebyfixingbugsorbycontributingnewfeatures.Some
importantfeatureswerecontributedbyuserswhosawaneed
andwrotethecode.Mythanksgoouttothem.Mostsignificant
arethecontributionsofPaoloGiarrusso,whohasbecomemy
right-handmanduringthelastyearorso.Hiscontributions
includebugfixesandfeatures,documentationandsupport,and
improvementstothehostsinordertoallowthemtobetter
supportUML.
TheUMLprojecthasbeensupportedfinanciallybyanumberof
organizations,someofwhomcontractedforspecific
improvements;othersprovidedmoregeneralsupport.Among
these,IwouldespeciallyliketothanktheDartmouthInstitute

forSecurityTechnologyStudies,whichsawinUMLthepotential
foranewandpowerfulsecuritytool.
ThanksalsogotoIntelCorporationforhiringmetoworkon
UMLfulltime,andespeciallyfortoleratingasignificantamount
ofthattimegoingtowardwritingthisbook.


AbouttheAuthor
JeffDikegrewupinruralnorthwestConnecticut.Hegraduated
fromMITandwenttoworkatDigitalEquipmentCorporationin
NewHampshire.Therehemetseveralpeoplewhobecame
prominentintheLinuxworld,includingJonHallandalarge
contingentthatnowworksatRedHat.JeffleftDigitalin1993
duringtheimplosionoftheminicomputermarket.Hespentthe
nextdecadeasanindependentcontractorandbecameaLinux
kerneldeveloperin1999afterconceivingofandimplementing
UML.Sincethen,UMLhasbeenhisjob,becomingafull-time
paidoneinmid-2004whenIntelhiredhim.




Chapter1.Introduction
WhatIsUML?
ComparisonwithOtherVirtualizationTechnologies
WhyVirtualMachines?
ABitofHistory
WhatIsUMLUsedFor?
TheFuture



WhatIsUML?
UserModeLinux(UML)isavirtualLinuxmachinethatrunson
Linux.Technically,UMLisaportofLinuxtoLinux.Linuxhas
beenportedtomanydifferentprocessors,includingthe
ubiquitousx86,Sun'sSPARC,IBMandMotorola'sPowerPC,
DEC's(thenCompaq'sandHP's)Alpha,andavarietyofothers.
UMLisaportofLinuxinexactlythesamesenseasthese.The
differenceisthatitisaporttothesoftwareinterfacedefinedby
Linuxratherthanthehardwareinterfacedefinedbythe
processorandtherestofthephysicalcomputer.
UMLhasmanifoldusesforsystemadministrators,users,and
developers.UMLvirtualmachinesareusefulfortest
environmentsthatcanbesetupquicklyandthrownawaywhen
nolongerneeded,productionenvironmentsthatefficientlyuse
theavailablehardware,developmentsetupsthatcanmakeit
muchmoreconvenienttotestsoftware,plusasurprising
numberofotherthings.


ComparisonwithOtherVirtualization
Technologies
UMLdiffersfromothervirtualizationtechnologiesinbeingmore
ofavirtualoperatingsystem(OS)ratherthanavirtual
machine.Inspiteofthis,Iwillsticktothecommonterminology
andcallUMLavirtualmachinetechnologyratherthanavirtual
OS,whichwouldbesomewhatmoreaccurate.
TechnologiessuchasVMWarereallyarevirtualmachines.They
emulateaphysicalplatform,fromtheCPUtotheperipherals,
wellenoughthatanyOSthatrunsonthephysicalplatformalso

runsontheemulatedplatformprovidedbyVMWare.Thishas
theadvantagethatitisfairlyOS-agnosticinprinciple,anyOS
thatrunsontheplatformcanbootunderVMWare.Incontrast,
UMLcanbeonlyaLinuxguest.Ontheotherhand,beinga
virtualOSratherthanavirtualmachineallowsUMLtointeract
morefullywiththehostOS,whichhasadvantageswewillsee
later.
OthervirtualizationtechnologiessuchasXen,BSDjail,Solaris
zones,andchrootareintegratedintothehostOS,asopposedto
UML,whichrunsinaprocess.ThisgivesUMLtheadvantageof
beingindependentfromthehostOSversion,atthecostof
someperformance.However,alot(maybeall)ofthis
performancecanberegainedwithoutlosingtheflexibilityand
manageabilitythatUMLgainsfrombeinginuserspace.
Aswewillseelater,thebenefitsofvirtualizationaccruelargely
fromthedegreeofisolationbetweenusersandprocessesinside
thevirtualmachineorjailandthoseoutsideit.Mostofthese
technologies(excludingXenandVMWare)provideonlypartial
virtualizationand,thus,partialisolation.
Theleastcompletevirtualizationisprovidedbychroot,which
onlyjailsprocessesintoadirectory.Inallotherrespects,the


processesareunconfined.Eventhen,onLinux,chrootcan't
confineaprocesswithrootprivileges,sinceitsdesignallows
superuserprocessestoescape.
BSDjailandvserver(aLinux-basedprojectwithroughlythe
sameproperties)providestrongerconfinement.Theyconfine
processestoasubsetofthefilesystemanddon'tallowthemto
seeprocessesoutsidethejail.Ajailisalsorestrictedtousinga

singleIPaddress,anditcan'tmanipulateitsfirewallrules.
JailedprocessesarenotrestrictedintheiruseofCPUtimeor
I/O.Thejailsonasystemareimplementedwithinthesystem's
kernelandthereforesharethekernel,alongwiththebugsand
securityholesitcontains.Theinabilitytochangefirewallrules
isaconsequenceofincompletevirtualization,asisthe
requirementtosharethekernelwiththehost.
Solariszonesaremuchclosertofull-blownvirtualmachinesand
completeisolation.Processeswithinazonecan'tseeoutside
filesorprocesses,asisthecasewithajail.Zoneshavetheir
ownlogicaldevices,withsomerestrictionsontheiraccessto
thenetwork.Forexample,rawaccesstopacketsisn'tallowed.
Azonecanbeassignedacertainnumberofshareswithinthe
globalfairsharescheduler,limitingtheshareofCPUthatthe
processeswithinazonecanconsume.Wewillseethisconcept
laterintheformofvirtualprocessorsinamultiprocessorvirtual
machine.Zones,liketheothertechnologiesdescribedsofar,
areimplementedwithinthekernelandsharethekernelversion
andconfigurationwitheachotherandthehost.
Finally,technologiessuchasVMWare,Xen,andUMLimplement
fullvirtualizationandisolation.Theyallhavefullyvirtualized
deviceswithnorestrictionsonhowtheymaybeused.They
alsoconfinetheirprocesseswithrespecttoCPUconsumptionby
virtueofhavingacertainnumberofvirtualprocessorsthey
mayuse.TheyalsoallrunseparateinstancesoftheOS,which
maybedifferentversions(andevenacompletelydifferentOS
inthecaseofVMWare)thanthehost.


WhyVirtualMachines?

AUMLinstanceisafull-fledgedLinuxmachinerunningonthe
hostLinux.Itrunsallthesoftwareandservicesthatanyother
Linuxmachinedoes.ThedifferenceisthatUMLinstancescan
beconjuredupondemandandthenthrownawaywhennot
needed.Thisadvantageliesbehindthelargerangeof
applicationsthatIandotherpeoplehavefoundforUML.
Inadditiontotheflexibilityofbeingabletocreateanddestroy
virtualmachineswithinseconds,theinstancesthemselvescan
bedynamicallyreconfigured.Virtualperipherals,processors,
andmemorycanbeaddedandremovedarbitrarilytoandfrom
arunningUMLinstance.
Therearealsomuchlooserlimitsonhardwareconfigurations
forUMLinstancesthanforphysicalmachines.Inparticular,they
arenotlimitedtothehardwaretheyarerunningon.AUML
instancemayhavemorememory,moreprocessors,andmore
networkinterfaces,disks,andotherdevicesthanitshost,or
evenanypossiblehost.Thismakesitpossibletotestsoftware
forhardwareyoudon'town,buthavetosupport,orto
configuresoftwareforanetworkbeforethenetworkis
available.
Inthisbook,IwilldescribethemanyusesofUMLandprovide
step-by-stepinstructionsforusingit.Indoingso,Iwillprovide
you,thereader,withtheinformationandtechniquesneededto
makefulluseofUML.Astheoriginalauthorandcurrent
maintainerofUML,IhaveseenUMLmaturefromitsdecidedly
cheesybeginningstoitscurrentstatewhereitcandobasically
everythingthatanyotherLinuxmachinecando(seeTable1.1).
Table1.1.UMLDevelopmentTimeline
Date


Even


Late1998toearly1999

IthinkaboutwhetherUMLis
possible.

Feb.1999

IstartworkingonUML.

June3,1999

UMLisannouncedtotheLinux
kernelmailinglist.

Sept.12,2002

UMLismergedinto2.5.34.

June21,2004

IjoinIntel.


ABitofHistory
IstartedworkingonUMLinearnestinFebruary1999after
havingtheideathatportingLinuxtoitselfmightbepractical.I
tossedtheideaaroundinthebackofmyheadforafewmonths

inlate1998andearly1999.Iwasthinkingaboutwhatfacilities
itwouldneedfromthehostandwhetherthesystemcall
interfaceprovidedbyLinuxwasrichenoughtoprovidethose
facilities.Ultimately,Idecideditprobablywas,andinthecases
whereIwasn'tsure,Icouldthinkofworkarounds.
So,aroundFebruary,Ipulledacopyofthe2.0.32kerneltree
offofaLinuxCD(probablyaRedHatsourceCD)becauseit
wastoopainfultotrytodownloaditthroughmydialup.Within
theresultingkerneltree,Icreatedthedirectoriesmynewport
wasgoingtoneedwithoutputtinganyfilesinthem.Thisisthe
absoluteminimumamountofinfrastructureyouneedforanew
port.Withthedirectoriespresent,thekernelbuildprocesscan
descendintothemandtrytobuildwhat'sthere.
Needlesstosay,withnothinginthosedirectories,thebuild
didn'tevenstarttowork.Ineededtoaddthenecessarybuild
infrastructure,suchasMakefiles.So,Iaddedtheminimalsetof
thingsneededtogetthekernelbuildtocontinueandlookedat
whatfailednext.Missingwereanumberofheaderfilesusedby
thegeneric(hardware-independent)portionsofthekernelthat
theportneedstoprovide.Icreatedthemasemptyfiles,so
thatthe#includepreprocessordirectiveswouldatleastsucceed,
andproceededonward.
Atthispoint,thekernelbuildstartedcomplainingaboutmissing
macros,variables,andfunctionsthethingsthatshouldhave
beenpresentinmyemptyheaderfilesandnonexistentC
sourcefiles.ThistoldmewhatIneededtothinkabout
implementing.Ididsointhesamewayasbefore:Forthemost
part,Iimplementedthefunctionsasstubsthatdidn'tdo



anythingexceptprintanerrormessage.Ialsostartedadding
realheaders,mostlybycopyingthex86headersintomyinclude
directoryandremovingthethingsthathadnochanceof
compiling.
Afterdefiningmanyoftheseuselessprocedures,IgottheUML
buildto"succeed."Itsucceededinthesensethatitproduceda
programIcouldrun.However,runningitcausedimmediate
failuresduetothelargenumberofproceduresIdefinedthat
didn'tdowhattheyweresupposedtotheydidnothingatall
exceptprinterrors.Theutilityoftheseerrorsisthattheytold
meinwhatorderIhadtoimplementthesethingsforreal.
So,forthemostpart,Iploddedalong,implementingwhatever
functionprinteditsnamefirst,makingsmallincrementsof
progressthroughthebootprocesswitheachaddition.Insome
cases,Ineededtoimplementasubsystem,resultingina
relatedsetoffunctions.
Implementationcontinuedinthisveinforafewmonths,
interruptedbyaboutamonthofreal,payingwork.Inearly
June,IgotUMLtobootasmallfilesystemuptoaloginprompt,
atwhichpointIcouldloginandruncommands.Thismay
soundimpressive,butUMLwasstillbug-riddenandfullof
designmistakes.Thesewouldberootedoutlater,butatthe
time,UMLwasnotmuchmorethanaproofofconcept.
Becauseofdesigndecisionsmadeearlier,suchfundamental
thingsassharedlibrariesandtheabilitytologinonthemain
consoledidn'twork.Iworkedaroundthefirstproblemby
compilingaminimalsetoftoolsstatically,sotheydidn'tneed
sharedlibraries.ThisminimalsetoftoolswaswhatIpopulated
myfirstUMLfilesystemwith.Atthetimeofmyannouncement,
Imadethisfilesystemavailablefordownloadsinceitwasthe

onlywayanyoneelsewasgoingtogetUMLtoboot.
Becauseofanotherdesigndecision,UML,ineffect,putitselfin
thebackground,makingitimpossibleforittoacceptinputfrom


theterminal.Thisbecameaproblemwhenyoutriedtologin.I
workedaroundthisbywritingwhatamountedtoaserialline
driver,allowingmetoattachtoavirtualseriallineonwhichI
couldlogin.
Thesearetwoofthemostglaringexamplesofwhatdidn'twork
atthatpoint.Thefulllistwasmuchlongerandincludedother
thingssuchassignaldeliveryandprocesspreemption.They
didn'tpreventUMLfromworkingconvincingly,eventhough
theywerefairlyfundamentalproblems,andtheywouldget
fixedlater.
Atthetime,Linuswasjuststartingthe2.3developmentkernel
series.Myfirst"UML-ized"kernelwas2.0.32,which,evenat
thetime,wasfairlyold.So,Ibitthebulletanddownloadeda
"modern"kernel,whichwas2.3.5orso.Thisstartedthe
process,whichcontinuestothisday,ofkeepinginclosetouch
withthecurrentdevelopmentkernels(andasof2.4.0,the
stableonesaswell).
Developmentcontinued,withbugsbeingfixed,designmistakes
rectified(andlargepiecesofcoderewrittenfromscratch),and
driversandfilesystemsadded.UMLspentalongerthanusual
amountoftimebeingdevelopedoutofpool,thatis,not
integratedintothemainlineLinus'kerneltree.Inpart,thiswas
duetolaziness.Iwascomfortablewiththedevelopment
methodologyIhadfallenintoanddidn'tseemuchpointin
changingit.

However,pressuremountedfromvarioussourcestogetUML
intothemainkerneltree.Manypeoplewantedtobeableto
buildUMLfromthekerneltreetheydownloadedfrom
.orgotwiththeirdistribution.Others,
wantingthebestfortheUMLproject,sawinclusioninLinus'
kernelasbeingawayofgettingsomepublicrecognitionorasa
stampofapprovalfromLinus,thusattractingmoreusersto
UML.Morepragmatically,somepeople,whowerelargely
developers,notedthatinclusionintheofficialkernelwould


causeupdatesandbugfixestohappeninUML"automatically."
Thiswouldhappenassomeonemadeapassoverthekernel
sources,forexample,tochangeaninterfaceorfixafamilyof
bugs,andwouldcoverUMLaspartofthatpass.Thiswould
savemetheeffortoflookingthroughthepatchrepresentinga
newkernelrelease,findingthosechanges,figuringoutthe
equivalentchangesneededinUML,andmakingthem.Thishad
becomemyhabitovertheroughlyfouryearsofUML
developmentbeforeitwasmergedbyLinus.Ithadbecomea
routinepartofUMLdevelopment,soIdidn'tbegrudgethetime
ittook,butthereisnodenyingthatitdidtaketimethatwould
havebeenbetterspentonotherthings.
So,roughlyinthespringof2002,Istartedsendingupdated
UMLpatchestoLinus,requestingthattheybemerged.These
wereignoredforsomemonths,andIwasstartingtofeelabit
discouraged,whenoutoftheblue,hemergedmy2.5.34patch
onSeptember12,2002.IhadsentthepatchearliertoLinusas
wellasthekernelmailinglistandoneofmyownUMLlists,as
usual,andhadnotthoughtaboutitfurther.Thatday,Iwas

idlingonanInternetRelayChat(IRC)channelwhereagood
numberofthekerneldevelopershangaroundandtalk.
Suddenly,ArnaldoCarvalhodeMelo(akernelcontributorfrom
BrazilandtheCTOofConectiva,thelargestLinuxdistributionin
SouthAmerica)noticedthatLinushadmergedmypatchinto
histree.
Theresponsetothisfromtheotherkernelhackers,andalittle
later,fromtheUMLcommunityandwiderLinuxcommunity,was
gratifyingpositive.Asurprisingly(tome)largenumberof
peopleweregenuinelyhappythatUMLhadbeenmerged,and,
indoingso,gottherecognitiontheythoughtitdeserved.
Atthiswriting,itisthreeyearslater,andUMLisstillundervery
activedevelopment.Therehavebeenupsanddowns.Some
monthsafterUMLwasmerged,Istartedfindingithardtoget
Linustoacceptupdatedpatches.Afteranumberofignored
patches,IstartedmaintainingUMLoutoftreeagain,withthe


effectthatthein-treeversionofUMLstartedtobit-rot.It
stoppedcompilingbecausenoonewaskeepingituptodate
withchangestointernalkernelinterfaces,andofcoursebugs
stoppedbeingfixedbecausemyfixesweren'tbeingmergedby
Linus.
Latein2004,anenergeticyoungItalianhackernamedPaolo
GiarrussogotAndrewMorton,Linus'second-in-command,to
includeUMLinhistree.Theso-called"-mm"treeisasortof
purgatoryforkernelpatches.Andrewmergespatchesthatmay
ormaynotbesuitableforLinus'kernelinordertogivethem
somewiderexposureandseeiftheyaresuitable.Andrewtook
patchesrepresentingthecurrentUMLatthetimefromPaolo,

andIfollowedthatupwithsomemorepatches.Presently,
Andrewforwardedthosepatches,alongwithmanyothers,to
Linus,whoincludedtheminhistree.Allofasudden,UMLwas
uptodateintheofficialkerneltree,andIhadareliableconduit
forUMLupdates.
Ifedasteadystreamofpatchesthroughthisconduit,andby
thetimeofthe2.6.9release,youcouldbuildaworkingUML
fromtheofficialtree,anditwasreasonablyuptodate.
Throughoutthisperiod,IhadbeenworkingonUMLona
volunteerbasis.Itookenoughcontractingworktokeepthe
billspaidandthecatsfed.Primarily,thiswasspendingadaya
weekattheInstituteforSecurityTechnologyStudiesat
DartmouthCollege,innorthernNewHampshire,aboutanhour
frommyhouse.ThischangedaroundMayandJuneof2004,
when,nearlysimultaneously,IgotjoboffersfromRedHatand
Intel.Bothwereverygenerous,offeringtohavemespendmy
timeonUML,withnorequirementstomove.Iultimately
acceptedIntel'sofferandhavebeenanIntelemployeeinthe
LinuxOSgroupsince.
Coincidentally,thejobofferscameonthefifthanniversaryof
UML'sfirstpublicannouncement.So,infiveyears,UMLwent
fromnothingtoafullysupportedpartoftheofficialLinux


kernel.




WhatIsUMLUsedFor?

DuringthefiveyearssinceUMLbegan,Ihaveseensteady
growthintheUMLuserbaseandinthenumberandvarietyof
applicationsandusesforUML.Myusershavebeennothingif
notinventive,andIhaveseenusesforUMLthatIwouldnever
havethoughtof.

ServerConsolidation
Naturally,themostcommonapplicationsofUMLarethe
obviousones.Virtualizationhasbecomeahotareaofthe
computerindustry,andUMLisbeingusedforthesamethings
asothervirtualizationtechnologies.Serverconsolidationisa
majorone,bothinternallywithinorganizationsandexternally
betweenthem.Internalconsolidationusuallytakestheformof
movingseveralphysicalserversintothesamenumberofvirtual
machinesrunningonasinglephysicalhost.External
consolidationisusuallyanISPorhostingcompanyofferingto
rentUMLinstancestothepublicjustastheyrentphysical
servers.Here,multipleorganizationsendupsharingphysical
hardwarewitheachother.
Themainattractioniscostsavings.Computerhardwarehas
becomesopowerfulandsocheapthattheoldmodelofone
service,ormaybetwo,permachinenowresultsinhardware
thatisalmosttotallyidle.Thereisnotechnicalreasonthat
manyservices,andtheirdataandconfigurations,couldn'tbe
copiedontoasingleserver.However,itiseasierinmanycases
tocopyeachentireserverintoavirtualmachineandrunthem
allunchangedonasinglehost.Itislessriskysincethe
configurationofeachisthesameasonthephysicalserver,so
movingitposesnochanceofupsettinganalready-debugged
environment.



×