cooperative linux… “a treaty between two os giants”
DESCRIPTION
Cooperative Linux… “A treaty between two OS giants”. By: Raithatha Yash. Why CoLinux? Introduction History Design Overviews Tools Available Uses Current Status. Planned Features Disadvantages Conclusion References. Content. Why CoLinux?. Problem: - PowerPoint PPT PresentationTRANSCRIPT
Cooperative Linux…Cooperative Linux…
“A treaty between two OS giants”“A treaty between two OS giants”
By: Raithatha Yash
ContentContent
Why CoLinux?Why CoLinux?
IntroductionIntroduction
HistoryHistory
Design OverviewsDesign Overviews
Tools AvailableTools Available
UsesUses
Current StatusCurrent Status
Planned FeaturesPlanned Features
DisadvantagesDisadvantages
ConclusionConclusion
ReferencesReferences
Why CoLinux?Why CoLinux?
Problem:Problem:
Requirement of GCC for software Requirement of GCC for software developmentdevelopment
Solution:Solution:
Install Linux OS on systemInstall Linux OS on system
New Problem:New Problem:
Booting time extended, Unfamiliar with Booting time extended, Unfamiliar with new OSnew OS
Solution:Solution:
Cooperative LinuxCooperative Linux
What is CoLinux?What is CoLinux?Cooperative Linux, a port of the Linux kernel that Cooperative Linux, a port of the Linux kernel that allows it to run as an unprivileged lightweight allows it to run as an unprivileged lightweight virtual machine in kernel mode, on top of virtual machine in kernel mode, on top of another OS kernel. another OS kernel.
Uses the concept of Cooperative Virtual Uses the concept of Cooperative Virtual Machine (CVM) Machine (CVM)
Contains special Windows drivers, which allow it Contains special Windows drivers, which allow it to run under Windows XP as a guest operating to run under Windows XP as a guest operating system with all privileges. system with all privileges.
Superior over other traditional virtualization Superior over other traditional virtualization solutions like VMware, Xen which provides less solutions like VMware, Xen which provides less privileges to guest OS.privileges to guest OS.
HistoryHistory
Dan AloniDan Aloni originally started the originally started the development of Cooperative Linux based development of Cooperative Linux based on similar work with User-mode Linux. on similar work with User-mode Linux.
He open sourced the software under the He open sourced the software under the GNU General Public License.GNU General Public License.
Other developers have since contributed Other developers have since contributed various patches and additions to the various patches and additions to the software.software.
Design OverviewsDesign Overviews
Device DriverDevice Driver
The device driver port of Cooperative The device driver port of Cooperative Linux is used for accessing kernel mode .Linux is used for accessing kernel mode .
Interfaces with OS dependent primitives Interfaces with OS dependent primitives Like page allocations, debug printing, and Like page allocations, debug printing, and interfacing with user space.interfacing with user space.
Driver loads a kernel image from a Driver loads a kernel image from a vmlinuxvmlinux file. file.
Design Overviews Design Overviews (cont...)(cont...)
Pseudo Physical RAMPseudo Physical RAMAll the memory which CoLinux considers All the memory which CoLinux considers as physical in the allocated set is called as physical in the allocated set is called Pseudo Physical RAM (PPRAM).Pseudo Physical RAM (PPRAM).Allocated pages are always resident and Allocated pages are always resident and not freed until the VM is downed. not freed until the VM is downed. Page tablesPage tables are created for mapping are created for mapping pages in the VM’s kernel virtual address pages in the VM’s kernel virtual address space. space. The VM’s address space resembles the The VM’s address space resembles the address space of a regular kernel. address space of a regular kernel.
Design Overviews Design Overviews (cont...)(cont...)
Context SwitchingContext SwitchingThe Cooperative Linux VM uses only one The Cooperative Linux VM uses only one host OS process in order to provide a host OS process in order to provide a context for itself and its processes, viz. context for itself and its processes, viz. colinux-daemon .colinux-daemon .CoLinux is able to completely control the CoLinux is able to completely control the CPU and MMU without affecting anything CPU and MMU without affecting anything else in the host OS kernel.else in the host OS kernel.Uses an intermediate address space Uses an intermediate address space during switchingduring switching
Address space transition during an OS cooperative kernel switch, using an intermapped page
Design Overviews Design Overviews (cont...)(cont...)
Interrupt Handling and ForwardingInterrupt Handling and ForwardingCooperative Linux only forwards the invocations Cooperative Linux only forwards the invocations of interrupts to the host OS in order to keep of interrupts to the host OS in order to keep functioning and support the coLinux-daemon functioning and support the coLinux-daemon process itself, regardless to the fact that external process itself, regardless to the fact that external hardware interrupts are meaningless to the hardware interrupts are meaningless to the Cooperative Linux virtual machine.Cooperative Linux virtual machine.
Tools AvailableTools Available
Original GNU tools for compiling C/C++ Original GNU tools for compiling C/C++ programs and corresponding librariesprograms and corresponding libraries
Open source editor PN (Programmers Open source editor PN (Programmers Notepad) Notepad)
TFTP server for file transfer TFTP server for file transfer
Telnet ClientTelnet Client
CoLinux CoLinux ConfigurationConfiguration
kernel=vmlinux kernel=vmlinux specifies the kernel to be used.specifies the kernel to be used.
initrd=initrd.gzinitrd=initrd.gz is the initial ram disk is the initial ram disk mem=120mem=120is the system virtual memory is the system virtual memory
cobd0=root.imgcobd0=root.imgspecify partition /dev/cobd0 to point to root.imgspecify partition /dev/cobd0 to point to root.img
cobd1=swap.imgcobd1=swap.img specify partition /dev/cobd1 to point to swap.imgspecify partition /dev/cobd1 to point to swap.imgeth0=slirpeth0=slirpset up an ethernet connection using the windows host.set up an ethernet connection using the windows host.
root=/dev/cobd0root=/dev/cobd0 specify the mounted root file system. specify the mounted root file system.
UsesUses
Relatively effortless migration path from Relatively effortless migration path from Windows. Windows.
Adding Windows machines to Linux clusters.Adding Windows machines to Linux clusters.
Using Linux as a Windows firewall on the same Using Linux as a Windows firewall on the same machine. machine.
Linux kernel development, debugging, research Linux kernel development, debugging, research and study on another operating systems. and study on another operating systems.
Current FeaturesCurrent Features
Version: 0.6.4Version: 0.6.4Released on date: Released on date: July 02, 2006July 02, 2006Supported architectures:Supported architectures:
Intel-compatible 386 and aboveIntel-compatible 386 and above
Supported operating systems:Supported operating systems:Windows 2000 Windows 2000 Windows XP Windows XP Linux 2.6.x Linux 2.6.x
Supported guest Linux kernel versions:Supported guest Linux kernel versions:2.6.112.6.11
Planned FeaturesPlanned Features
Suspension Suspension
User Mode Linux inside Cooperative LinuxUser Mode Linux inside Cooperative Linux
Live Cooperative DistributionsLive Cooperative Distributions
Integration with ReactOS. Integration with ReactOS.
Virtual frame buffer support.Virtual frame buffer support.
Support for more host operating systems such Support for more host operating systems such as FreeBSD.as FreeBSD.
DisadvantagesDisadvantages
CoLinux runs aside the Windows kernel on the CoLinux runs aside the Windows kernel on the same hardware abstraction layersame hardware abstraction layer
A problem in the Linux kernel can bring the A problem in the Linux kernel can bring the Windows kernel down Windows kernel down
Uses two different IP address for windows and Uses two different IP address for windows and Colinux.Colinux.
Also to load and use coLinux the user has to Also to load and use coLinux the user has to have administrator rights. have administrator rights.
ConclusionConclusion
The colinux is an economical and efficient The colinux is an economical and efficient possibility to program embedded Linux systems possibility to program embedded Linux systems directly from a Windows PC.directly from a Windows PC.
As user friendliness of the Windows port will As user friendliness of the Windows port will improve, the exposure that Linux gets by the improve, the exposure that Linux gets by the average computer user can increase average computer user can increase tremendously. tremendously.
ReferencesReferencesWeb references:Web references:
www.colinux.orgwww.colinux.org
www.sourceforge.net/projets/coLinuxwww.sourceforge.net/projets/coLinux
www.dilnetpc.comwww.dilnetpc.com
www.en.wikipedia.org/wiki/colinuxwww.en.wikipedia.org/wiki/colinux
www.hesperia.gsfc.nasa.gov/colinuxwww.hesperia.gsfc.nasa.gov/colinux
www.user-mode-linux.sf.netwww.user-mode-linux.sf.net
www.google.co.inwww.google.co.in
Book references:Book references:
Donald E. Knuth. Donald E. Knuth. The Art of Computer The Art of Computer ProgrammingProgramming, volume 1., volume 1.
Thank You!Thank You!
Queries?Queries?