You are on page 1of 19

Cooperative Linux…

“A treaty between two OS giants”

Pravin Nimodiya
Amit Ohale
Why CoLinux? Planned Features
Introduction Disadvantages
History Conclusion
Design Overviews References
Tools Available
Current Status
Why CoLinux?
Requirement of GCC for software
Install Linux OS on system
New Problem:
Booting time extended, Unfamiliar
with new OS
Cooperative Linux
What is CoLinux?
Cooperative Linux, a port of the Linux kernel that
allows it to run as an unprivileged lightweight
virtual machine in kernel mode, on top of
another OS kernel.
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.
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
Design Overviews
Device Driver
The device driver port of Cooperative
Linux is used for accessing kernel mode .
Interfaces with OS dependent primitives
Like page allocations, debug printing, and
interfacing with user space.
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).
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
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.
Uses 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
TFTP server for file transfer
Telnet Client
CoLinux Configuration
specifies the kernel to be used.
is the initial ram disk
is the system virtual memory
specify partition /dev/cobd0 to point to root.img
specify partition /dev/cobd1 to point to swap.img
set up an ethernet connection using the windows host.
specify the mounted root file system.
Relatively effortless migration path from
Adding Windows machines to Linux clusters.
Using Linux as a Windows firewall on the same
Linux kernel development, debugging, research
and study on another operating systems.
Current Features
Version: 0.6.4
Released on date: July 02, 2006
Supported architectures:
Intel-compatible 386 and above
Supported operating systems:
Windows 2000
Windows XP
Linux 2.6.x
Supported guest Linux kernel versions:
Planned Features
User Mode Linux inside Cooperative Linux
Live Cooperative Distributions
Integration with ReactOS.
Virtual frame buffer support.
Support for more host operating systems such
as FreeBSD.
CoLinux runs aside the Windows kernel on the
same hardware abstraction layer
A problem in the Linux kernel can bring the
Windows kernel down
Uses two different IP address for windows and
Also to load and use coLinux the user has to
have administrator rights.
The colinux is an economical and efficient
possibility to program embedded Linux systems
directly from a Windows PC.
As user friendliness of the Windows port will
improve, the exposure that Linux gets by the
average computer user can increase
Web references:
Book references:
Donald E. Knuth. The Art of Computer
Programming, volume 1.
Thank You!