Licence CC BY-SA

Comment travailler avec windows quand on est Linuxien ?

Il est parfois difficile de travailler sous Windows lorsque l'on est Linuxien, je vais vous partager mon expérience à ce sujet.

Dernière mise à jour :
Auteur :
Catégories :
Temps de lecture estimé : 7 minutes

Avant de commencer

Je tiens à préciser que cet article n’est pas là pour dire que Windows est mieux que Linux ou l’inverse.
J’ai ma préférence pour Linux, c’est pourquoi, il se peut, que, vous, lecteur, ressentiez cette préférence.

Introduction

Windows et Linux sont deux systèmes d’exploitation assez répandu dans le monde du développement.

Bien que Linux ne soit pas un système d’exploitation à lui-même, ici j’utiliserai sa nomination pour englober les distributions basées sur un noyau Linux

Il n’est pas rare que des développeurs et des entreprises utilisent Windows professionnellement et personnellement. Cependant étant Linuxien il est d’usage (au début) de se sentir noyé parmi tous ces utilisateurs de Windows et de se sentir seul au monde à utiliser Linux.

De plus, lorsqu’une majorité des développeurs autour de nous font le choix d’utiliser Windows, il est parfois pour nous (Linuxien), obligatoire d’utiliser cet OS.

Comment j’ai connu Linux

Pour commencer je vais expliquer comment j’ai connu Linux.

C’était lorsque j’étais en seconde, je ne m’y retrouvais pas dans Windows, je galérais comme pas possible pour programmer et je souhaitais ne plus utiliser de souris.
De ce fait, j’ai demandé à un proche une alternative à Windows. C’est ainsi que j’ai commencé à utiliser Linux (Ubuntu 14.04).

C’est à partir de ce moment que j’ai commencé à apprendre la programmation plutôt sérieusement car je m’y retrouvais bien dans le fonctionnement de ce système.

En école d'informatique

Le premier semestre

Au premier semestre de l’école dans laquelle je suis allé, nous utilisions une machine virtuelle Debian avec tous les outils préinstallés pour travailler sans passer de longs moments à installer les outils.

Nous devions utiliser au maximum le terminal bien que Mate soit installé comme interface graphique.
Pour éditer notre code nous devions utiliser Vim.

Pour moi c’était parfait car j’étais déjà sous Linux depuis quelque temps et j’utilisais déjà Vim.

Cependant cette machine virtuelle est souvent mal accueillie des étudiants car la plupart préfèrent utiliser des outils sous Windows qu’ils connaissent déjà.

Le deuxième semestre

Au deuxième semestre les étudiants ont la liberté totale sur les outils qu’ils utilisent.

Comme ce semestre ils utilisent XAMPP, les étudiants, peuvent, au sein d’un même groupe, travaillé sous des OS différents.

Du troisième au cinquième semestre

Pour ces trois semestres les étudiant qui ont choisi la filière du développement font du C#.

Bien que .NET Core ou encore Mono existent, nous devions utiliser Visual Studio (VS).

Il s’est alors posé la question de comment faire puisque mon ordinateur qui était déjà sous Linux.
Mes camarades me suggèrent d’installer Windows en dual-boot avec mon Ubuntu de l’époque (Ubuntu 16.04).
Cependant, l’installeur de Windows ne reconnaît pas les partitions en ext4.
De ce fait il m’était impossible d’installer Windows à moins de formater entièrement mon disque, d’installer Windows, puis de réinstaller un Linux.

La solution

Pour moi la solution a été de me crée une machine virtuelle Windows.

J’ai utilisé VirtualBox pendant un an et demi pour utiliser Visual Studio.
J’avais créé un répertoire partagé entre la machine virtuelle et le système hôte pour accéder à mes fichiers depuis les deux systèmes.

Les inconvénients

Pour utiliser une machine virtuelle Windows fluide, il faut donner à la machine virtuelle des ressources conséquentes. Cela vous demande donc d’avoir un ordinateur relativement puissant juste pour utiliser Windows. La machine virtuelle va aussi affecter les performances de votre ordinateur par rapport aux autres programmes.

En entreprise

Comment faire en entreprise ?
Lorsque j’ai posé la question sur le serveur discord de ZdS voici ce qu’on ma répondu:

La solution c’est pas "changez de travail" ? :)

Et bien j’aurai bien aimé, cependant lorsque l’on recherche une entreprise pour une alternance on a rarement le choix.

Là où j’effectue mon alternance ils utilisent Windows 10 et ce choix est imposé.

La solution

Premièrement j’ai pensé à installer VirtualBox et m’installé une machine virtuelle Linux avec des fichiers partagé pour pouvoir travailler depuis la VM (machine virtuelle).

Cependant, le fait d’utiliser Docker ne permet pas l’utilisation de Virtual Box.
Je n’ai pas cherché plus loin et je me suis dirigé vers Windows Subsystem for Linux (WSL).

J’utilise donc WSL (Ubuntu) pour travailler avec mes outils favoris (Vim, Screen, …).

Les inconvénients

Pour le moment il n’est pas possible d’utiliser Docker au travers WSL mais cela ne saurait tarder.
Il est aussi peu commode de démarrer des applications utilisant le serveur X bien que ce soit possible.
Le gestionnaire de paquets Snap n’est pas disponible même si la commande le reste pour la documentation.


Les solutions que je retiens

Aujourd’hui je retiens 3 solutions:

  • virtualiser Windows sous Linux
  • virtualiser Linux sous Windows
  • utiliser WSL

Ce sont trois solutions que j’ai utilisées sur du long terme et qui me semblent assez fiables.
Il en existe surement d’autres.

Conclusion

Bien que des solutions existent pour couplé Windows et Linux ensemble, je n’ai jamais ressenti la même aisance en utilisant Linux depuis un Windows qu’en utilisant directement un Linux. À vrai dire, je n’ai jamais été à l’aise en utilisant Windows et je ne le suis toujours pas.

Je souhaite utiliser Linux et pouvoir être complètement à mon aise lorsque je travaille.
J’ai eu la chance de pouvoir choisir mes outils durant un stage de 6 mois. C’est pourquoi, je sais que ce qui me convient le mieux, pour le moment, est un environnement Linux avec Vim.

Le choix de ses outils me semble essentiel, cependant ce n’est pas toujours le cas, néanmoins, il y a toujours moyen de composer avec les outils qui nous sont disponibles.

21 commentaires

Merci pour ce retour d’expérience !

Je me permet d’apporter deux précisions :

Pour utiliser une machine virtuelle Windows fluide, il faut donner à la machine virtuelle des ressources conséquentes.

Dans le cas où tu tu utilises le même jeu d’instructions sur les ordinateurs hôte et cible (ce qui est presque toujours le cas), tu vas profiter presque à plein de ta puissance CPU, à condition d’activer les instructions de virtualisation dans le BIOS. Je crois que la plupart des systèmes de virtualisations t’avertissent voire t’interdisent de démarrer si elles ne sont pas actives.

Par contre tu auras toujours besoin d’un surplus de RAM, et surtout d’assez de disque dur pour les deux OS – surtout que Windows est gourmand. Un disque virtuel est sensiblement plus lent qu’un disque physique, surtout s’il n’a pas été créé directement à sa taille réelle (thin provisioning) ou s’il y a des snapshots.

La machine virtuelle va aussi affecter les performances de votre ordinateur par rapport aux autres programmes.

Là par contre, je ne vois pas en quoi ni pourquoi.

PS : j’ai beaucoup utilisé les machines virtuelles pour le boulot :

  • VM de bureau Linux sur hôte Windows (développement Android entre autres, beaucoup plus rapide ainsi que sur Windows natif)
  • VM de bureau Windows sur hôte Linux (développement d’un progiciel qui n’accepte que IBM RAD sous Windows pour être développé)
  • VM de bureau Windows sur hôte Windows (idem, pour les vieilles versions du progiciel)
  • VM serveur Linux et Windows sur hôtes VMWare et Proxmox

Y’aurait plein à en dire.

Édité par SpaceFox

La solution c’est pas "changez de travail" ? :)

pyoroalb

Sachant que je t’ai répondu ça sans connaître le contexte (alternance).

Mais je maintiens que les outils utilisés (ou imposés) pour un poste font partie du confort professionnel, et que s’ils vont à l’encontre de tes convictions / que tu ne peux pas personnaliser convenablement ton poste de travail, c’est une solution envisageable.

La machine virtuelle va aussi affecter les performances de votre ordinateur par rapport aux autres programmes.

Là par contre, je ne vois pas en quoi ni pourquoi.

Source: SpaceFox

À ce moment je pense notamment à la RAM. Si ta machine virtuelle occupe 8 Go, cela est en moins pour les autres applications de ton système hôte. Je pense aussi au disque et à la batterie. Lorsque je virtualisais ma machine Windows quand j’étais à l’école mes accès disques de mon système hôte était plus long (pas si long que ça mais on voyait nettement une légère différence). Pour ce qui est de la batterie cela paraît une évidence. En virtualisation mon ordinateur tenait entre 4 et 5 heures, là ou en temps normal la batterie dirait généralement 10 heures ou plus.
Cependant cela est plus de la consommation de ressources que de la performance réelle.

Édité par pyoroalb

+0 -0

Je ne comprend pas; pourquoi ne pas avoir appris à utiliser Windows tout simplement ?

Angelo

Ça n’est pas forcément une question de savoir ou pas utiliser tel ou tel OS, mais souvent d’outils disponibles, de facilité d’utilisation, d’intégration ou même de performances. Dans un sens où dans l’autre, d’ailleurs.

Quelques exemples :

  • Un outil pratique peut être disponible que sur un OS particulier. On pense généralement à Windows dans ce cas (et j’ai déjà dû utiliser des IDE spécifiques disponibles seulement sous cet OS), mais il y a pas mal d’outils de développement disponibles seulement sous Linux ou Linux et Mac. Je n’ai pas d’exemple en tête (ça fait longtemps que je ne développe plus que sous Linux) mais je me rappelle avoir encore croisé un logiciel de ce type il y a peu.
  • Un outil peut être disponible sous un OS mais sensiblement plus difficile à utiliser. Je ne sais pas maintenant, mais il y a encore peu, installer Docker sous Windows était une plaie.
  • Les E/S disque sous Windows (en tous cas c’était le cas pour les disques mécaniques) sont sensiblement plus lentes que sous Linux, surtout sur des tas de petits fichiers. C’est au point que, il y a 3 ans, c’était plus rapide de faire du développement Android dans une VM Linux sous Windows que directement sur la machine hôte.

Si ta machine virtuelle occupe 8 Go, cela est en moins pour les autres applications de ton système hôte. Je pense aussi au disque et à la batterie. Lorsque je virtualisais ma machine Windows quand j’étais à l’école mes accès disques de mon système hôte était plus long (pas si long que ça mais on voyait nettement une légère différence). Pour ce qui est de la batterie cela paraît une évidence. En virtualisation mon ordinateur tenait entre 4 et 5 heures, là ou en temps normal la batterie dirait généralement 10 heures ou plus.
Cependant cela est plus de la consommation de ressources que de la performance réelle.

pyoroalb

Note que normalement la machine virtuelle utilise sur la machine hôte que ce qu’elle utilise réellement, et pas la quantité de RAM déclarée.

Si tes accès disques sont plus longs sur l’hôte quant tu as une VM démarrée, c’est signe que ta VM fait des accès disque dans ton dos (Windows aime beaucoup ça).

Quant à la tenue de la batterie, ça m’étonne que tu aies une telle différence, il devait y avoir un réglage bizarre de la VM. D’une manière générale, attention à la logique de « ça me parait normal » en informatique, et particulièrement avec les VM. Tu as plein de comportements complètement contre-intuitifs. Par exemple, naviguer sur un site web « moderne » (i.e. plein de JS) pompera ta batterie beaucoup plus vite que la lecture de vidéo, parce que le site va exécuter plein de code, alors que la lecture de vidéo est accélérée par le matériel et a une consommation dérisoire.

Note que normalement la machine virtuelle utilise sur la machine hôte que ce qu’elle utilise réellement, et pas la quantité de RAM déclarée.

SpaceFox

Effectivement, comme tu le dis "la machine virtuelle utilise sur la machine hôte que ce qu’elle utilise réellement".
Cependant Windows utilise TOUTE la RAM disponible et l’utilise comme cache. C’est pour cela que ma VM Windows utilisait toute la RAM déclarée. Là où en virtualisant d’autres systèmes (Arch Linux) et bien avec 8 Go de RAM déclaré le système invité utilisait réellement moins de 100 Mo.

Je ne comprend pas; pourquoi ne pas avoir appris à utiliser Windows tout simplement ?

Angelo

Comme le développe bien SpaceFox, il ne s’agit pas simplement de l’apprentissage du système.

Personnellement, j’ai toujours eu du mal avec Windows. J’ai trouvé que le système était complexe, caché et qu’il s’utilise principalement au travers d’interfaces graphiques. En plus de ça j’en ai toujours eu de mauvaises expériences avec.

Pour mon expérience, j’ai utilisé Windows 7 et 8 avant de passer à Linux. C’est à partir de l’école que j’ai du réutiliser Windows 10.
Je pense qu’au-delà d’apprendre le fonctionnement, il y a la préférence personnelle.

Et niveau préférence je trouve plus facile d’avoir un Linux qui nous plaît (vu l’étendue des environnements graphiques et autres qui existent).

+1 -0

Je sais que sous Linux en tant qu’invité, tu peux désactiver le cache disque pour éviter le comportement que tu décris (c’était même recommandé par VMWare à une époque). Une autre technique (par défaut sur VirtualBox de mémoire) désactive le cache disque de l’hôte sur les images disques des invités, le cache disque ne se faisant donc que dans l’invité.

Les deux arrivent avec leurs avantages et leurs inconvénients : le premier cas utilise moins de RAM mais a un risque de corruption de données en cas de coupure brutale de l’alimentation.

Note que normalement la machine virtuelle utilise sur la machine hôte que ce qu’elle utilise réellement, et pas la quantité de RAM déclarée.

SpaceFox

Effectivement, comme tu le dis "la machine virtuelle utilise sur la machine hôte que ce qu’elle utilise réellement".
Cependant Windows utilise TOUTE la RAM disponible et l’utilise comme cache. C’est pour cela que ma VM Windows utilisait toute la RAM déclarée. Là où en virtualisant d’autres systèmes (Arch Linux) et bien avec 8 Go de RAM déclaré le système invité utilisait réellement moins de 100 Mo.

À noter que Linux (peu importe la distro pour le coup) fait exactement la même chose. Cependant, ça doit se remplir moins vite (y’a moins de données à mettre en cache au démarrage). À moins peut-être que l’OS détecte qu’il est en virtualisé et ne charge pas de cache ? Ce n’est pas ce qu’ai constaté sur des VPS et containers (sur Proxmox), mais pourquoi pas ?

Je ne comprend pas; pourquoi ne pas avoir appris à utiliser Windows tout simplement ?

Angelo

Comme le développe bien SpaceFox, il ne s’agit pas simplement de l’apprentissage du système.

Personnellement, j’ai toujours eu du mal avec Windows. J’ai trouvé que le système était complexe, caché et qu’il s’utilise principalement au travers d’interfaces graphiques. En plus de ça j’en ai toujours eu de mauvaises expériences avec.

Pour mon expérience, j’ai utilisé Windows 7 et 8 avant de passer à Linux. C’est à partir de l’école que j’ai du réutiliser Windows 10.
Je pense qu’au-delà d’apprendre le fonctionnement, il y a la préférence personnelle.

Et niveau préférence je trouve plus facile d’avoir un Linux qui nous plaît (vu l’étendue des environnements graphiques et autres qui existent).

pyoroalb

Je suis d’avis que c’est pas à l’utilisateur de s’adapter au système, mais l’inverse… pourquoi imposer une unique méthode de travail alors que ce n’est techniquement pas nécessaire ?

Édité par Breizh

Breizh.pm — Un adminsys qui aime les galettes.

+2 -0

À noter qu’on peut quand même utiliser Docker avrc WSL 1, il faut un petit bricolage mais ça passe. Après avec WSL 2 c’est sûr que c’est bien plus pratique car naturellement supporté. :)

C’est vrai que parfois, j’aimerais que Visual Studio soit porté sous Linux, mais avec Visual Studio Code et les bonnes extensions, j’avoue que j’ai un outil de travail portable et commun, peu importe le système d’exploitation sur lequel je suis.

Ça n’est pas forcément une question de savoir ou pas utiliser tel ou tel OS, mais souvent d’outils disponibles, de facilité d’utilisation, d’intégration ou même de performances. Dans un sens où dans l’autre, d’ailleurs.

Spacefox

je me rappel quand j’ai du installer PHP et nodeJs sur un pc windows, (si je me rappel bien c’était node) qui virer php des variables d’environnement c’est pas ouf…

Pareil pour l’installation de tous les logiciel voulu, faire une ligne de commande pour installer TOUT les logiciel voulu, c’est génial, et ils ont pas besoin de faire une mise a jour a distance, une commande suffit. La tentative de Store de Microsoft n’a rien de comparable ne serait-ce qu’en termes d’ergonomie

mais il y a aussi la suite office, notamment skype (il ne me semble pas qu’il y ai d’outils interconnectable sous Linux) même si aujourd’hui teams est disponible partout, le reste de leurs outils ne l’est pas (j’ai jamais tenté avec WINE ou PlayOnLinux)

puis après ça dépend aussi des besoins, je reste sous Windows pour les outils Microsoft et les jeux vidéo mais je suis aussi bien plus a l’aise sur Linux

+1 -0

J’ai un retour d’expérience très particulier : je viens d’un monde parallèle (le monde des sciences) ou des personnes qui savent coder mais n’ont pas forcément toutes les clés en main pour le reste sont capables de générer des logiciels très utilisés. Et ça va assez loin: chemins hardcodés, libraires antédiluviennes, makefile absconds, technologies et choix de langages intéréssants (le scientifique codant dans le premier et souvent seul langage qu’il a apprit, généralement) … Et surtout OS (et compilateur) spécifiques. Comme Linux est le choix par défaut pour les super-calculateurs, travailler sous Linux évite déjà d’avoir à lire la documentation (inexistante !) pour compiler/installer le logiciel sous un autre OS. Croyez moi ;)

Disclaimer

Je force un peu le trait. Quand le logiciel est vraiment très utilisé, en général y’a une structure de type spin-off qui se crée et ça beaucoup mieux (par contre le logiciel devient payant, bon). N’empêche, il y a de ces choses …

#JeSuisToujoursArius • Doctorant et assistant en chimiedev' à temps partiel (co-réalisateur ZEP-12, recherche et template LaTeX)

+2 -0

@depfryer Pour Skype, je crois qu’il y a une version Linux (je ne sais pas si elle est officielle par contre). Pour la suite office, ya une contre-façon chinoise qui existe sous Linux, mais marche parfois assez étrangement. Sinon la suite LibreOffice fait souvent du bon boulot avec la lecture de fichiers MS Office (mais parfois pas…).

+1 -0

@charlie02 pour skype c’est officieux (j’avais regardé au moment ou je l’ai dit pour WPS c’est gratuit, chinois et closed source, et fait par kingsoft je suis assez mitigé avec et libre Office, j’ai beaucoup de mal avec (je trouve qu’il fait du bon boulot mais faire une belle mise en forme avec est plus compliqué et l’editeur de code de MSOffice m’as l’air plus complet que ce qui est dispo sur libre office (j’ai jamais essayé de dev dessus) (si j’ai besoin de tapé du texte, vscode suffit largement XD)

+0 -0

J’ai toujours utilisé LibreOffice, de ce fait je le trouve beaucoup plus commode que la suite de Microsoft.

Je pense que pour beaucoup de logiciels c’est principalement une question d’habitude.

+6 -0

Je suis d’accord, tout est une question d’habitude. MS Office est peut-être un peu plus user-friendly avec son système de menus à onglets, mais une fois qu’on a trouvé une fonctionnalité qu’on utilise souvent, la retrouver n’est pas si compliqué même sur LibreOffice. Après je l’utilise de moins en moins au profit de latex (entre autre grâce au super cour de ce site :p ), mais vu que les profs de l’école dans laquelle je suis n’envoient que des .docx (ou des pdf à remplir sans qu’ils y aient mis de formulaire) il reste bien pratique quand même.

Pour ce qui est de l’édition de code ou de texte simple, ce n’est en effet pas le domaine de LibreOffice pour le premier et à mon avis carrément overkill pour le second.

+1 -0

Je suis d’accord, tout est une question d’habitude. MS Office est peut-être un peu plus user-friendly avec son système de menus à onglets,

À noter que ce menu existe dans LibreOffice. Affichage → Interface utilisateur → Onglets.

l’editeur de code de MSOffice m’as l’air plus complet que ce qui est dispo sur libre office

@depfryer tu parles d’éditer du code divers, auquel cas en effet c’est pas adapté, que ce soit MS Office ou LibreOffice, ou des macros, et dans ce cas LibreOffice a du « retard » ? Personnellement j’estime que faire des macros, ça veut dire soit qu’on ne sait pas utiliser un traitement de texte (remplacement de fonctionnalités natives par une macro qui bricole), soit on ne l’utilise pas à bon escient (ça se voit plus souvent sur Excel, mais pourquoi pas sur Word), soit il faudrait envisager de passer à LaTeX :p

Breizh.pm — Un adminsys qui aime les galettes.

+0 -0

Salut,

Cependant, l’installeur de Windows ne reconnaît pas les partitions en ext4. De ce fait il m’était impossible d’installer Windows à moins de formater entièrement mon disque, d’installer Windows, puis de réinstaller un Linux.

Pourquoi ne pas avoir redimensionner avec gparted ta partition ext4 pour laisser un peu de place à windows en fat32 ?

Édité par buffalo974

+0 -0

Pourquoi ne pas avoir redimensionner avec gparted ta partition ext4 pour laisser un peu de place à windows en fat32 ?

buffalo974

Parce que (lorsque j’avais essayer) il me disait que la première partition était corrompus et qu’il fallait formater le disque en entier.
À noté qu’à l’époque j’étais débutant, je savais redimensionner mes partition mais l’installeur windows n’était pas d’accord :'(

+0 -0

Bonsoir,

Récemment je sous tombé sur ceci: Microsoft Terminal

C’est un émulateur de terminal pour Windows est plutôt "bon" (et officiel).
Bon dans le sens où cet outil nous permet enfin d’avoir plusieurs consoles ouvertes dans une même fenêtre avec des fonctionnalité de mise en forme de tuiles (à la manière de tmux ou screen).
Il permet aussi de choisir le shell que l’on souhaite utiliser (CMD, powershell, wsl, …).

J’utilise cet outil depuis maintenant un peu plus de deux semaines et j’ai suis très satisfait. Un de ses point fort est sa personnalisation.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte