Professional Documents
Culture Documents
Colinux
Colinux
Rakesh kumar
(usn:4BD07CS084)
Content
Why CoLinux? Planned Features
Introduction Disadvantages
History Conclusion
Design Overviews References
Tools Available
Uses
Current Status
What is CoLinux?
Cooperative Linux, abbrevaited as colinux,is a
software which allows microsoft windows and
linux kernel to run simultaneosly in parllel on the
same mechine.
Uses the concept of Cooperative Virtual
Machine (CVM)
Contains special Windows drivers, which allow it
to run under Windows XP as a guest operating
system with all privileges.
Superior over other traditional virtualization
solutions like VMware, Xen which provides less
privileges to guest OS.
How Colinux work?
Unlike in other Linux virtualisation solution such as
user mode linux , special driver software on the host
operating system is used to execute the coLinux
kernel in a privileged mode (known as ring 0 or
supervisor mode).
By constant switching the mechine’s state between
the host OS state and and the coLinux kernel state,
coLinux is given full control of the physical
machine's MMU (i.e, paging and protection) in its
own specially allocated address space, achieving
almost the same performance and functionality that
can be expected from a regular Linux which could
have ran on the same machine standalone.
History
Dan Aloni originally started the
development of Cooperative Linux based
on similar work with User-mode Linux.
He open sourced the software under the
GNU General Public License.
Other developers have since contributed
various patches and additions to the
software.
Uses
Relatively effortless migration path from Windows.
In the process of switching to another OS using a virtualization software where
co-linux comes in.it is already used in workplace to convert windows user to
Linux.
Adding Windows machines to Linux clusters.
The cooperative linux patch is minimal and can be easily combined with others
such as MOSIX patches that add clustering capabilities to the kernel.
Using Linux as a Windows firewall on the same machine.
Cooperative linux system serve as a network firewall.
Linux kernel development, debugging, research and study on
another operating systems.
Running an otherwise-dual-booted linux system from the
other OS.
CoLinux can run the graphical applications like Mozila
firefox,Openoffice with good performance
Design Overviews
Device Driver
The device driver port of Cooperative Linux is
used for accessing kernel mode .
Most of the OS independent code Interfaces
with OS dependent primitives Like page
allocations, debug printing, and interfacing with
user space.
When a Cooperative linux VM is created,the
Driver loads a kernel image from a vmlinux file.
Design Overviews (cont...)
Pseudo Physical RAM
All the memory which CoLinux considers as
physical in the allocated set is called Pseudo
Physical RAM (PPRAM).
The memory is allocated in host OS using
the appropiate kernel function like
alloc_page() in lunux and windows.
Allocated pages are always resident and not
freed until the VM is downed.
Page tables are created for mapping pages
in the VM’s kernel virtual address space.
The VM’s address space resembles the
address space of a regular kernel.
Design Overviews (cont...)
Context Switching
The Cooperative Linux VM uses only one
host OS process in order to provide a
context for itself and its processes, viz.
colinux-daemon .
CoLinux is able to completely control the
CPU and MMU without affecting anything
else in the host OS kernel.
In Cooperative linux the problem is solved
by Using an intermediate address space
during switching
Address space transition during an OS cooperative
kernel switch, using an intermapped page
Design Overviews (cont...)
Interrupt Handling and Forwarding
Cooperative Linux only forwards the invocations
of interrupts to the host OS in order to keep
functioning and support the coLinux-daemon
process itself, regardless to the fact that external
hardware interrupts are meaningless to the
Cooperative Linux virtual machine.
Tools Available
Original GNU tools for compiling C/C++
programs and corresponding libraries
Open source editor PN (Programmers
Notepad)
TFTP server for file transfer
Telnet Client
The interaction between tools
The coLinux window itself, the open source editor PN and
a TFTP server TFTP can be used together in such a way
that the developer will practically never have to leave the
familiar Windows XP environment of the development PC
C/C++ source code is edited in Windows using the PN
editor. This Windows application organizes the source code
files into projects. All source code is saved in the directory
c:\colinux, or a subdirectory within c:\colinux. A script file
(build script) is run in the coLinux window to compile the
entire project.
Interaction between tools (contd..)