Le scénario:
- Je suis un développeur de logiciels indépendant qui développe principalement sur Linux (Python, MySQL, MongoDB etc.)
- Mon ordinateur de travail est un ordinateur portable Lenovo avec un processeur i7 et 8 Go de RAM. Big HD + 128 Go SSD. Le système d'exploitation est Ubuntu Linux
Je pourrais obtenir des projets .NET / C # dans un proche avenir, je suis donc à la recherche de conseils sur les points suivants:
- Dois-je opter pour une solution à double démarrage ou utiliser des machines virtuelles pour Windows?
- Si je fais un double démarrage: Quelle est la séquence d'installation recommandée? Windows d'abord ou Linux d'abord? (Je regarde une réinstallation complète d'Ubuntu pour obtenir le dernier LTS de toute façon afin que je puisse commencer à installer tout frais)
- Si je vais sur une machine virtuelle: comment VMWare Workstation et VirtualBox se comparent-ils en termes de performances?
- La configuration de mes rêves serait probablement la suivante:
- Double démarrage
- Mais si je démarre sous Linux, je peux démarrer la partition Windows en tant que machine virtuelle. Est-ce possible?
- Et / ou: Si je démarre sous Windows, je peux démarrer la partition Linux en tant que machine virtuelle. Est-ce possible?
linux
windows
boot
virtualization
visual-studio
codeape
la source
la source
Réponses:
D'autres ont couvert le reste de votre question, mais je vois qu'ils ont laissé cette partie sans réponse:
La reponse courte est oui.
La réponse longue est oui, mais avec un certain nombre de mises en garde et d'implications.
Jusqu'en janvier (lorsque nous avons obtenu de nouvelles machines), mon ordinateur de travail était configuré pour un double démarrage ou pour utiliser Linux comme hôte pour une machine virtuelle Windows 7 qui accédait directement à la partition Windows. Je n'ai jamais pris la peine d'essayer d'utiliser Windows comme hôte pour une machine virtuelle Linux à disque direct, mais c'est également possible. Mon ordinateur a utilisé le BIOS / MBR hérité, je ne sais pas comment procéder si vous utilisez UEFI / GPT.
J'ai choisi VirtualBox pour le faire, mais d'après ce que je comprends, cela devrait également être possible avec VMWare.
La performance était parfaitement acceptable pour mes besoins; J'ai donné un cœur de processeur Windows 1, 2 Go de mémoire, 1 moniteur et je ne me souviens pas de la quantité de mémoire vidéo. La machine virtuelle était capable de lire des vidéos et de travailler avec mon application d'interface graphique Java et de nombreux sites Web à contenu riche.
Je vais discuter de l'étrangeté avant d'entrer dans les détails:
Le basculement entre le démarrage natif et le mode VM Windows 7 a déclenché l'avertissement de Windows que ma copie de Windows n'était pas authentique. En fonction de votre licence, MS peut considérer cela comme une violation de licence en installant sur deux pièces de matériel. J'ai également eu besoin de "réparer" mon installation car de nombreux pilotes de bas niveau sont différents pour le matériel réel et le "matériel" de la machine virtuelle.
Chaque fois que Windows Update s'exécutait (ou toute autre opération d'E / S sur grand disque), mon disque dur était écrasé sous charge et tout sur les deux machines devenait lent. Le déplacement de chaque système d'exploitation vers son propre disque dur dédié a résolu ce problème; l'utilisation d'un disque SSD aurait également résolu le problème.
Pour une raison quelconque, Ubuntu n'aimait pas parfois se réveiller après une suspension (peut-être 20% du temps), ce qui équivalait à une mise hors tension forcée pour ma machine virtuelle Windows. En conséquence, je mettrais la machine virtuelle hors tension tous les soirs avant de suspendre l'hôte.
J'ai dû faire très attention à ne jamais tenter de monter la partition Windows sous Linux pour éviter une éventuelle corruption / perte de données. J'ai rapidement ajouté une règle udev pour éviter cela.
D'accord, si cela ne semble pas trop mal, voici les détails: La référence la plus utile que j'ai trouvée pour ce faire est ce blog: http://www.rajatarya.com/website/taming-windows-virtualbox-vm . Voici les étapes résumées:
RTFM. Vraiment. Vous utiliserez des commandes qui pourraient corrompre votre système de fichiers en cas d'erreur.
Trouvez les partitions.
Modifiez les autorisations pour vos partitions (vous pouvez également démarrer votre machine virtuelle à l'aide de sudo, mais tous les fichiers créés sur le lecteur partagé hôte / invité appartiendront à root).
Créez un MBR pour que l'invité n'essaye pas d'utiliser le chargeur de démarrage normal.
Utilisez une commande interne VirtualBox pour créer l'image vmdk à utiliser pour la machine virtuelle.
Créez la VM. Demandez-lui d'utiliser le vmdk que vous venez de créer.
Démarrez et réparez votre installation.
Je m'attendrais à trouver plusieurs des mêmes problèmes en utilisant un hôte Windows, mais Linux gérerait probablement les différents matériels plus élégamment. Il pourrait être plus facile d'utiliser une ou des partitions partagées / home (et peut-être / opt) et de simplement avoir des partitions racine différentes pour les machines natives vs invitées.
la source
Je fais généralement le contraire, c'est que mon système domestique est une machine Windows 7 et j'exécute différentes versions de Linux en tant que VM. Étant donné que Linux peut fonctionner très bien avec des ressources limitées, cela fonctionne pour moi même si je n'ai que 4 Go de RAM (attention, cela signifie que je n'exécute qu'une seule machine virtuelle à la fois et que je lui donne généralement 1024 Mo de RAM au maximum pour en garder beaucoup) Pour les fenêtres).
Vos 8 Go de RAM devraient vous permettre d'exécuter une machine virtuelle Windows assez facilement. Je pense que la seule grande question ici est le type de résultats que vous voudrez mesurer pour votre développement. J'hésiterais à me fier à toute mesure de performances / débit pour les éléments que vous développez dans une machine virtuelle (à moins qu'elle ne soit déployée dans un environnement de machine virtuelle similaire avec les mêmes spécifications à tous les niveaux). Sinon, vous devriez être prêt à partir.
Et pour aborder les commentaires dans un autre fil, naturellement si vous allez savoir que vous développerez des applications qui nécessitent une grande quantité de ressources, l'optimisation à cette fin serait la voie à suivre (donc dans ces cas, le double démarrage serait certainement être préférable à l'utilisation de VM).
J'ai utilisé à la fois VMWare et VirtualBox, et je n'ai vu aucun résultat de performance réel en utilisant l'un ou l'autre. Je ne suis pas allé au point de comparer les machines virtuelles à l'intérieur, je n'ai tout simplement pas remarqué d'impact négatif de l'une ou l'autre plate-forme (utilisez toujours VirtualBox à la maison et VMware au travail).
la source
Cela dépend de la façon dont vous travaillez et de la façon dont vous voulez que le système d'exploitation se sente .
Le double démarrage signifie redémarrer et démarrer si vous souhaitez changer le système d'exploitation, cela prend du temps . En tant que freelance, travaillez-vous 8 heures d'affilée avec un projet sans faire "votre" truc ("votre truc" serait vous sur votre boot linux).
Si vous travaillez 8 heures de suite sous Windows, puis passez le reste de la journée sous Linux, utilisez le double démarrage. Si vous travaillez 30 minutes et que vous voulez ensuite faire quelque chose sous Linux, passez de nouveau à travailler pendant 3 heures, puis à nouveau sous Linux, etc. Ensuite, je choisirais VM.
Si vous n'êtes pas sûr, faites les deux. Double démarrage et lorsque dans Windows exécutez une machine virtuelle. Vous verrez une nette différence entre les deux et vous préférerez l'un à l'autre.
Personnellement, j'utilise uniquement un vm pour tester de nouvelles distances linux et parfois un faux serveur lors du développement (être capable de bousiller un vm est inestimable et tellement moins compliqué que de le faire sur votre disque dur réel.). La VM est également en retard et se sent moins sensible, j'ai besoin que mon système d'exploitation soit réactif et fluide, la VM manque dans ce domaine. Je préfère donc le dual boot.
Il y a aussi un problème quand il s'agit de partager des fichiers. C'est plus de travail à partager sur un double démarrage (imaginez éditer un fichier au démarrage de Windows puis démarrer sous Linux seulement pour réaliser que vous avez manqué une ligne et devez redémarrer dans Windows, le cauchemar!) Où sur un vm, vous pouvez utiliser NFS ou samba pour partager des fichiers entre les os en temps réel, pas de problème.
Aussi pas assez de bélier comme le disait Aboba, je dis des ordures. J'exécute 4 Go et une machine virtuelle sous Windows8. Souvenez-vous cependant des ressources dont votre projet a besoin.
la source
Ou comment ça. Vous êtes intéressé par .net / C #, alors pourquoi ne pas simplement utiliser Mono sur linux? Sa plateforme très croisée au sens java est.
la source
Personnellement, j'ai eu de nombreuses expériences positives en prenant la route à mi-chemin, utilisez un hyperviseur tel que Xen, vous pouvez alors faire fonctionner Linux et Windows sous un hyperviseur micro-noyau léger, ni prendre un coup de performance significatif et cette configuration est beaucoup plus flexible , vous permettant de réaffecter facilement des ressources entre les deux à tout moment.
Cela correspond presque à la configuration de vos rêves, car vous pouvez démarrer ou arrêter les deux systèmes d'exploitation indépendamment à tout moment pour réaffecter des ressources à l'autre et vous ne pourrez pas remarquer de baisse de performances (en réalité, cela peut être une fraction d'un% plus lent dans certains cas, mais vous ne le remarquerez pas, sauf si vous effectuez une analyse comparative spécifique pour le tester).
Le seul problème est que certaines fonctionnalités nécessitent que votre CPU prenne en charge la visualisation, mais chaque i7 le fait (afaik), cela ne devrait donc pas être un problème pour vous.
MODIFIER:
Xen contient son propre micro-noyau, Debian n'est pas nécessaire pour l'exécuter, la seule raison pour laquelle on aurait besoin d'un système linux est de reconfigurer Xen car le programme de configuration est un programme linux que vous exécutez sur l'un des invités (invité est le terme utilisé par Xen pour signifier une VM). Vous pouvez avoir à tout moment linux, juste des fenêtres ou les deux, mais vous aurez besoin de linux pour configurer les paramètres de Xen, il est donc conseillé de laisser un petit linux en arrière-plan pour le faire en cas de besoin.
Le matériel peut être géré de plusieurs manières, Xen fournit un ensemble de périphériques virtuels qui permettent à un morceau de matériel d'être utilisé par plusieurs invités à la fois, comme les cartes réseau et les cartes son, etc.
Pour le matériel qui ne peut pas fonctionner de cette façon ou qui n'est requis que par un invité à la fois, xen dispose de dispositifs d'intercommunication, cela signifie que vous pouvez sélectionner et choisir à tout moment quel invité a un accès direct au matériel et peut le changer à tout moment. temps. Cela peut être fait pour donner à un invité spécifique un véritable accès à la carte graphique si vous avez besoin d'un rendu accéléré à haute vitesse sans surcharge de virtualisation .
Il est également possible d'avoir un invité directement en utilisant la carte graphique en mode passe-système comme expliqué ci-dessus, mais toujours en voir d'autres en utilisant un protocole local de type VNC qui fait apparaître l'écran des autres invités dans les fenêtres (pensez à une boîte virtuelle ou à un bureau distant) tandis que l'on a le contrôle direct de la carte graphique; ou bien sûr, vous pouvez simplement basculer entre les écrans des invités en donnant un accès direct à la fois.
Contrairement à ce que vous pouvez supposer sur l'efficacité de cette configuration, c'est en fait l'une des rares façons d'exécuter les deux systèmes d'exploitation en même temps tout en conservant des performances natives efficaces dans les deux, si vous effectuez une recherche sur Google, vous constaterez que beaucoup ont réussi à utiliser une telle configuration pour exécuter une machine de jeu haute performance ou d'autres systèmes exigeants.
la source
Selon mon expérience (je travaille également sur des applications .Net tout en testant des trucs sympas et en résolvant des problèmes d'algo sur linux), le double démarrage sera votre meilleur pari.
Comme d'autres l'ont souligné, l'utilisation d'une machine virtuelle semble parfois lente et ne répond pas, ce qui peut être pénible.
Une autre chose que je voudrais souligner, c'est que vous prenez votre temps et essayez d'exécuter une machine virtuelle et vérifiez si vous êtes à l'aise avec elle.
Comme pour l'ordre
1) installez d'abord windows puis linux (pré-configuré)
2) installez linux d'abord puis windows (ensuite vous devez réinstaller bootloader)
Une autre chose que je voudrais ajouter est que pour les petits projets .Net, vous pouvez même utiliser linux en mono, donc pas besoin de basculer de Windows vers linux.
la source
Je fais beaucoup de développement linux / Visual Studio commuté depuis un peu plus d'un an maintenant, en commençant par Visual Studio et en passant à linux au fil du temps (j'aime apt, zsh et vim!).
J'ai commencé avec Windows hébergeant Ubuntu dans VMWare Player, qui fonctionnait assez bien, certainement génial si vous faites principalement du développement Visual Studio et que vous avez simplement besoin occasionnellement d'un package Linux uniquement ou autre. Au fil du temps, j'ai trouvé que je voulais que mon travail soit dans l'environnement Linux plus souvent et que l'intégration de la VM ait eu quelques problèmes, alors ...
Comme je suis passé principalement au développement linux (beaucoup d'AS3 dans IntelliJ et certains nœuds + python) avec seulement un besoin occasionnel de Windows (site ASP.NET), j'ai inversé cela pour Ubuntu hébergeant une VirtualBox (en utilisant un disk2vhd -> .vdi de mon ancien disque Windows). Après une bonne partie de violon, je suis assez satisfait de cela, étant donné la répartition du travail que j'ai généralement, mais si vous faites une quantité sérieuse de Visual Studio, vous voulez probablement que Windows héberge Linux, VirtualBox ou VMWare Player devrait être bien.
Je dois cependant noter quelques points douloureux: avec les pilotes vidéo standard Ubuntu 14.04 AMD, l'accélération 3D de VirtualBox rend Visual Studio ~ 10-100x plus lent, désactivez donc l'accélération au prix d'une certaine lenteur; et vous voulez vraiment courir sur un SSD)
la source