Professional Documents
Culture Documents
Abstract— In order to limit the number of physical Dynamic resource management is not more
servers, virtualization splits the hardware resources into mandatory while running a single application on a
multiple virtual machines, each dedicated to one service dedicated server. At boot time, all available resources
or application. will be allocated for the single application.
A complete operating system should be installed on
each virtual machine. C. Complexity and safety
Why multi-tasking and multi-purpose operating The complexity of universal systems like Unix and
systems are used for running one single application? Windows not only degrades the performances, but also
If the operating system crashes, all services will be the stability and foresee ability of the system [1]. And
unavailable or impacted. Virtual machines limit trouble that is not improving. The complexity of the systems
spreading.
(operating systems but also information systems)
The system that I propose will have to be configured
grows more quickly than the performance of the
statically and automatically according to the capabilities
of the physical system and the profile of the application equipments [2].
that will have to be deployed. Only the components D. Market history
necessary to operation of the application will be installed.
The code of the system and application will be stored on Server dedicated operating systems already exists.
a partition in read-only mode. This operating system will Novell Netware is well-known and performed well
be transparent for application, providing a traditional when just used for what it has been originally
system call interface in order to avoid porting the designed: file sharing or printer sharing. But it did not
applications. succeed in sharing access to applications maybe
because it tried to host them on the same platform.
The other issue is weight of Windows and Linux. Is
I. THE SERVER ISSUE it possible and relevant today to propose a new OS ?
BeOS, PLAN 9, Inferno are good operating systems,
A. Goals of virtualization but did not really meet the market.
In order to limit the number of physical servers,
virtualization splits the hardware resources of one II. PROPOSALS FOR A LIGHTWEIGHT OPERATING
server into multiple virtual machines, each dedicated SYSTEM
to one service or application.
A complete operating system (Windows or Unix) A. Overview
should be installed on each virtual machine. Why The system will have to be configured statically
these multi-tasking and multi-purpose operating and automatically according to the capabilities of the
systems are used for running one single application? physical system and the profile of the application that
Reliability is the main answer. If the operating will have to be deployed. Only the components
system crashes or some kind of trouble occurs, all necessary to operation of the application will be
services will be unavailable or impacted. Virtual installed. Once configured, the system will have to
machines limit trouble spreading. require only minimal administration. The code of the
If a multi-tasking operating system cannot be system and application will be stored on a partition (or
considered as reliable, why do we install such systems a media) in read-only mode. If possible, this operating
if just a reduced set of features is mandatory in order system will be transparent for application, providing a
to run a single application? system call interface like a traditional system (Unix or
B. Server performance Windows) in order to avoid porting the applications
for this new OS. This OS will have to be distributed to
Classic operating systems (Windows, Unix) have
ensure load balancing and fault-tolerance for the
been designed for workstations, not for servers
application.
(particularly Windows).
Activity and consequently load forecasting is not B. Architecture
possible when resource allocation is dynamically This architecture includes 3 distinct parts:
performed. Allocating and moreover freeing resources 1. The profiler
are time consuming, typically dynamic socket creation 2. The installer
and destruction for client-server applications. 3. The operating system
The profiler will be used prior installing a server for </object>
a new application. The installer will be used for </void>
installing a new server (or a new virtual machine) or a </void>
new version of the operating system but for the same <void property="numberOfProcesses">
application. <int>50</int>
</void>
1) The profiler <void property="numberOfSockets">
The profiler is a tool which goal is to observe the <int>100</int>
runtime behavior of a particular service (for example a </void>
mail or a web server).
<void property="systemCalls">
This tool will make an inventory of all system
<void index="0">
resources required by the target software:
<object class="SystemCall">
• System calls
<void property="callName">
• I/O
<string>fopen</string>
• Memory allocation sorted by size and number of
</void>
blocks
</object>
• Number of processes
</void>
• Number of sockets, …
<void index="1">
<object class="SystemCall">
<void property="callName">
<string>fclose</string>
</void>
</object>
</void>
</void>
</object>
</java>
b) Memory Management
The profiler spied the memory allocations
3) The system performed by the target application. Since we know
Once the system installed, it starts while launching exactly how many blocks of various sizes are required,
all the programs and services required in order to run the memory manager should be designed as simple as
the server and the application. No more programs will possible for speed efficiency. Typically, the data
then be launched. Further disk access relate only to structure chosen in order to store the list of free blocks
application data. Thus if something goes wrong will be static.
because of bad dimensioning or incompatibilities The final implementation is not yet decided but
between components, we will be warned generally at could be like this:
boot time and not during normal operation conditions. • An hash table indexed by the block size
I do not plan to use an hardware abstract layer will store arrays of free blocks for this
inside the kernel. The first implementation will be for block size,
an Intel platform, and since I hope that the code for the • A bit map will indicate which blocks are
system should not be too large, porting onto another free,
platform should not be too long. • Each array will store the pointers to the
block in the memory heap
a) The File System • The size of each array is determined
The file system is divided into 2 layers: according to the profile for this application
• A logical layer that presents a classic view of
the target file system for which our system
has been configured (NTFS or a Unix file
system),
• A physical layer that maps each entry of the
logical file system either on a read-only drive
for the programs and configuration files or on
a read-write drive for the application data.
d) The scheduler
Once again, we will try to get a benefit from the
knowledge provided by the profiler.
First, the profile will list all the required features
that will be present in the kernel or as daemons. Thus
the installer will provide the exact dimension for all
the queues used for task management.
Second, the profile reveals which kernel features or
daemons are called by the application and how many
times. For safety and security, while under normal
operation, the kernel will not allow a system call that
has not been forecast according to the profile.
I do not plan to design a real-time operating system.
I am looking for speed performance, not for predictive
scheduling. But some tiny real-time systems could be
really efficient while running on a classic PC
architecture instead of device with limited resources.