The complete email conversation with Jeff Dike

To: floris.lambrechts@...
Subject: Re: UML: interview request (LinuxFocus.org) 
Date: Fri, 03 Jan 2003 12:22:20 -0500
From: Jeff Dike <jdike@...>

f.lambrechts@... said:
> So, here are some questions
>   * good idea?

Sounds good to me :-)

>   * are you prepared to do en email-interview?

Sure.

>   * or can you suggest other ppl to do one?

If you want to talk to people doing interesting things with UML, I can point
you to some of them.

>   * or is it better that I join the mailing list
>     and fire my questions there? 

An email interview is fine with me.

				Jeff

--------------------------------------------------------------------
From: f.lambrechts@...
To: Jeff Dike <jdike@...>
Subject: Re: UML: interfview request (LinuxFocus.org)
Date: Fri, 03 Jan 2003 13:09:55 -0700

Jeff Dike writes: 

> f.lambrechts@... said:
>> So, here are some questions
>>   * good idea?

> Sounds good to me :-)
 

>>   * are you prepared to do en email-interview?

> Sure.
 

>>   * or can you suggest other ppl to do one?

> If you want to talk to people doing interesting things with UML, I can
> point
> you to some of them.

Maybe later, when I have a better picture of the whole thing. 

>>   * or is it better that I join the mailing list
>>     and fire my questions there? 

> An email interview is fine with me. 
> 
> 				Jeff
 

OK, thanks for that.
We can start right away and see where we get...
As I said before I'm not in a hurry!
Please note that this is my first interview (don't worry, if I produce crap 
you can deny publication at any time ;).
Probably I'll give UML a try before we publish this thing... 

Pick out any questions you like, or answer them all...
This is just to get started, all the questions that came up in my head - if 
anything is obvious FAQ or RTFM material, please point me to the appropriate 
resources. 

Q 01.
So, apprently you are Jeff Dike, 'The guy in charge' of the UML project.  If 
you want, please give the readers a short introduction of yourself. 

Q 02.
By skimming through the website ( http://user-mode-linux.sourceforge.net/ ), 
my basic understainding of the concept is that UML is a Linux kernel that 
runs on another 'hosting' kernel.  Therfore, the UML kernel lives in 
userspace, and provides 'virtual' hardware to whatever that is running under 
it.  Is this correct? 

Q 03.
How happy are you that UML is in the official Linux tree? 

Q 04.
Since UML lives in user space, can you run it as non-root? Can you chroot 
it? (sorry if these are stupid questions) 

Q 05.
There is a 2.4 and a new 2.5 series of UML. Can you run the 2.5 UML on a 2.4 
host kernel, and vice versa? 

Q 06.
The Bochs IA-32 emulation project emulates the x86 instructions on other 
platforms. I assume UML doesn't do this... And it doesn't have to emulate a 
whole system, like VMware does.   As a result, is it faster than these two 
systems.  How fast is it, how much resourced does it use (can you run it on 
a 468 with 8 MB ram for light uses?) 

Q 07.
It seems that UML is ideal: you can test buggy software as much as you like, 
but it will never do any harm to your system.  But can you have both 
advantages at the same time: AND do everyting you want to do AND never 
endanger your system? I.e.: is ther a trade-off between flexibility and 
security? 

Q 08.
A nice thing to try out would be to run UML inside a UML inside a normal 
system. Can you do that and if so, what is the record in daisy-chaining 
UMLs? 

Q 09.
Did you steal the idea of IBM's AIX OS, that also has virtual server 
capability? 

Q 10.
I read on http://uml.openconsultancy.com/paper.php that "UML isn't suitable 
for high-end hosting". Will it move up to the higher end now that it will be 
in Linux 2.6? 

Q 11.
You guys seem to have a lot of fun. One example is the , "The Sysadmin 
Disaster of the Month" on UML boxes,
another one is this quote: "UML for fun and profit / Well, forget about the 
profit part" (http://uml.openconsultancy.com/ ).  On the other hand, the 
practice of setting up virtual servers and renting them is very interesting 
for enterprises, and the
development of kernel extensions is a serious thing.  Is it a thin line 
between toy and too, or are you guys just of the humurous type ;-) ? 

Q 12.
If e.g. Cygwin (Unix-environment for Windows platforms) would like to port 
UML to run on windows, how much work do they have to do?
I heard that in theory it should be possible to run UML on other 
platforms... 

Q 13.
How irritating is it that the Unified Modeling Language uses the same three 
letters (being UML)? 

Thanks a lot...
regards
floris 

PS
By the way, LinuxFocus.org being multi-lingual, you will have your interview 
translated into Dutch, French, German, Russian, Spanish, Turkish, Chinese, 
and possibly Portuguese, Italian and Polish :-)

----------------------------------------------------------------------
From jdike@... Sat Jan  4 03:55:02 2003
To: f.lambrechts@...
Subject: Re: UML: interfview request (LinuxFocus.org) 
Date: Fri, 03 Jan 2003 21:55:02 -0500
From: Jeff Dike <jdike@...>

> Please note that this is my first interview (don't worry, if I produce
> crap  you can deny publication at any time ;). 

It would be nice to see the interview before publication, to correct any
factual errors.  I would have no intention of trying to change whatever
opinions or impressions you may express as part of it.

> Probably I'll give UML
> a try before we publish this thing...  

Yeah, that would be a good plan.

The answers are below.

				Jeff


> Q 01. So, apprently you are Jeff Dike, 'The guy in charge' of the UML
> project.  If  you want, please give the readers a short introduction
> of yourself. 

Yes, you have found me...

OK, here is a short blurb from Bill Stearns, who is my official biographer:

	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.

> Q 02. By skimming through the website ( http://user-mode-linux.sourcefo
> rge.net/ ),  my basic understainding of the concept is that UML is a
> Linux kernel that  runs on another 'hosting' kernel.  Therfore, the
> UML kernel lives in  userspace, and provides 'virtual' hardware to
> whatever that is running under  it.  Is this correct? 

Yes.  UML treats a Linux system as a platform that Linux may possibly be
ported to, exactly analogous to looking at a bare x86 or ppc machine and
considering porting Linux to it.  Of course, Linux as a platform
to run an OS on is very different from a hardware platform, and one of the
things that UML proved by its existence is that the Linux system call 
interface is rich enough that an OS can be implemented in terms of it.

UML's hardware is virtual, in the sense that it accesses all outside
resources through the host kernel.  Normally this means that the devices seen
by a UML instance are really virtual, i.e. a "disk" which is really a file
on the host.  However, you can assign a physical disk, partition, CD-ROM,
or floppy to a UML block device by way of the device file, and the UML will
be able to access the data on it.  However, it will not be able to issue
low-level commands to the device in the same way that the driver in the
host kernel does.

However, there has been some work in this area, with a patch recently posted
which claims (I haven't looked at it yet) to allow stock PCI device drivers
to be built into UML and drive the appropriate physical devices.

> Q 03. How happy are you that UML is in the official Linux tree? 

Technically, it's not a big deal.  I had been maintaining UML out of the
tree for more than three years (and I am continuing to maintain the 2.4 UML
out of tree), and it would not have been a problem to continue doing so.

The recognition that it brought was nice.  When Linus merged UML into 2.5,
the world saw that UML was worthwhile (and a good part of the world became
aware of UML for the first time).  This "stamp of approval" is probably the
most significant aspect of having UML in the Linus tree, as far as I'm
concerned.  It now can't be dismissed as a loony kernel patch on the
fringes of respectable kernel development.

> Q 04. Since UML lives in user space, can you run it as non-root? Can
> you chroot  it? (sorry if these are stupid questions) 

Yes, and yes.  In fact, I highly discourage running it as root, not because
there's any great danger to it, but because it is totally pointless.  
Some users have some problem getting used to the idea that they can run UML
as a normal user and then become root inside the UML with all the privileges
that come with it.  They think they need to run UML as root, so very 
emphatically telling them that's not necessary, and having them find out
that it's true is something of a learning experience for them.  I'm also
gratified that this attitude has taken hold in the UML user community - I
hardly ever have to do this re-education any more; other users now do it
for me.

It can be chrooted, and that is recommended procedure for people who are
using UML to contain possibly hostile software or users, as an extra layer
of protection to the host in the event that someone finds a way of breaking
out.

> Q 05. There is a 2.4 and a new 2.5 series of UML. Can you run the 2.5
> UML on a 2.4  host kernel, and vice versa? 

There are basically no dependencies between the host kernel version and
the UML kernel version.  As long as the host can run UML at all, it can run
any version of UML.

> Q 06. The Bochs IA-32 emulation project emulates the x86 instructions
> on other  platforms. I assume UML doesn't do this... And it doesn't
> have to emulate a  whole system, like VMware does.   As a result, is
> it faster than these two  systems.  How fast is it, how much resourced
> does it use (can you run it on  a 468 with 8 MB ram for light uses?) 

UML is much faster than Bochs, precisely because there is no instruction
emulation.

From what I hear, UML performance is on a par with VMWare when running it
in its new skas mode.  UML is lighter-weight than VMWare, so you can get
more UML instances than VMWare instances running on a given host.  UML has
a slimmer architecture, since it doesn't have to emulate the physical machine,
and once it has had the same amount of tuning effort that VMWare has, I
would expect it to be noticably faster.

I'd imagine you could run it on a 8M 486.  I know of people using UML on
Pentiums (and the first year of UML development was done on a P66).  
Obviously, you should not expect blazing speed on such a host...

> Q 07. It seems that UML is ideal: you can test buggy software as much
> as you like,  but it will never do any harm to your system.  But can
> you have both  advantages at the same time: AND do everyting you want
> to do AND never  endanger your system? I.e.: is ther a trade-off
> between flexibility and  security?

As far as I understand the question, there is no trade-off between the
two.  This may depend on what you're doing.  If the buggy software requires
access to hardware, and you provide it that access, then the software can
possibly mess up the hardware.

If you're testing buggy network software, and you give it access to your
real network, then it may possibly mess up the network.

On the other hand, there is hardly anything that requires access to physical
hardware or the real network.  You can test practically anything with
virtual resources, i.e. test a new filesystem on a virtual disk, or 
investigate a worm on a virtual network.

> Q 08. A nice thing to try out would be to run UML inside a UML inside
> a normal  system. Can you do that and if so, what is the record in
> daisy-chaining  UMLs? 

Nesting works.  I've only ever done one level of nesting.

BTW, this is not the stupid kernel trick that it may at first seem to be.
It has been very useful to me in UML development.  The recent development
of skas mode, which allows the UML kernel to run in a separate address space
from its processes, is a good example.  This needs host functionality which
isn't in the standard kernel.  I developed this host support inside UML,
then used that UML to host the UML that used the support.  Only after
this was all debugged did I port the host support to the i386 kernel.

> Q 09. Did you steal the idea of IBM's AIX OS, that also has virtual
> server  capability? 

No.  I think that's impossible anyway because I don't believe that AIX can
host itself.  You are possibly thinking of z-OS (the OS formerly known as
VM), which I also didn't steal the idea from.

The idea occurred to me independently, as a way of making kernel development
easier.

> Q 10. I read on http://uml.openconsultancy.com/paper.php that "UML
> isn't suitable  for high-end hosting". Will it move up to the higher
> end now that it will be  in Linux 2.6? 

UML being in 2.6 doesn't really have much to do with it.  I believe that
David is referring to SMP and large memory support.  When that paper was
written, UML didn't support SMP or highmem.  Now it does, although both of
those capabilities need to mature some before people should feel comfortable
offering large-memory SMP UMLs to their hosting customers.

> Q 11. You guys seem to have a lot of fun. One example is the , "The
> Sysadmin  Disaster of the Month" on UML boxes, another one is this
> quote: "UML for fun and profit / Well, forget about the  profit part"
> (http://uml.openconsultancy.com/ ).  On the other hand, the  practice
> of setting up virtual servers and renting them is very interesting
> for enterprises, and the development of kernel extensions is a serious
> thing.  Is it a thin line  between toy and too, or are you guys just
> of the humurous type ;-) ? 

I think it is the latter.  UML has brought together a bunch of people who
happen to have somewhat whacked senses of humor, so, of course, we get
along fine :-)

It may also be that this virtualized world of universes inside universes
attracts people with a certain mentality, and that could explain some of the
humor floating around.

No matter how serious what we're doing is, or how serious the implications
and uses of it are, you gotta have fun.  It would be a very dreary world if
you're not allowed to let what you're doing amuse you somehow.

> Q 12. If e.g. Cygwin (Unix-environment for Windows platforms) would
> like to port  UML to run on windows, how much work do they have to do?
> I heard that in theory it should be possible to run UML on other
> platforms... 

This has been (mostly) done twice.  The most recent effort apparently
required about a week of hacking.  The older one (http://umlwin32.sf.net)
has been ongoing in peoples' spare time over a period of months, so it's
hard to say how much continuous effort it represents.

And I would just like to say that it would be nice for one of these ports
to be finished and debugged.  There is a great deal of demand and interest
in UML running on Windows.

> Q 13. How irritating is it that the Unified Modeling Language uses the
> same three  letters (being UML)?  

Not at all.  Acronym clashes are a way of life.  The other UML and my UML
have nothing whatsoever to do with each other, so it's hard to imagine people
mistaking one for the other.

I'd like to add a couple of pointers to UML resources -
	usermodelinux.org is a portal devoted to UML that's run by David
Coulson
	the #uml IRC channel on irc.usermodelinux.org (which is oftc.net)
for UML-related chat, questions, etc.

-------------------------------------------------------------------------
To: floris.lambrechts@...
Subject: Re: LinuxFocus.org UML interview follow-up questions 
Date: Fri, 10 Jan 2003 23:39:12 -0500
From: Jeff Dike <jdike@...>

> Q 01b. Are you working on UML (semi)professionally, or is it just a
> hobby?

It's a hobby more or less.  I have received a good amount of support from
Dartmouth ISTS (www.ists.dartmouth.edu) for honeypot-related UML work.  I've
also had occasional support from companies which wanted features added or
bugs fixed.

> Q 14. You mentioned the new 'skas' architecture and the fact that UML
> can  become much faster with some tuning effort.  Are you tuning it
> right now,  or instead focusing on new functionality?

Right now, I'm focusing on stability.  The skas merge was a large change,
and it closely followed the SMP and highmem work.  These were all somewhat
destabilizing because they were fairly intrusive.  At this point, people
are saying that it's about as stable as it was before all this work, and
that is pretty good.

In the medium-term, I'm going to do a few larger-scale changes such as
	kernel UML and libUML.so (described in my paper at opensourcedigest.org)
	doing block I/O with mmap rather than read/write
	swsusp
	merging the hardware device driver code that was recently published

And there are a good number of smaller additions in the works as well.

For the foreseeable future, I'm not that concerned with performance.  With the
skas work, it performs quite well, so that will be a low-priority item for
a while.

> Q 15. Is UML equally mature on non-x86 platforms? How does it run on,
> say, MIPS or PPC?

No, and it doesn't.  There was a ppc port that was nearly fully functional
at one point, but it stopped being maintained, and has bitrotted.  Ports
are certainly possible, and shouldn't be that hard.  I'd like to see some,
especially if they will be maintained.

> Q 16. How much use has UML seen in production environments, i.e. is it
> already  used to run businesses like hosting services?

I know of a few hosting services which are using UML.  There are also some
commercial uses that you might not think of at first -
	server consolidation - I've heard of a good number of example of this.
In one case, someone mentioned that their company had several hundred UML
instances running.  He didn't say that they were used as part of a server
consolidation effort, but that would be my guess.
	online training - there are education companies offering Linux
sysadmin courses which use UMLs rather than physical boxes.

> Q 17. UML is a new concept for sysadmins, an unexplored area. Are the
> UML management tools (like the umld) alrady mature enough - are they
> effective at handling the new problems UML brings to sysadmins? (=> to
> put it another way: UML solves some problems, and brings in some new
> ones.  Can you handle these new problems effectively, or is it still a
>  nightmare to support 10 UMLs on one box?)

This would be a question to ask Bill Stearns or David Coulson.  I try
to deal strictly with the kernel and leave management tools to other people.
However, I have seen these tools in action, and they do simplify setting up,
running, and managing UMLs.  For example, you can set up a UML though the 
UMLd web interface and have a new UML running within ~30 seconds of submitting
the form.

So, the overall answer is that the existing management tools make dealing with
lots of UMLs fairly easy.  No doubt it can be improved further, but the tools
are off to a good start.

> Q 18. What about app support? Would you like to see new functionality
> in  applications like Apache or BIND to make them easier to manage in
> a UML  setup?

Not really.  A UML instance is just a normal Linux box.  The functionality
that's specific to UML is available without needing special application
support.

> Q 19. Linux Cd-distros like Knoppix or Movix are often used to 'demo'
> linux  applications (like a new KDE, a movie player, a new 3D-game),
> but they  require you to reboot the system.  Do you see a good
> potential for UML in  the demo area - without reboots? 

I haven't heard of UML being used to demo apps, specifically.  What I have
heard of is UML being used as a medium to ship a pre-configured application.
This has been done with the intent that the app will be used, not demoed 
necessarily.  The earliest example of this that I heard of is Sapan Bhatia
shipping a preconfigured ARM kernel cross-development environment.  This is
apparently a pain to set up, so he just set up a UML filesystem with everything
all set to go.  Another example is the use of UML as a preconfigured network
sensor.  You install snort or a similar tool inside a UML filesystem, boot
a UML on it, and it automatically goes to work.

Also, demoing entire distributions has been a major use of UML since its 
introduction.  This is a great way of playing with new distributions.  I've 
become a major fan of Debian strictly through using it as my UML filesystem of 
choice - I've never installed it on hardware.  And I know several other people
who have had similar experiences.

------------------------------------------------------------------------
From: f.lambrechts@...
To: Jeff Dike <jdike@...>
Subject: Re: LinuxFocus.org UML interview follow-up questions
Date: Sat, 11 Jan 2003 01:33:41 -0700


Jeff Dike writes: 

>> Q 15. Is UML equally mature on non-x86 platforms? How does it run on,
>> say, MIPS or PPC?

> No, and it doesn't.  There was a ppc port that was nearly fully functional
> at one point, but it stopped being maintained, and has bitrotted.  Ports
> are certainly possible, and shouldn't be that hard.  I'd like to see some,
> especially if they will be maintained.

W 15b. So untile someone picks up that work, it is an official part of 
Linus' kernel that is not yet ported? 


>> Q 17. UML is a new concept for sysadmins, an unexplored area. Are the
>> UML management tools (like the umld) alrady mature enough - are they
>> effective at handling the new problems UML brings to sysadmins? (=> to
>> put it another way: UML solves some problems, and brings in some new
>> ones.  Can you handle these new problems effectively, or is it still a
>>  nightmare to support 10 UMLs on one box?)

> This would be a question to ask Bill Stearns or David Coulson.

I'll try to get in touch with them for a quick description of their work. 

I think this should be enough material for one article...
Maybe I'll have some additionol questions when I finish it (that is *at 
least* 3 weeks off).  In the meantime, if you want you could submit a 
picture of yourself for inclusing in the article... 


----------------------------------------------------------------------
To: f.lambrechts@...
Subject: Re: LinuxFocus.org UML interview follow-up questions 
Date: Sat, 11 Jan 2003 13:32:11 -0500
From: Jeff Dike <jdike@...>

f.lambrechts@... said:
> W 15b. So untile someone picks up that work, it is an official part of
>  Linus' kernel that is not yet ported?  

No.  UML is a port.  You can't say that it hasn't been ported.  Porting UML
to a new architecture is akin to porting a hardware architecture to a new
chip in the same architecture.

				Jeff

----------------------------------------------------------------------
Date: Sat, 11 Jan 2003 13:53:44 -0500
From: David Coulson <david@...>
To: f.lambrechts@...
Subject: Re: Question for a LinuxFocus.org interview

f.lambrechts@... wrote:
> Be assured that LF.org has a lot of readers, and quite a few of them are
> enthousiastic about stuf like this :-)

Good :-)

> So, could you guys (one of you) describe me which admin tools there are 
> for UML (umld, ...), give a quick intro on what they do, and where 
> they're going?

UMLd is a daemon which manages UMLs for both users and administrators. 
For users, it allows them to reboot a crashed UML, or update the kernel, 
without having shell access to the machine. For administrators, it 
allows UMLs to be controled and modified, even created, without having 
to mess around with files on the server.

Ideally, UMLd would be able to control every aspect of the UML, which on 
the most part it does. However, as UML is constantly being developed, 
UMLd has to be kept up to date with anything which is added to the UML 
kernel.

> Do they need major improvement to become efficient tools, or are they 
> ready for prime time?

I've been running UMLd on a two host, 30+ UML network for a number of 
months, and I've had very few problems with it. I use it for building 
all of my UMLs, rebooting them, upgrading the kernels, and so forth. To 
be useful for end-users, UMLd really needs a nice GUI front-end writing 
for it, which is something which I will likely start writing once I'm 
happy with the features of UMLd and the protocol which UMLd talks with 
the clients has been stabalized.

Let me know if you need more information.

David

--------------------------------------------------------------------
Date: Fri, 23 Apr 2004 01:00:27
From: "Jeff Dike" <jdike@...>
Subject: Re: OK to publish old UML interview?
To: floris.lambrechts@...

florisla@... said:
> Is it ok to publish the article in the current form? 

Yup, it's still largely OK.

> The last interview question: 'Do you have any additional remarks, 16
> months after this interview?' 

I would also mention that there is a working x86_64 port of UML which I
hope to release soon.

Also, I have done some more writing about what's new in UML, and what's 
coming up in my diary - http://user-mode-linux.sf.net/diary.html - the
most recent entry, and also some earlier ones.

				Jeff