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!
la source
Réponses:
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.
la source
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.
la source
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.
la source
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).
la source
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.
la source
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:
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?
la source
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)
la source
Je sais que vous avez dit non à la virtualisation, mais quelque chose comme le serveur MS Hyper V peut répondre à vos besoins
la source
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.
la source