Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 21

Cooperative Linux…

“A treaty between two OS giants”


Presented by:

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..)

 The following is an example of such a build script:


#!/bin/sh
cp /windows/root/ngsmtp1.c ngsmtp1.c
make all
mv /tftpboot/ngsmtp1 /windows/root/ngsmtp1
mv ngsmtp1.c ngsmtp1.bak
rm ngsmtp1.gdb
 The second line of the build script copies C source
code with the name ngsmtp1.c from c:\colinux\root
(/windows/root in coLinux) to the coLinux directory,
in which the build script was launched.
Interaction between tools (cont..)

The interaction between development tools


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:
2.6.11
Planned Features
Suspension
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.
Disadvantages
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
Colinux.
Also to load and use coLinux the user has to
have administrator rights.
Conclusion
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
tremendously.
References
Web references:
www.colinux.org
www.sourceforge.net/projets/coLinux
www.dilnetpc.com
www.en.wikipedia.org/wiki/colinux
www.hesperia.gsfc.nasa.gov/colinux
www.user-mode-linux.sf.net
www.google.co.in
Book references:
Donald E. Knuth. The Art of Computer
Programming, volume 1.
Thank You!

You might also like