350 likes | 602 Views
Cooperative Linux… “A treaty between two OS giants”. Presented by: Rakesh kumar (usn: 4BD07CS084 ). Why CoLinux? Introduction History Design Overviews Tools Available Uses Current Status. Planned Features Disadvantages Conclusion References. Content.
E N D
Cooperative Linux…“A treaty between two OS giants” Presented by: Rakesh kumar (usn:4BD07CS084)
Why CoLinux? Introduction History Design Overviews Tools Available Uses Current Status Planned Features Disadvantages Conclusion References Content
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 themechine’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. • CoLinuxcan run the graphical applications like Mozilafirefox,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,theDriver 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 tablesare 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.