Cooperative Linux

Cooperative Linux

Cooperative Linux, ou coLinux pour faire court, est un bout de logiciel libre qui permet au noyau Linux de tourner sous Microsoft Windows sans perte significative de performances.

Sommaire

Description

Cette application a été écrite par Dan Aloni, un étudiant en informatique, avec l'aide d'autres développeurs. Elle est diffusée selon les termes de la licence GNU GPL.

coLinux se compose d'un noyau Linux, de quelques exécutables Windows dont un simulant une console et d'un adaptateur réseau virtuel, et peut tourner sous les systèmes d'exploitation Windows 2000 et supérieurs.

Il ne simule pas un PC virtuel complet comme VMware le fait : la carte vidéo ou la carte son de l'ordinateur hôte lui sont inaccessibles, mais vous pouvez utiliser un serveur X-Window sous Windows, ou même X et VNC dans coLinux. De même, vous pouvez transférer les flux audio vers un serveur sous Windows qui les jouera à son tour.

KDE, GNOME et en fait la plupart des applications Linux fonctionnent sans le moindre souci, sauf si elles utilisent spécifiquement le matériel (comme l'exigerait une application reposant sur l'accélération OpenGL de la carte graphique, par exemple). Exit donc les jeux et applications 3D, mais même des monstres comme Oracle tournent sans problème.

Les distributions Debian et Gentoo sont très populaires chez les utilisateurs de coLinux car des images pré-installées de ces distributions sont directement disponible. De même, Fedora est proposé sur le site officiel de coLinux et des utilisateurs ont réalisé des images de distributions Slackware, Mandriva... pour leurs propres besoins. Il est également possible d'utiliser un Linux déjà installé sur une autre partition.

Considérations techniques

Cooperative Linux utilise le concept — plutôt rarement utilisé à l'époque — d'une Cooperative Virtual Machine (CVM, machine virtuelle coopérative), contrairement aux machines virtuelles classiques qui ne tournent pas de façon privilégiée et restent sous le contrôle complet de la machine hôte.

Le terme Cooperative (coopératif, en coopération) est utilisé pour décrire deux entités travaillant de concert en parallèle, c’est-à-dire des coroutines. En ce sens, une description très générale de Cooperative Linux serait qu'il fait tourner deux noyaux de systèmes d'exploitation dans deux (grosses) coroutines. Dans ce mode, chaque noyau (Linux et NT) a son propre contexte processeur, et chaque noyau décide quand redonner le contrôle à son partenaire.

Cependant, seul un des noyaux peut avoir le contrôle physique sur le matériel, alors que l'autre doit se contenter d'abstractions fournies par des composants matériels virtuels. L'hôte peut être n'importe quel noyau de système d'exploitation qui peut fournir quelques fonctions de base (dite primitives ou de bas niveau) pour permettre au pilote de périphérique fourni par Cooperative Linux de tourner en mode CPL0 (dit aussi ring 0) et allouer de la mémoire, qui sera utilisée par le noyau Linux.

Cette approche spéciale par le mode CPL0 rend Cooperative Linux radicalement différent des autres méthodes de virtualisation de machines plus traditionnelles comme VMware, plex86 ou encore VirtualPC, et d'autres méthodes comme Xen : Toutes ces approches font tourner le système d'exploitation invité (ici, Linux) dans un mode moins privilégié que celui de son hôte.

L'approche utilisée par Cooperative Linux a permis une conception bien plus simple et son développement initial a ainsi duré moins d'un mois, entre la première modification d'un noyau Linux 2.4.23-pre9 jusqu'à ce qu'à un point où KDE puisse tourner.

Les seuls défauts de cette approche sont la stabilité et la sécurité. Si le noyau invité (coLinux) devient instable, il peut faire planter le système entier (Windows). Cependant, on peut prendre des mesures comme l'arrêter proprement aux premiers signes critiques (Oops ou panic error). Concernant la sécurité, fournir un accès total (root) sur la partie Cooperative Linux peut certes donner un accès total (Administrateur) à la partie Windows qui joue le rôle d'hôte, par exemple en utilisant des modules de noyau spécialement écrits.

La plupart des modifications apportées au noyau par coLinux concernent la branche pour processeurs i386 -- la seule architecture supportée pour l'instant. Elles concernent surtout l'initialisation du noyau Linux. Les autres modifications concernent surtout l'ajout de drivers virtuels : cobd (Cooperative Linux block devices), conet (Cooperative Linux network), and cocon (Cooperative Linux console). Rester le plus près possible du noyau de base est un objectif avéré du projet Cooperative Linux en termes de conception, afin de minimiser l'impact et l'étendue de ces modifications.

Architecture

Architecture de coLinux
User-space
noyau coLinux
User-space
noyau Windows
Microsoft Windows
Matériel

Noyaux en user-space

User Mode Linux est un noyau Linux qui tourne dans l'espace utilisateur d'un système d'exploitation hôte basé sur Linux. Cooperative Linux est un noyau Linux qui tourne dans l'espace utilisateur d'un système d'exploitation hôte Microsoft Windows.

Voir aussi

Liens internes

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Cooperative Linux de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • Cooperative Linux — Ubuntu on Windows Vista …   Wikipedia

  • Cooperative Linux — Virtualisierungslösung Basisdaten Entwickler Das coLinux Team Aktuelle Version …   Deutsch Wikipedia

  • Cooperative Linux — Desarrollador Comunitario www.colinux.org Información general Última versión estable 0.7.6 6 de marzo de 2010; hac …   Wikipedia Español

  • Cooperative Linux — …   Википедия

  • Linux-VServer — Dernière version 2.2 [+/−] …   Wikipédia en Français

  • Linux-vserver — Dernière version 2.2 [+/−] Environnement …   Wikipédia en Français

  • LINUX —  Pour l’article homonyme, voir Linux (homonymie).  Linux …   Wikipédia en Français

  • Linux's Not UNIX — Linux  Pour l’article homonyme, voir Linux (homonymie).  Linux …   Wikipédia en Français

  • Linux Is Not UNIX — Linux  Pour l’article homonyme, voir Linux (homonymie).  Linux …   Wikipédia en Français

  • Linux x86 64 — Linux  Pour l’article homonyme, voir Linux (homonymie).  Linux …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”