Windows ou Linux ? Vieux débat opposant 2 camps avec chacun des arguments recevables mais aussi chacun venant avec son lot de mauvaise foi…
Léo, architecte transverse et responsable d’un « labs » chez SpikeeLabs, ne vient pas ici opposer les 2 systèmes mais plutôt apporter des solutions afin permettre aux personnes devant utiliser les 2 systèmes d’avoir des solutions.
C’est le cas typiquement du développeur devant rédiger une spécification Word, comprendre des schémas d’architecture PowerPoint et dont la politique de l’entreprise est de toute façon de travailler dans un environnement Windows mais qui doit prendre en considération que le système d’exploitation cible de ses développements est une distribution Linux.
Il existe plusieurs alternatives possibles que Léo nous partage au cours de cette session.
3. 1969 : PREMIÈRE VERSION D’UNIX
Laboratoire Bell ou Bell Labs, New Jersey, États-Unis
Kenneth Lane Thompson
Logo d’UNIX dans les années 70
4. 1981 : LANCEMENT DE MS-DOS PAR MICROSOFT
Logo de MS-DOS
Logo de Microsoft en 1981
Bill Gates, co-fondateur de Microsoft
Paul Allen, co-fondateur de Microsoft
5. 1984 : LANCEMENT DE MAC OS PAR APPLE
Logo de Mac OS
Logo d’Apple en 1984
Les trois fondateurs d’Apple, Steve Jobs, Ronald Wayne et Steve Wozniak en 1986
6. 1991 : PREMIÈRE VERSION DE LINUX, CRÉÉ PAR LINUS
TORVALDS
Linus Torvalds, créateur du noyau Linux
Tux, premier logo de Linux, créé en 1996 par Larry Ewing
7. UN PEU D’HISTOIRE
De nombreux OS se basant sur Linux apparaissent : Solaris, Debian, CentOS, …
Trois familles de systèmes d’exploitations dominent le marché des particuliers
et des professionnels : Windows, OS X et Linux.
La « guerre des OS » se déplace petit à petit sur le marché des mobiles dans
les années 2000 et 2010.
8. 2001 : MICROSOFT VS LINUX
« Linux est un cancer qui se fixe, au
sens de la propriété intellectuelle, à
tout ce qu’il touche »
« Si vous utilisez un logiciel open
source, vous devez rendre le reste
de votre logiciel open source »
Steve Ballmer, PDG de Microsoft de 2000 à 2014
Steve Ballmer, 2001
Steve Ballmer, 2001
9. 2016 : MICROSOFT REJOINT LA LINUX FONDATION
Satya Nadella, actuel PDG de Microsoft en 2016
10. MICROSOFT « RETOURNE SA VESTE »
Microsoft « investit » massivement sur Linux dès 2016.
En mars 2016, la première version de SQL Server compatible pour Linux sort.
Le 2 août 2016, première version de Windows Subsystem for Linux dont les
sources sont disponibles en open source.
Le 4 Juin 2018, Microsoft rachète GitHub et s’implique de plus en plus dans le
monde de l’open source.
En mai 2019, WSL 2 sort et permet une comptabilité quasi-complète des
applications Linux sous Windows.
12. LE QUOTIDIEN D’UN DÉVELOPPEUR
Un développeur est souvent amené à « jongler » pour différentes raisons entre
Windows et une distribution Linux :
Windows possède certains outils en exclusivité, comme la suite Office.
Windows est souvent le système d’exploitation imposé en entreprise.
Linux est souvent la cible et la compatibilité doit être assurée.
Comment les développeurs se débrouillent-ils pour « naviguer » entre
Windows et Linux ?
13. LES DÉVELOPPEURS SONT ASTUCIEUX
1. Développer depuis Windows en accédant à une machine virtuelle Linux
Les + :
Fonctionne très bien, permet un développement en local et permet d’émuler une interface graphique.
Les - :
Les ressources (CPU, RAM, espace disque) doivent être allouées et sont réservées même lorsque la VM n’est
pas utilisée. Beaucoup de configuration, redirection de ports à mettre en place, …
VirtualBox, logiciel libre de virtualisation publié par Oracle
14. LES DÉVELOPPEURS SONT ASTUCIEUX
2. Développer depuis Linux et remplacer les « indispensables » de Microsoft
Les + :
Le développeur développe directement sur le système d’exploitation cible, pas de perte de performance
contrairement à une machine virtuelle.
Les - :
LibreOffice par exemple, ne peut pas totalement remplacer la suite Office de Microsoft, d’autres logiciels
peuvent manquer et collaborer avec des collègues (majoritairement sous Windows) peut être plus difficile.
Ubuntu, système d’exploitation maintenu par la société Canonical
LibreOffice, suite bureautique dérivée du projet OpenOffice
15. LES DÉVELOPPEURS SONT ASTUCIEUX
3. Développer depuis Linux en utilisant un bureau à distance (RDP)
Configuration d’un RDP à l’aide de Gnome sur Ubuntu 18.04
Les + :
Le développeur développe directement sur Linux et peut accéder à une machine sous Windows.
Les - :
Il est nécessaire d’avoir une machine sous Windows accessible et configurée pour du RDP, les performance
peuvent être dégradées et un accès réseau est indispensable.
16. NOS DÉVELOPPEURS SONT ASTUCIEUX
4. Développer depuis Linux et utiliser Wine pour les applications Windows
Wine, émulateur Windows
fonctionnant sur Linux ou Mac OS X Microsoft Office fonctionnant sous Wine
Les + :
Le développeur développe directement sur Linux et peut utiliser des applications normalement exclusives à
Windows.
Les - :
Certaines incompatibilités sont présentes, certaines applications ne sont pas pleinement fonctionnelles, perte
de performances…
17. LES DÉVELOPPEURS SONT ASTUCIEUX
5. Mettre en place un « dual boot » pour choisir Linux ou Windows au
démarrage
Grub, un « bootloader » permettant d’amorcer un ordinateur sous différents
systèmes d’exploitation
Les + :
Des installations complètes de chaque système d’exploitation, possibilité (avec certains réglages) d’accéder
aux fichiers entre les systèmes.
Les - :
Il faut redémarrer l’ordinateur lorsque l’on souhaite basculer d’un OS à l’autre.
18. LES DÉVELOPPEURS SONT ASTUCIEUX
6. Développer sur une VM distante en SSH depuis Windows
Exemple de connexion à une machine virtuelle distante à travers SSH
Les + :
La puissance de calcul dépend de la machine distante et il est possible de développer sur un environnement
identique à la cible.
Les - :
De la configuration est nécessaire, des problématiques de sécurité peuvent intervenir, il faut parfois mettre en
place des redirections de ports, …
20. Un choix de distribution Linux :
Kali Linux, Alpine, Debian, Ubuntu …
Une installation simple et gratuite
depuis le Microsoft Store
WSL implémente l’API du noyau
Linux
Le système Linux est directement
intégré au système Windows Hôte
UNE ALTERNATIVE : WSL
Schéma simplifié du fonctionnement de WSL
21. UNE ALTERNATIVE : WSL
La version 1 sortie en 2016 souffrait
de quelques problèmes de
compatibilités.
La version 2 disponible au grand
public depuis août 2020 règle ces
soucis. La version 2 fait tourner un
véritable noyau Linux, maintenu par
Microsoft.
Il tourne dans l’hyperviseur
« maison » de Microsoft : Hyper-V
(qui est un hyperviseur de type 1). Schéma détaillé du fonctionnement de WSL
22. WSL DEVIENT UN STANDARD DE DÉVELOPPEMENT
WSL depuis la version 2 supporte la totalité des API du noyau Linux, ce qui
permet, par exemple, l’exécution de Docker.
Visual Studio Code et le nouveau Windows Terminal intègrent nativement
une « extension » WSL. Ce qui rend possible le développement sur une cible Linux
depuis une machine Windows avec un minimum de configuration.
Extension WSL de Visual Studio Code Windows Terminal, nouveau terminal de Microsoft, supportant nativement WSL
23. WSL : LES DÉFAUTS
Des performances à améliorer lorsque l’on accède à des fichiers de Windows depuis une
instance WSL.
Seules certaines distributions Linux sont pour l’instant disponibles.
Uniquement disponible sur les versions les plus récentes de Windows 10.
Des incompatibilités avec VirtualBox.
Une solution encore récente, il ne s’est espacé que 4 ans entre la version 1 et la version 2.
Est dépendant d’Hyper-V et nécessite donc une édition Entreprise, Professionnelle ou
Education pour être installée.
Cependant, Microsoft développe activement WSL et compte s’en servir pour ne plus à
développer des applications « compatibles » Windows.
Par exemple PHP 8 n’est officiellement supporté sur Windows que par l’intermédiaire de
WSL 2.
24. WSL : LES AVANTAGES
Plus besoin d’allouer les ressources comme pour une machine virtuelle.
Un « passthrough » total :
Pas besoin de rediriger les ports, ils sont accessibles directement.
WSL embarque un système de fichier en « ext4 » par défaut accessible depuis
l’explorateur de fichier Windows.
Inversement, on peut accéder aux fichier de Windows depuis l’instance WSL.
Il est possible d’accéder directement à la carte graphique pour l’utiliser pour des
traitements lourds (par exemple un entrainement avec TensorFlow).
Tout est donc disponible localement pour le développeur, pas besoin d’accès
réseau.
Il est possible de démarrer simultanément plusieurs instances de WSL.