Est-il possible de double amorcer deux systèmes d'exploitation en même temps?

36

Est-il possible de double amorcer deux systèmes d'exploitation en même temps?

Par exemple : je suis actuellement en train de double amorcer Ubuntu 11.04 et Windows 7. Ubuntu s’exécute sur un seul disque dur de 500 Go, Windows 7 s’exécutant sur un miroir RAID 1 de 1 To. Pour basculer entre les deux systèmes d'exploitation, un redémarrage est requis. Est-il possible de basculer entre les deux systèmes d'exploitation sans redémarrage?

REMARQUE : Je connais parfaitement les fonctionnalités de VirtualBox et de VMWare Player. J'utilise les deux. S'il vous plaît ne répondez pas "Utilisez la virtualisation!"

EDIT: Si cela n’est pas possible, pouvez-vous expliquer pourquoi ce n’est pas possible? Pour moi, il ne semble pas que ce serait si difficile. Gardez à l'esprit que ma vision n'est pas encombrée de connaissances!

James Hill
la source
Sur un ordinateur central avec une mémoire partitionnée ...
Fiasco Labs

Réponses:

36

La plupart des systèmes d’exploitation traditionnels, sinon tous, s’attendent à avoir un accès exclusif aux fonctionnalités de bas niveau de l’ordinateur hôte (matériel, ports, etc.) et n’ont aucune notion de partage avec autre chose - cela ne fonctionnera tout simplement pas - Pour essayer de faire fonctionner simultanément deux systèmes d’exploitation sur le même système, une sorte d’arbitre transparent est nécessaire pour protéger les systèmes d’exploitation les uns des autres, c’est-à-dire une application de virtualisation.

Linker3000
la source
L'application de virtualisation semble être le consensus. Existe-t-il des options libres ou open source que vous recommanderiez?
James Hill
2
Cela dépend vraiment de ce que vous essayez de faire, car certaines applications de VM sont meilleures à certains égards que d’autres, mais en général: Choisissez votre système d’exploitation par défaut principal (par exemple: boot sur Ubuntu ou Windows), puis installez Virtualbox, VM Player favoris) ou votre application de VM préférée, puis installez l’autre système d’exploitation en tant que machine virtuelle dans cet environnement.
Linker3000
vous pouvez créer une distribution Ubuntu basée sur colinux. colinux exécute le noyau Linux en tant que processus sous Windows; il ne s’agit donc pas vraiment de virtualisation. En un sens, la question initiale est possible, cela n’a pas encore été fait.
Jay R. Wren
Cependant, certains ont été portés pour fonctionner sur des systèmes d'exploitation, par opposition au matériel réel - UserModeLinux est le contre-exemple parfait. colinux (comme mentionné par @Jay) est un autre exemple de système d'exploitation "transféré" à un autre.
new123456
15

Vous semblez rejeter Hyper-V et Xen (les hyperviseurs «à nu») même s’ils se rapprochent le plus de ce que vous semblez demander. Oui, c'est de la virtualisation, mais pas de la même manière que VirtualBox.

Imaginez que VirtualBox soit son propre système d'exploitation. Vous pouvez donc installer un petit système d'exploitation VirtualBox, puis exécuter Windows et Ubuntu côte à côte en tant que machines virtuelles sur le système d'exploitation VirtualBox. Eh bien, c’est essentiellement ce que font Hyper-V ou Xen. Il ne s'agit que d'une couche de virtualisation fine entre le matériel et les systèmes d'exploitation invités. Vous pouvez aussi les exécuter directement à côté du matériel et des systèmes d'exploitation existants.

Vous n'avez pas besoin d'un serveur séparé pour ces deux applications, vous devez simplement installer l'hyperviseur comme s'il s'agissait du premier système d'exploitation de la machine, puis ajouter Windows et Ubuntu en tant que machines virtuelles sous l'hyperviseur.

Xen et Hyper-V exécuteront Ubuntu et Windows en tant que systèmes d'exploitation invités, bien que cette configuration ne soit peut-être pas prise en charge. Xen étant plutôt Linuxy et Hyper-V étant un produit MS, je vous conseillerais donc de choisir l'hyperviseur en fonction du système d'exploitation avec lequel vous êtes le plus à l'aise.

Kevin
la source
8

La chose la plus proche que vous puissiez faire est d'utiliser l'hibernation. Malheureusement, les systèmes d'exploitation sont suffisamment étrangers l'un à l'autre pour qu'il ne soit pas possible pour les deux systèmes d'exploitation de fonctionner en même temps sans implémenter la virtualisation. Honnêtement, la virtualisation n’est plus aussi mauvaise que vous le pensez… surtout lorsque vous utilisez une plate-forme de virtualisation prenant en charge les extensions "VT". Les systèmes d'exploitation invités ont la capacité de communiquer directement avec le matériel et ont une cartographie de mémoire bien meilleure, etc. J'ai en fait configuré un système d'exploitation invité directement sur un SSD ... et il fonctionnait plus rapidement que le système d'exploitation hôte.

TheCompWiz
la source
Je n'ai aucun problème avec la virtualisation, j'utilise VirtualBox sur tous les ordinateurs que je possède. Pouvez-vous expliquer les extensions VT que vous avez mentionnées un peu plus? FYI - Ceci est pour un usage domestique donc je cherche un moyen peu coûteux (lire: libre / open source) de le faire.
James Hill
VT = Virtualisation matérielle. Fondamentalement, le processeur possède des extensions supplémentaires (nécessitant parfois d'être activées dans le BIOS) conçues pour faciliter l'exécution de systèmes d'exploitation en parallèle. VirtualBox peut le faire ... mais si vous êtes bloqué avec la virtualisation logicielle, elle ne fonctionnera pas bien. Parfois appelé VT-x, VT, AMD-V, Virtualisation matérielle ou une myriade de noms supplémentaires.
TheCompWiz
VMWare a-t-il cette extension "VT" dont vous parlez? Si oui, doit-il être activé explicitement?
MasterMastic
VT est une fonctionnalité du processeur. Que ce soit en fonction de la météo ou non, votre processeur intègre les bits ou non ... et également si la carte mère le supporte. (les extensions de processeur peuvent être désactivées dans de nombreux BIOS) Habituellement, cette option est activée par défaut ... mais peut être désactivée. Mon ordinateur portable HP l'avait éteint ... mais mes serveurs supermicro l'ont allumé.
TheCompWiz
7

Voici la raison simple et succincte pour laquelle la réponse est «non»: quel logiciel contrôlerait votre matériel?

Si OS 1 le fait, vous n'utilisez pas OS 2. Si OS 2 le fait, vous ne l'exécutez pas. S'il le fait tous les deux, un autre logiciel devra alors gérer son accès partagé au matériel physique. , et c’est la virtualisation (que vous avez exclue).

David Schwartz
la source
8
Sauf si OS 1 est OS / 2. Ensuite, votre OS / 2 sous OS 1.: D
Kenneth Cochran le
C'est tout simplement Warped ... Vous vous souvenez d'un système d'exploitation ordonné créé par une entreprise qui ne pouvait pas se vendre sans l'aide d'un sac en papier humide.
Fiasco Labs
2

Les choses qui me viennent à l’esprit sont les suivantes:
- Gestion de la mémoire (RAM et cache)
- Gestion des processus (processus en cours)

Vous aurez donc probablement besoin d’un homme au milieu qui jongle entre l’utilisation de la mémoire et les processus entre les deux systèmes d’exploitation.

Ce serait un autre OS / firmware.
Donc, si quelqu'un l'a implémenté, il pourrait vous en arriver avec 3 au lieu de 2 Oss simultanément

EDIT-
Ajout de ce que linker3000 a écrit: gestion des ports

Cet «homme du milieu» deviendra essentiellement votre SE hôte et les autres SE virtualisés, vous ramenant à ce que vous saviez déjà être une solution.

Shekhar
la source
2

Je suis conscient que tous les systèmes d’exploitation exigent un contrôle total du matériel informatique.

C'est théoriquement possible cependant. Les deux systèmes d'exploitation devraient être conçus pour:

  • Exécuter à la fois en tant que maître (contrôle total du matériel) et en tant qu'esclave (demande de ressources auprès du système d'exploitation maître)
  • Abandon du contrôle du matériel à la demande d'un autre système d'exploitation

Si ces deux conditions sont remplies, il sera possible d'exécuter simultanément deux systèmes d'exploitation sans aucune sorte de virtualisation. Cela ressemblerait à deux systèmes d'exploitation utilisant le multitâche coopératif . Bien entendu, le multitâche coopératif a pratiquement été abandonné à cause du problème des applications mal écrites refusant de céder le contrôle. Peut-être que deux systèmes d'exploitation correctement écrits joueraient bien. Là encore, quel serait l'incitatif?

Kenneth Cochran
la source
1

Permettez-moi de parler du "pourquoi".

L'une des raisons d'un système d'exploitation moderne est de permettre à plusieurs programmes (processus) de s'exécuter simultanément sur un système. Si vous voulez le faire en toute sécurité, il faut que les choses suivantes se produisent:

  • Vous ne voulez probablement pas (sauf si vous avez des besoins particuliers) diviser la RAM du système de manière fixe (256 Mo par processus, par exemple), ce qui vous limite à 8 processus sur un système de 2 Go. Vous voudriez que chaque processus puisse "demander" de la mémoire et la renvoyer quand c'est fait.

  • Vous ne souhaitez pas non plus diviser les périphériques d’entrée / sortie de façon fixe entre les périphériques. Généralement, vous souhaitez que tout ou partie du matériel, tel que la mémoire, soit une ressource partagée ou du moins que l'exclusivité temporaire de certains processus à des moments spécifiques. Cela nécessite que tous les processus n'essayent pas de faire des E / S par eux-mêmes, mais "effectuent" quelque chose pour planifier et coordonner les E / S. La planification est importante car la plupart des E / S est beaucoup plus lente que la CPU. Vous pouvez donc faire en sorte que la CPU fonctionne pour d'autres processus alors qu'elle attend des E / S, même sur un système monocœur.

Pour faire ce qui précède, il est nécessaire de tirer parti de plusieurs fonctionnalités matérielles de la CPU. L'un d'entre eux est la MMU, l'autre est le mode protégé. Deux systèmes d'exploitation peuvent-ils partager ces fonctionnalités matérielles de manière coopérative pour exécuter deux systèmes d'exploitation ou plus?

Bien sûr, mais rien dans le matériel ne peut empêcher un système d’exploitation de bouger dans la mémoire des autres systèmes. Si la CPU est en mode noyau (elle n’a qu’un seul mode noyau), n’importe quel code peut tout faire. Le code d'un système d'exploitation peut à 100% être exécuté sur le code ou les données de l'autre système d'exploitation. Et nous savons que les systèmes d’exploitation ont eu des vulnérabilités dans le passé et qu’ils en auront d’autres à l’avenir. C'est donc très mauvais pour la sécurité.

Maintenant, ça ne serait pas cool si vous pouviez mettre une autre "couche" dessus et avoir le support matériel nécessaire pour plusieurs systèmes d'exploitation? C’est exactement ce que font les fonctionnalités de virtualisation matérielle: elles placent une barrière matérielle entre plusieurs systèmes d’exploitation en cours d’exécution, et il existe une "interface" de haut niveau pour eux appelée hyperviseur. Vous ne pouvez avoir qu'un seul hyperviseur. Et oui, les processus exécutés sous l'un des deux systèmes d'exploitation doivent passer par trois couches pour effectuer des E / S (processus - noyau local - hyperviseur)

LawrenceC
la source
0

Je sais que vous avez dit non à la virtualisation, mais quelque chose comme le serveur MS Hyper V peut répondre à vos besoins

Akash
la source
Hyper-V nécessiterait un deuxième ordinateur pour agir en tant que serveur. Si j'avais une deuxième machine aussi puissante, je la placerais à côté de mon autre tour et les lancerais avec un système d'exploitation différent :). De plus, d'après ce que j'ai compris, l'installation ne coûterait pas moins de 2 000 dollars.
James Hill
Je pense que vous pouvez exécuter Hyper V sur un seul ordinateur.
Akash
2
le V dans hyper-v est destiné à la virtualisation. si la contrainte n'est pas la virtualisation, alors hyper-v n'est pas une solution.
Jay R. Wren
0

Il n'y a pas d'autre moyen que la virtualisation. Je trouve difficile d’obtenir des informations précises sur les systèmes invités qui fonctionneront pour les différents hyperviseurs. http://en.wikipedia.org/wiki/Hypervisor Devrait être un bon début pour obtenir des informations et Xen pourrait être utile d'essayer, mais j'attendrais que quelqu'un confirme définitivement ou nie s'il prend en charge les invités Windows 7.

Nornagest
la source