SlideShare a Scribd company logo
1 of 7
Download to read offline
1 --- Cooperative Linux
.
COOPERATIVE LINUX
Mr. Ankit Singh
Final year, Computer Engineering,
AISSMS’s College of Engineering, Pune.
Email : ankit***@***.com
Contact no. : - +91-9******5
Mr. Sushant Bhadkamkar
Final year, Computer Engineering,
AISSMS’s College of Engineering, Pune.
Email : ***sushant@***.com
Contact no. : - +91-9*****4
2 --- Cooperative Linux
.
Abstract
In this paper we will describe Cooperative
Linux (short-named coLinux), an effective
way to run Linux under other operating
system such as Windows, Linux etc. The
paper briefly presents technical details as
to how cooperation between two operating
systems is achieved. We will compare
coLinux with other virtual machines
available and discuss the advantages and
the downsides of using coLinux. The paper
also discusses a few applications and
projects currently being carried out with
the help of coLinux.
Keywords
Virtualization, CVM (Cooperative Virtual
Machine), Host OS, Kernel.
1. Introduction
Operating system virtualization is popular
technology these days. People run
different operating systems on top of their
existing ones not only for experimental
purposes but also for production use.
Many different virtualization systems
exist. In 2004, a novel concept of co-
operative virtualization was introduced by
Mr. Dan Aloni which made it possible for
two operating systems to work in co-
operation, both having complete control of
the host machine.
1.1 Virtualization
Virtualization is a framework or
methodology of dividing the resources of a
computer into multiple execution
environments, by applying one or more
concepts or technologies such as hardware
and software partitioning, time-sharing,
partial or complete machine simulation,
emulation, quality of service, and many
others.
Figure 1.1: An Example of virtualization.
1.2 Cooperative Linux
Cooperative Linux, the first working free
and open source method for optimally
running Linux on Microsoft Windows
natively. More generally, Cooperative
Linux is a port of the Linux kernel that
allows it to run cooperatively alongside
another operating system on a single
machine. The term ‘Cooperative’ is used
to describe two Entities working in
parallel, e.g. co-routines. In that sense the
simplest description of Cooperative Linux
is turning two operating system kernels
into two big co-routines. In that mode,
each kernel has its own complete CPU
context and address space, and each kernel
3 --- Cooperative Linux
.
decides when to give control back to its
partner. However, only one of the two
kernels has control on the physical
hardware, where the other is provided only
with virtual hardware abstraction.
2. Implementation
2.1 Design of coLinux
coLinux is a port of the Linux kernel that
is modified to run cooperatively with
another operating system. Dan Aloni
describes coLinux as a cooperative and
paravirtualized Linux virtual machine.
Cooperative means that it gives control
back to the host OS at will. Paravirtualized
means that the coLinux kernel has no
notion of the real hardware except that of
the CPU and memory. The host operating
system (Windows or Linux) maintains
control of the physical resources of the
operating system, while the guest
operating system (coLinux) is provided
with a virtual abstraction of the hardware.
The host operating system must provide
the means to execute a driver in the
privileged ring (ring 0) and export the
means to allocate memory.
This is unlike VMware which intercepts
I/O to hardware devices and emulates it.
coLinux feels like a separate Linux box --
the guest kernel's internals are separated
from the host kernel's internals.
Figure 2.1. coLinux internals.
Notice that coLinux consists of two parts:
 The coLinux kernel driver that
operates in the host kernel space.
 Several user space daemons.
The coLinux kernel driver's main jobs are
to: Load the Linux guest kernel image on
start. You can imagine this functionality
being similar to a bootloader (like LILO or
GRUB).
 Execute ioctl() requests as
instructed by the coLinux-daemon
process. This ioctl() call is
responsible for doing context
switches between guest OS and
host OS.
4 --- Cooperative Linux
.
 Act as a forwarder of interrupts and
requests from several virtual
drivers: cobd (block device), conet
(network), and cocon (console).
In the user space, the most important part
is the coLinux-daemon-process. Besides
being responsible for triggering context
switches, it works as the "manager" of
several other daemons such as coLinux-
console-nt and coLinux-net-daemon. For
example, via coLinux-console, users can
see the current display of the active
console of the Linux guest. When the user
types or issues a command inside the shell
of this coLinux-console, the coLinux-
daemon will "wrap" it and forward it to
coLinux-driver.
Figure 2.2: Virtualization in coLinux
This concept is called ‘cooperative
virtualization’.
2.2 Device Driver
The device driver port of Cooperative
Linux is used for accessing kernel mode
and using the kernel primitives that are
exported by the host OS kernel. Most of
the driver is OS independent code that
interfaces with the OS dependent
primitives that include 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 that was compiled from the
patched kernel with
CONFIG_COOPERATIVE. The vmlinux file
doesn’t need any cross platform tools in
order to be generated, and the same
vmlinux file can be used to run a
Cooperative Linux VM on several OSes of
the same architecture.
3. Comparison with other VMs
In this section we will compare coLinux
with other Linux virtual machines.
 coLinux runs without any
hypervisor[1]
, it is quite faster, and
if you install it on standard
partition you can get some speed in
reading/writing to the disk.
 In contrast to coLinux, traditional
VMs are unprivileged and under
the complete control of the host
machine.
 We can execute Linux applications
on coLinux without rebuilding.
[1] Virtual machine monitor that
Arbitrates access to the physical hardware
5 --- Cooperative Linux
.
 coLinux is faster than other VMs
as coLinux allows the Linux kernel
to run natively (as a Windows
kernel driver).
4. Advantages
 Effective way for casual windows
users to install and explore
Linux.
Windows users who are reluctant to
use Linux and other open source
software because of the complicated
technicalities, can be encouraged to do
so because of the relative easiness of
using coLinux. Installing coLinux is
relatively easier if normal installation
instructions are followed.
 coLinux is portable
You can have a coLinux distribution
with a custom set of applications on a
given Windows host (within the root
file system). You can move the root
file system to another host, and then
restart it. This allows for a mobile
development platform where the
compressed root file system fits on a
standard Universal Serial Bus (USB)
memory stick.
 Using two OSes without
rebooting.
The people, who already use Linux,
will use coLinux as a convenience, in
order to be able to do said Linux things
in Windows without having to reboot.
 Linux kernel research
coLinux kernel can be used to study
the Linux kernel, the two being quite
similar
5. Disadvantages
 The primary disadvantage of
coLinux is that it has the ability
to crash the entire machine (all
cooperating operating systems).
The guest operating system runs in a
privileged mode in the host kernel. It
also has some dependencies on
external software for normal operation
(windows and networking support).
 coLinux cannot be run in NT 4.0.
This is because some system calls are
missing in NT 4 (even with SP6) and
present only in 2000, XP and 2003.
 Limited Graphics Support.
Graphics performance is also
dependent on the speed of the
connection between the coLinux OS
and the Hosting OS.
 Another disadvantage is security.
Acquiring root user access on a
Cooperative Linux machine can
potentially lead to root access on the
host machine. An attacker can load
specially crafted kernel module or find
some other way to inject code into the
6 --- Cooperative Linux
.
running coLinux kernel, causing the
entire system to crash.
6. Projects using coLinux
 IBM is attempting to combine
coLinux and openMosix to offer a
high-performance cluster
middleware in a heterogeneous
environment. In this heterogeneous
environment, Linux™ provides the
stability and performance, and
Windows® users continue to use
_their apps and never notice the
difference.
 A coLinux Cross Tools CD-ROM
has been available from SSV
Embedded Systems since June
2005 and makes it possible use
coLinux for software development
of DIL/NetPC-based embedded
Linux applications.
7. Future of coLinux
coLinux is still a project in its beta and has
a small developer community. The
community will have to decide whether it
wants to promote coLinux as tool for users
to try out Linux or as a convenience for
developers. If the former is the case then
coLinux will have to be made more user-
friendly. A lot more documentation will
have to provided for troubleshooting.
Developers on the other hand will require
for it to have latest distribution support and
support for architectures other than x86.
India on the other hand can benefit a great
deal from coLinux as more and more
enterprises attempt to migrate towards
Linux and open source software. coLinux
can be used as a training tool in academic
institutes and students can get involved in
the coLinux project development.
8. Conclusion
While there are many virtualization
schemes out there, coLinux is novel in its
approach and the capabilities that it
provides. coLinux is not perfect but the
exposure that Linux gets by the average
computer user can increase tremendously.
Moreover it is an open source tool. The
implications that Cooperative Linux has on
what the media defines as ‘Linux on the
Desktop’—are massive, as the world’s
most dominant albeit proprietary desktop
OS supports running Linux distributions
for free, as another software, with the aim
of possibility that the Linux newbie would
switch to the standalone Linux.
So, if you want an easy way of running
simple, not very graphics demanding
applications from Linux on Windows, you
are a developer who develops for both
systems, or if you are just a Linux
enthusiast who wants to have his beloved
7 --- Cooperative Linux
.
applications at hand while using Windows,
and you don’t mind occasional problems
with graphics – coLinux is the solution for
you.
References
1. www.kernel.org
2. http://colinux.wikia.com/wiki/Main
_Page
3. http://www.ibm.com/developerwor
ks/opensource/
4. coLinux 2004 publication – Dan
Aloni
5. Rute User’s Text and Exposition –
Paul Sheer
6. linux.colinux.devel
.

More Related Content

What's hot

What's hot (20)

Ambient intelligence
Ambient intelligenceAmbient intelligence
Ambient intelligence
 
Pill camera documentation
Pill camera documentationPill camera documentation
Pill camera documentation
 
Lecture5 virtualization
Lecture5 virtualizationLecture5 virtualization
Lecture5 virtualization
 
Hybrid Cloud and Its Implementation
Hybrid Cloud and Its ImplementationHybrid Cloud and Its Implementation
Hybrid Cloud and Its Implementation
 
pill came
pill camepill came
pill came
 
Pill camera documentation
Pill camera documentationPill camera documentation
Pill camera documentation
 
X-Max Technology ppt
X-Max Technology pptX-Max Technology ppt
X-Max Technology ppt
 
Seminar Report on Wisenet Technology
Seminar Report on Wisenet TechnologySeminar Report on Wisenet Technology
Seminar Report on Wisenet Technology
 
Case study on cloud computing
Case study on cloud computingCase study on cloud computing
Case study on cloud computing
 
Virtualization
VirtualizationVirtualization
Virtualization
 
Touchless technology Seminar Presentation
Touchless technology Seminar PresentationTouchless technology Seminar Presentation
Touchless technology Seminar Presentation
 
Pill camera
Pill cameraPill camera
Pill camera
 
Edge Computing.pptx
Edge Computing.pptxEdge Computing.pptx
Edge Computing.pptx
 
Pill camera presentation
Pill camera presentationPill camera presentation
Pill camera presentation
 
Virtualization presentation
Virtualization presentationVirtualization presentation
Virtualization presentation
 
Smart quill ppt
Smart quill pptSmart quill ppt
Smart quill ppt
 
Optical Computing
Optical ComputingOptical Computing
Optical Computing
 
Cluster Computing Seminar.
Cluster Computing Seminar.Cluster Computing Seminar.
Cluster Computing Seminar.
 
Wireless USB report
Wireless USB reportWireless USB report
Wireless USB report
 
Virtualization
VirtualizationVirtualization
Virtualization
 

Similar to Cooperative Linux

exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxApkaAmitbro
 
exp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxexp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxApkaAmitbro
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxKevin OBrien
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
Introduction to Linux for Windows Users
Introduction to Linux for Windows UsersIntroduction to Linux for Windows Users
Introduction to Linux for Windows UsersRobert McDermott
 
Linux operating system
Linux operating systemLinux operating system
Linux operating systemMohamed Essam
 
Rolling Your Own Embedded Linux Distribution
Rolling  Your  Own  Embedded  Linux  DistributionRolling  Your  Own  Embedded  Linux  Distribution
Rolling Your Own Embedded Linux DistributionEmanuele Bonanni
 
Linux Operating System (Graduate Level CIS Term Paper)
Linux Operating System (Graduate Level CIS Term Paper)Linux Operating System (Graduate Level CIS Term Paper)
Linux Operating System (Graduate Level CIS Term Paper)Carla Bennington
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linuxsureskal
 
Linux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingLinux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingJérôme Kehrli
 
Linux programming lecture_notes
Linux programming lecture_notesLinux programming lecture_notes
Linux programming lecture_notesIMRAN KHAN
 
OS(ch16)-LinuxSystem.pptx
OS(ch16)-LinuxSystem.pptxOS(ch16)-LinuxSystem.pptx
OS(ch16)-LinuxSystem.pptxssuser6e060d
 
Presentation1 linux os
Presentation1 linux osPresentation1 linux os
Presentation1 linux osjoycoronado
 

Similar to Cooperative Linux (20)

exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docx
 
exp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxexp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docx
 
Linux
LinuxLinux
Linux
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Introduction to Linux for Windows Users
Introduction to Linux for Windows UsersIntroduction to Linux for Windows Users
Introduction to Linux for Windows Users
 
Linux operating system
Linux operating systemLinux operating system
Linux operating system
 
Rolling Your Own Embedded Linux Distribution
Rolling  Your  Own  Embedded  Linux  DistributionRolling  Your  Own  Embedded  Linux  Distribution
Rolling Your Own Embedded Linux Distribution
 
Linuxppt.pptx
Linuxppt.pptxLinuxppt.pptx
Linuxppt.pptx
 
Linux Operating System
Linux Operating SystemLinux Operating System
Linux Operating System
 
Linux Operating System (Graduate Level CIS Term Paper)
Linux Operating System (Graduate Level CIS Term Paper)Linux Operating System (Graduate Level CIS Term Paper)
Linux Operating System (Graduate Level CIS Term Paper)
 
Linux OS presentation
Linux OS presentationLinux OS presentation
Linux OS presentation
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
Linux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and TroubleshootingLinux and Java - Understanding and Troubleshooting
Linux and Java - Understanding and Troubleshooting
 
Linux programming lecture_notes
Linux programming lecture_notesLinux programming lecture_notes
Linux programming lecture_notes
 
Linux
Linux Linux
Linux
 
OS(ch16)-LinuxSystem.pptx
OS(ch16)-LinuxSystem.pptxOS(ch16)-LinuxSystem.pptx
OS(ch16)-LinuxSystem.pptx
 
Presentation1 linux os
Presentation1 linux osPresentation1 linux os
Presentation1 linux os
 
Presentation1 linux os(2)
Presentation1 linux os(2)Presentation1 linux os(2)
Presentation1 linux os(2)
 
Presentation1 linux os
Presentation1 linux osPresentation1 linux os
Presentation1 linux os
 

More from Ankit Singh

IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...
IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...
IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...Ankit Singh
 
Security Vision for Software on Wheels (Autonomous Vehicles)
Security Vision for Software on Wheels (Autonomous Vehicles)Security Vision for Software on Wheels (Autonomous Vehicles)
Security Vision for Software on Wheels (Autonomous Vehicles)Ankit Singh
 
Parallex - The Supercomputer
Parallex - The SupercomputerParallex - The Supercomputer
Parallex - The SupercomputerAnkit Singh
 
Design Alternative for Parallel Systems
Design Alternative for Parallel SystemsDesign Alternative for Parallel Systems
Design Alternative for Parallel SystemsAnkit Singh
 
Restricted Usage of Anonymous Credentials in VANET for Misbehaviour Detection
Restricted Usage of Anonymous Credentials in VANET for Misbehaviour DetectionRestricted Usage of Anonymous Credentials in VANET for Misbehaviour Detection
Restricted Usage of Anonymous Credentials in VANET for Misbehaviour DetectionAnkit Singh
 
The Security and Privacy Threats to Cloud Computing
The Security and Privacy Threats to Cloud ComputingThe Security and Privacy Threats to Cloud Computing
The Security and Privacy Threats to Cloud ComputingAnkit Singh
 
The Security and Privacy Requirements in VANET
The Security and Privacy Requirements in VANETThe Security and Privacy Requirements in VANET
The Security and Privacy Requirements in VANETAnkit Singh
 
Master Teset Specification SRCP
Master Teset Specification SRCPMaster Teset Specification SRCP
Master Teset Specification SRCPAnkit Singh
 
MicazXpl Intelligent Sensors Network Project Presentation
MicazXpl Intelligent Sensors Network Project PresentationMicazXpl Intelligent Sensors Network Project Presentation
MicazXpl Intelligent Sensors Network Project PresentationAnkit Singh
 
Micazxpl - Intelligent Sensors Network project report
Micazxpl - Intelligent Sensors Network project reportMicazxpl - Intelligent Sensors Network project report
Micazxpl - Intelligent Sensors Network project reportAnkit Singh
 
DO-178B/ED-12B Presentation
DO-178B/ED-12B PresentationDO-178B/ED-12B Presentation
DO-178B/ED-12B PresentationAnkit Singh
 
Toilet etiquettes
Toilet etiquettesToilet etiquettes
Toilet etiquettesAnkit Singh
 
Indian German Unity
Indian German UnityIndian German Unity
Indian German UnityAnkit Singh
 
TINYOS Oscilloscope Application
TINYOS Oscilloscope ApplicationTINYOS Oscilloscope Application
TINYOS Oscilloscope ApplicationAnkit Singh
 
Mote Mote Radio Communication
Mote Mote Radio CommunicationMote Mote Radio Communication
Mote Mote Radio CommunicationAnkit Singh
 
TinyOS installation Guide And Manual
TinyOS installation Guide And ManualTinyOS installation Guide And Manual
TinyOS installation Guide And ManualAnkit Singh
 
Simple Railroad Command Protocol
Simple Railroad Command ProtocolSimple Railroad Command Protocol
Simple Railroad Command ProtocolAnkit Singh
 
Dane presentation
Dane presentationDane presentation
Dane presentationAnkit Singh
 
Anti Collision Railways System
Anti Collision Railways SystemAnti Collision Railways System
Anti Collision Railways SystemAnkit Singh
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault ToleranceAnkit Singh
 

More from Ankit Singh (20)

IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...
IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...
IoT in Mining for Sensing, Monitoring and Prediction of Underground Mines Roo...
 
Security Vision for Software on Wheels (Autonomous Vehicles)
Security Vision for Software on Wheels (Autonomous Vehicles)Security Vision for Software on Wheels (Autonomous Vehicles)
Security Vision for Software on Wheels (Autonomous Vehicles)
 
Parallex - The Supercomputer
Parallex - The SupercomputerParallex - The Supercomputer
Parallex - The Supercomputer
 
Design Alternative for Parallel Systems
Design Alternative for Parallel SystemsDesign Alternative for Parallel Systems
Design Alternative for Parallel Systems
 
Restricted Usage of Anonymous Credentials in VANET for Misbehaviour Detection
Restricted Usage of Anonymous Credentials in VANET for Misbehaviour DetectionRestricted Usage of Anonymous Credentials in VANET for Misbehaviour Detection
Restricted Usage of Anonymous Credentials in VANET for Misbehaviour Detection
 
The Security and Privacy Threats to Cloud Computing
The Security and Privacy Threats to Cloud ComputingThe Security and Privacy Threats to Cloud Computing
The Security and Privacy Threats to Cloud Computing
 
The Security and Privacy Requirements in VANET
The Security and Privacy Requirements in VANETThe Security and Privacy Requirements in VANET
The Security and Privacy Requirements in VANET
 
Master Teset Specification SRCP
Master Teset Specification SRCPMaster Teset Specification SRCP
Master Teset Specification SRCP
 
MicazXpl Intelligent Sensors Network Project Presentation
MicazXpl Intelligent Sensors Network Project PresentationMicazXpl Intelligent Sensors Network Project Presentation
MicazXpl Intelligent Sensors Network Project Presentation
 
Micazxpl - Intelligent Sensors Network project report
Micazxpl - Intelligent Sensors Network project reportMicazxpl - Intelligent Sensors Network project report
Micazxpl - Intelligent Sensors Network project report
 
DO-178B/ED-12B Presentation
DO-178B/ED-12B PresentationDO-178B/ED-12B Presentation
DO-178B/ED-12B Presentation
 
Toilet etiquettes
Toilet etiquettesToilet etiquettes
Toilet etiquettes
 
Indian German Unity
Indian German UnityIndian German Unity
Indian German Unity
 
TINYOS Oscilloscope Application
TINYOS Oscilloscope ApplicationTINYOS Oscilloscope Application
TINYOS Oscilloscope Application
 
Mote Mote Radio Communication
Mote Mote Radio CommunicationMote Mote Radio Communication
Mote Mote Radio Communication
 
TinyOS installation Guide And Manual
TinyOS installation Guide And ManualTinyOS installation Guide And Manual
TinyOS installation Guide And Manual
 
Simple Railroad Command Protocol
Simple Railroad Command ProtocolSimple Railroad Command Protocol
Simple Railroad Command Protocol
 
Dane presentation
Dane presentationDane presentation
Dane presentation
 
Anti Collision Railways System
Anti Collision Railways SystemAnti Collision Railways System
Anti Collision Railways System
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault Tolerance
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Cooperative Linux

  • 1. 1 --- Cooperative Linux . COOPERATIVE LINUX Mr. Ankit Singh Final year, Computer Engineering, AISSMS’s College of Engineering, Pune. Email : ankit***@***.com Contact no. : - +91-9******5 Mr. Sushant Bhadkamkar Final year, Computer Engineering, AISSMS’s College of Engineering, Pune. Email : ***sushant@***.com Contact no. : - +91-9*****4
  • 2. 2 --- Cooperative Linux . Abstract In this paper we will describe Cooperative Linux (short-named coLinux), an effective way to run Linux under other operating system such as Windows, Linux etc. The paper briefly presents technical details as to how cooperation between two operating systems is achieved. We will compare coLinux with other virtual machines available and discuss the advantages and the downsides of using coLinux. The paper also discusses a few applications and projects currently being carried out with the help of coLinux. Keywords Virtualization, CVM (Cooperative Virtual Machine), Host OS, Kernel. 1. Introduction Operating system virtualization is popular technology these days. People run different operating systems on top of their existing ones not only for experimental purposes but also for production use. Many different virtualization systems exist. In 2004, a novel concept of co- operative virtualization was introduced by Mr. Dan Aloni which made it possible for two operating systems to work in co- operation, both having complete control of the host machine. 1.1 Virtualization Virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments, by applying one or more concepts or technologies such as hardware and software partitioning, time-sharing, partial or complete machine simulation, emulation, quality of service, and many others. Figure 1.1: An Example of virtualization. 1.2 Cooperative Linux Cooperative Linux, the first working free and open source method for optimally running Linux on Microsoft Windows natively. More generally, Cooperative Linux is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine. The term ‘Cooperative’ is used to describe two Entities working in parallel, e.g. co-routines. In that sense the simplest description of Cooperative Linux is turning two operating system kernels into two big co-routines. In that mode, each kernel has its own complete CPU context and address space, and each kernel
  • 3. 3 --- Cooperative Linux . decides when to give control back to its partner. However, only one of the two kernels has control on the physical hardware, where the other is provided only with virtual hardware abstraction. 2. Implementation 2.1 Design of coLinux coLinux is a port of the Linux kernel that is modified to run cooperatively with another operating system. Dan Aloni describes coLinux as a cooperative and paravirtualized Linux virtual machine. Cooperative means that it gives control back to the host OS at will. Paravirtualized means that the coLinux kernel has no notion of the real hardware except that of the CPU and memory. The host operating system (Windows or Linux) maintains control of the physical resources of the operating system, while the guest operating system (coLinux) is provided with a virtual abstraction of the hardware. The host operating system must provide the means to execute a driver in the privileged ring (ring 0) and export the means to allocate memory. This is unlike VMware which intercepts I/O to hardware devices and emulates it. coLinux feels like a separate Linux box -- the guest kernel's internals are separated from the host kernel's internals. Figure 2.1. coLinux internals. Notice that coLinux consists of two parts:  The coLinux kernel driver that operates in the host kernel space.  Several user space daemons. The coLinux kernel driver's main jobs are to: Load the Linux guest kernel image on start. You can imagine this functionality being similar to a bootloader (like LILO or GRUB).  Execute ioctl() requests as instructed by the coLinux-daemon process. This ioctl() call is responsible for doing context switches between guest OS and host OS.
  • 4. 4 --- Cooperative Linux .  Act as a forwarder of interrupts and requests from several virtual drivers: cobd (block device), conet (network), and cocon (console). In the user space, the most important part is the coLinux-daemon-process. Besides being responsible for triggering context switches, it works as the "manager" of several other daemons such as coLinux- console-nt and coLinux-net-daemon. For example, via coLinux-console, users can see the current display of the active console of the Linux guest. When the user types or issues a command inside the shell of this coLinux-console, the coLinux- daemon will "wrap" it and forward it to coLinux-driver. Figure 2.2: Virtualization in coLinux This concept is called ‘cooperative virtualization’. 2.2 Device Driver The device driver port of Cooperative Linux is used for accessing kernel mode and using the kernel primitives that are exported by the host OS kernel. Most of the driver is OS independent code that interfaces with the OS dependent primitives that include 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 that was compiled from the patched kernel with CONFIG_COOPERATIVE. The vmlinux file doesn’t need any cross platform tools in order to be generated, and the same vmlinux file can be used to run a Cooperative Linux VM on several OSes of the same architecture. 3. Comparison with other VMs In this section we will compare coLinux with other Linux virtual machines.  coLinux runs without any hypervisor[1] , it is quite faster, and if you install it on standard partition you can get some speed in reading/writing to the disk.  In contrast to coLinux, traditional VMs are unprivileged and under the complete control of the host machine.  We can execute Linux applications on coLinux without rebuilding. [1] Virtual machine monitor that Arbitrates access to the physical hardware
  • 5. 5 --- Cooperative Linux .  coLinux is faster than other VMs as coLinux allows the Linux kernel to run natively (as a Windows kernel driver). 4. Advantages  Effective way for casual windows users to install and explore Linux. Windows users who are reluctant to use Linux and other open source software because of the complicated technicalities, can be encouraged to do so because of the relative easiness of using coLinux. Installing coLinux is relatively easier if normal installation instructions are followed.  coLinux is portable You can have a coLinux distribution with a custom set of applications on a given Windows host (within the root file system). You can move the root file system to another host, and then restart it. This allows for a mobile development platform where the compressed root file system fits on a standard Universal Serial Bus (USB) memory stick.  Using two OSes without rebooting. The people, who already use Linux, will use coLinux as a convenience, in order to be able to do said Linux things in Windows without having to reboot.  Linux kernel research coLinux kernel can be used to study the Linux kernel, the two being quite similar 5. Disadvantages  The primary disadvantage of coLinux is that it has the ability to crash the entire machine (all cooperating operating systems). The guest operating system runs in a privileged mode in the host kernel. It also has some dependencies on external software for normal operation (windows and networking support).  coLinux cannot be run in NT 4.0. This is because some system calls are missing in NT 4 (even with SP6) and present only in 2000, XP and 2003.  Limited Graphics Support. Graphics performance is also dependent on the speed of the connection between the coLinux OS and the Hosting OS.  Another disadvantage is security. Acquiring root user access on a Cooperative Linux machine can potentially lead to root access on the host machine. An attacker can load specially crafted kernel module or find some other way to inject code into the
  • 6. 6 --- Cooperative Linux . running coLinux kernel, causing the entire system to crash. 6. Projects using coLinux  IBM is attempting to combine coLinux and openMosix to offer a high-performance cluster middleware in a heterogeneous environment. In this heterogeneous environment, Linux™ provides the stability and performance, and Windows® users continue to use _their apps and never notice the difference.  A coLinux Cross Tools CD-ROM has been available from SSV Embedded Systems since June 2005 and makes it possible use coLinux for software development of DIL/NetPC-based embedded Linux applications. 7. Future of coLinux coLinux is still a project in its beta and has a small developer community. The community will have to decide whether it wants to promote coLinux as tool for users to try out Linux or as a convenience for developers. If the former is the case then coLinux will have to be made more user- friendly. A lot more documentation will have to provided for troubleshooting. Developers on the other hand will require for it to have latest distribution support and support for architectures other than x86. India on the other hand can benefit a great deal from coLinux as more and more enterprises attempt to migrate towards Linux and open source software. coLinux can be used as a training tool in academic institutes and students can get involved in the coLinux project development. 8. Conclusion While there are many virtualization schemes out there, coLinux is novel in its approach and the capabilities that it provides. coLinux is not perfect but the exposure that Linux gets by the average computer user can increase tremendously. Moreover it is an open source tool. The implications that Cooperative Linux has on what the media defines as ‘Linux on the Desktop’—are massive, as the world’s most dominant albeit proprietary desktop OS supports running Linux distributions for free, as another software, with the aim of possibility that the Linux newbie would switch to the standalone Linux. So, if you want an easy way of running simple, not very graphics demanding applications from Linux on Windows, you are a developer who develops for both systems, or if you are just a Linux enthusiast who wants to have his beloved
  • 7. 7 --- Cooperative Linux . applications at hand while using Windows, and you don’t mind occasional problems with graphics – coLinux is the solution for you. References 1. www.kernel.org 2. http://colinux.wikia.com/wiki/Main _Page 3. http://www.ibm.com/developerwor ks/opensource/ 4. coLinux 2004 publication – Dan Aloni 5. Rute User’s Text and Exposition – Paul Sheer 6. linux.colinux.devel .