UMLinuxControlCenter - A
Graphical management-Tool for User-Mode-Linux
Fields of application
Download / Project Page
Current state of the project
|UMLinuxControlCenter lets you
create virtual networks based on
user-mode-linux and uml-utilities by simply drag and drop icons of
virtual machines, hubs/switches, network-links and the hostsystem.
written in C++ using wxWidgets and Xerces.
||GNU General Public License
(GPL), wxWindows License
|wxWidgets-UI-Framework, especially OGL
(Object Graphics Library)
C++ Standard Template Library
|GNU/Linux for i386,
user-mode-linux Kernel 2.6.7, 2.6.8, 2.6.9
(tested on SuSE 9.1 & 9.2, Fedora Core 3 & 4, Ubuntu 5.04)
|major features (implemented
- create/delete virtual machines
(vm = uml-kernel + root.img + swap.img)
- configure virtual machines (hostname, memory, default
gateway, DNS-Servers, ... )
- add scripts to the virtual machines (ipforwarding,
iptables, set up IPv4 and IPv6 interfaces, set default routes,
set up hostname, ...)
- add configuration files to the virtual machines (hostname,
- start and stop virtual machines
- create/delete switches and hubs based ond uml_switch, a
- configure switches and hubs
- create/delete the hostsystem
- add scripts to the hostsystem (ip_forwarding, iptables, et
up IPv4 and IPv6 interfaces, set default
routes, ... )
- create/configure/delete tun-networkinterface on the host
- connect virtual machines to switches/hubs
- connect virtual machines to the hostsystem
- connect switches/hubs to the hostsystem
- show the state of virtual machines or hubs/switches (up /
- show memory usage of a virtual machine
- show the screen/terminal of a virtual machine or a
- build configuration of virtual machines / hostsytem (copies
the uml kernel, the root- and swap image, and generates the
configuration and script files)
- execute virtual machine, hub/switch or hostsystem)
- stop virtual machine or hub/switch
- execute the whole project
- stop the whole project
- Support for IPv4 and IPv6 implemented.
- A Graphical management-Tool for User-Mode-Linux
The idea of running more than one
virtual machine on a single host system is as old as the mainframe
technology. Mainframe systems offer the ability to share resources
among different users, whereas every user gets his own virtual machine.
Upgrading a VM is basically a matter of reconfiguring it. Moreover,
this kind of partitioning of common resources offers security
advantages since every virtual system has its own isolated memory, and
can not damage or access foreign data without permission. This aspect
is an important reason why the User Mode Linux (UML) project was
UM-Linux brought to life to run multiple separate virtual machines on
the same physical host system. A virtual machine takes full advantage
of an ordinary Linux operating system. Furthermore it is possible to
install every kind of Linux compatible software, running
inter-networking services (e.g. web-servers, routers etc.), or testing
any kind of software without risks for the host system or other virtual
machines. Up to now, the available management tools were limited
command line utilities which have not been comfortable to use.
offers an alternative solution, because it offers a graphical
interface, which is easy and intuitive to use, without loosing the
variety of features an UM-Linux system offers. The GUI offers
basically three elements: a switch system which simulates a physical
switch or hub, a virtual machine which can be configured by the user
and the host system to connect the virtual machines to the rest of the
world. All these elements can be connected together and administrated
with UMLinuxControlCenter. This means, virtual machines can be stopped
and restarted, new configurations reloaded, systems may be monitored
Fields of application
UMLinuxControlCenter is the ideal tool for the following applications:
- Testing network configurations with nearly no hardware
- Testing network tools such as routing protocols, vpn-solutions,
firewall configurations, ...
- Eductation of network administrators, ICT-Students, ...
- Virtual hosting
- Learning IPv6 and planning the migration from IPv4 to IPv6
- ... and much more
Download / Project Page
Donwload the latest version of UMLinuxControlCenter from: http://sourceforge.net/projects/umlinuxcc
| The root password for
the uml root filesystem image is: uml
For any questions about UMLinuxControlCenter use the Help
The following diagram shows the currently implmented architecture:
This architecture contains the following layers:
|The Grapical User Interface is
based on the wxWidgets sample
|The session layer adds a level
of indirection between the GUI and the domain layer. It implements a
command pattern for do/undo functionality.
|The XMLSubSystem loads and
stores the configuration of the
domain-layer objects, the scripts and the macros.
|The domain layer is the core
functionality of UMLinuxControlCenter. It contains objects representing
the application domain such as UMLinuxInstance,
HostSystem, HostNetworkInterface, UMLinuxSwitch, etc. These objects
configure and control the corresponding programs on the hostsystem.
|The ScriptSubSystem is used to
generate scripts and configuration files for virtual machines an the
hostsystem. There are scripts for setting up network interfaces,
routes, ipforwarding, iptables, etc. By using the scriptsubsystem
UMLinuxControlCenter is much more flexible and adaptable when an
program changes or is replaced by another one.
|Encapsulates the uml_mconsole (a
uml-utility) in a C++ class.
The Uml_mconsole-subsystem realizes the communication between
UMLinuxControlCenter and the running uml-kernels.
One goal of the UMLinuxControlCenter is, to split it into two
applications. One part, called the agent is, running on the server
machine controlling the virtual machines, while the other part, called
the designer, is running on an other machine. This architecture
similar to the SNMP (Simple Network Management Protocol) architecture
and allows the
user to control several agents on differnt servers form one management
station. By using the wxWidgets Crossplattform-UI-Framework, it should
be possible to port the desinger to other platfoms than linux.
Current state of the
UMLinuxControlCenter was initiated and developed by Martin Weber and
Oliver Koller at Zurich University of
Applied Sciences Winterthur
The core functionality of UMLinuxControlCenter has been implemented
(see sceenshots below). Now the project needs more users which test the
application and send us their feedbacks. We also need more developers
us port it to other distributions.
- Translating the tutorial
- Testing (on various GNU/Linux distributions)
- Packaging (*.rpm, *.dep, ...)
- Building different (smaller) root-images
- Create more scripts and configuration files
- Macro and Script-Editor
- Implementation of the enhanced architecture (client-server
- What communication (Socket, SOAP, ...)?
- Port the GUI to other platforms such as MS Windows?