[Xen-devel] A little more clarification
Thank you for your comments. I am still having a problem in trying to visualize
a few things. I hope you can persevere with me on this. Sorry to be so lengthy
on something that seems more than obvious to others on the list. Let me explain.
Back in the days of Linux kernel 2.2.x I purchased VMWARE (for Linux) which
was intended -- in non technical terms -- to be installed on top of or into
my existing (SuSE 6.2 or 6.4 or equivalent installed distribution using kernel
2.2.x) Linux distribution. I just followed the instructions and it worked
but I had no real insight into the matter. Then a few weeks ago a chap on
the [SLE] list said he had downloaded Xen and installed it on top of or into
his existing SuSE 9.1 (kernel 2.6.x) distribution installation. He indicated
(just as with VMWARE) that he had a virtual Linux distribution installed
on top of his existing or primary Linux installation. He indicated that both
the initial installation and the virtual one ran concurrently. Although,
that is probably not a techincally correct way of talking about these things.
So when reading the tutorial and installation web pages for Xen I was predisposed
to interpret this material from that same standpoint. In otherwords, I either
properly or improperly assumed that there must be a 2.4.x or 2.6.x Linux
system already up and working with the servers such as NFS, Telnet, SSH,
portmap, and others as well the NIC and other physical interface devices
all working. In my mind it was this already installed and working distribution
that would become the (basis) GUEST OS for DOMAIN 0 once the kernel was modified
(ported) and installed becoming joined to Xen.
When I used VMWARE I just followed instructions but did not appreciate the
reasoning or proprietary software architecture behind those instructions.
Because I now want to work with the source code of Xen and the Linux kernel
I want very much to develop an accurate and proper insight. That is why I
am now dwelling on this issue which was supposed to be my point #1 of 4 high
level points in my previous email. So now I will ask my question.
Is what I have assumed correct, must there be an existing 2.4 or 2.6.x kernel
based Linux installation up and running which must be modified (kernel modification
or ported) to run Xen? It is my understanding that the Xen source code installation
or the binary installation both require a properly pre installed fully functional
Linux system as the basis of Xen operation. Once it's (pre installed linux
distribution) 2.4.x or 2.6.x kernel has been modified to work with the Xen
software and tools we have created this Linux distribution into an Xen-based
system called Domain 0 that becomes so when shutdown and then booted???
If my assuption correctly follows the Xen documentation then my first point
should have read:
NOTE:: If this point is flawed by the assumpition that there must be a fully
functional pre existing 2.4 or 2.6.x Linux sytem then my thinking is all
screwed up. It would not be the first time. BTW, by OS I don't mean just
the kernel. Some consider the entire installation the OS -- an obvious mutation.
I don't know how Xen documentation defines OS. For some people the kernel
is the OS as it is the primary layer. For others the distribution less
the desk top, games, graphical applications, office packages and any non
command line controlled packages constitute the OS. I use the latter
definition. So if OS means just the kernel code then I will have to
significantly change my point #1.
The following detail is what I meant to imply by my point #1.
#1 -- The BUILD:
The Xen distribution includes 3 main components (Xen itself, ports
of Linux 2.4 and 2.6.x kernels to run on (with) Xen, and user-space tools
required to manage an Xen-based system) all of which assumes the existence
of an already installed and fully fuctional pre existing Linux system which
must be adapted (to become the default Xen Linux build identified as DOMAIN
0. Domain 0 is the primary layer (controlled by the Xen package) and
consists of the GUEST OS (the adapted pre existing Linux system) hosted by
a secure pseudo virtual machine (a controlled execution environment using
the adapted or ported kernel and Xen tools and processess to run and monitor
parts of the GUEST OS (entire installed linux system?)). The pre existing
system once so adapted and running under Xen control contains support for
relatively modern server-class network and disk hardware. The Xen process
(called xend) runs in highest privilege in DOMAIN 0 and it's code detects
and starts secondary processors, sets up interrupt routing, time slicing,
and performs PCI bus enumeration as well as offloads hardware support issues
to DOMAIN 0 GUEST OS which is the modified pre existing Linux installed distribution.
As such, Xen provides a secure virtual machine for this GUEST OS, builds
other domains using an OS installed in a root file system placed on a partition
and booted from that partition, manages their virtual devices and performs
My next question:
What exactly is an HTTP/S server -- apparently it is a requirement for browser
administration access to a Xen-based system? Is Apache such a server and
if not can it be turned into such a server???
One more question:
Regarding the source code. I have been reviewing Python and C (gcc/gcc++)
and was wondering if there was a high level diagram showing dependencies
(hierarchy based on caller and called) and code utilized (python, C, binary
Based on what I am learning here (mostly from you) I have been constructing
a very high level chart showing levels, key Xen processes, and stuff like
that. I will send you a copy once I am sure the information is correct and
properly represents what is happening.
Thank you very much in advance for your comments and advice.