Il existe une très grande variété de systèmes *nix (Unix ou Linux), on les nomme distributions.
Une distribution est un noyau (kernel) ET un ensemble de logiciels.
Le point commun est le noyau (Linux, BSD, ou autre Unix).
Les différences peuvent être:
La convivialité (facilité d’utilisation)
L’intégration (quantité de logiciels compatibles disponibles)
La notoriété (communauté disponible pour résoudre les problèmes)
L’interface graphique (Gnome, KDE)
Le type de paquet d’installation (rpm, deb, …)
L’éditeur (entreprise ou communauté)
Debian
Ubuntu (facile pour les débutants)
Redhat/Fedora
![]()
Centos
Mandriva
Suse
Gentoo
Slakware
…
Certaines distributions ont des rôles spécifiques:
PFSense : cette distribution est un pare-feu
CloudRouter : permet de faire du routage
Android : téléphones, tablettes

| Avantages | Inconvénients |
|---|---|
| Très souvent le même environnement que la machine de production (surtout pour la portion serveur d’une application) | |
Très facile d’installer des nouveaux outils de développement:
|
|
| Une bonne console (ligne de commande) est souvent un bon dépanneur pour un développeur (p.ex. les messages d’erreur sont souvent plus explicites à la ligne de commande que dans l’IDE) | Accès très limité aux outils Microsoft: pas de Visual Studio, seulement VS Code et un support minimal pour C# |
| Plus facile d’automatiser des tâches de compilation et de tests | |
| Systèmes plus léger qui laisse la place aux outils de développement (p.ex mon Linux prend moins de 1Go de mémoire, alors le reste est pour les outils, VM, etc.). Dans le cours Android p.ex. , l’environnement de développement prend 15Go de mémoire (pour l’IDE + deux émulateurs de téléphone). |
Selon les études et la façon de calculer, les chiffres peuvent varier mais tous donnent un grande majorité de serveur Linux.
Les chiffres varient entre 65% de Linux pour les études les plus conservatrices à plus de 90% si on regarde le cloud.
Finalement, les 500 plus gros superordinateurs au monde utilisent Linux.
Un système d’exploitation est un programme installé sur un ordinateur et qui agit un peu comme un chef d’orchestre.
Le système d’exploitation permet les interactions entre l’homme, les logiciels et la machine.
Un logiciel n’a pas besoin de connaître toutes les spécificités du matériel pour y accéder. Il envoie ses commandes (appels systèmes) au SE qui interagit avec la matériel via les pilotes.
Il fournit aussi l’interface à l’homme qui n’a pas non plus besoin de connaître la complexité de la machine.
Le système d’exploitation a aussi comme responsabilité la gestion des ressources :
En bref,

Jusqu’en 1976 Bell AT&T développe les différentes versions de MULTICS, UNICS et UNIX.
À partir de 1977, 2 branches se séparent:
Bell AT&T continue avec System V
BSD (Berkley Software Distribution)
System V donnera HP-UX, AIX et d’autres.
BSD donnera OpenBSD, FreeBSD, NetBSD et Mac OS.
Solaris de Sun Microsystem est un hybride de System V et BSD.

GNU (GNU’s Not Unix)
Le 27 septembre 1983, Richard Stallman (Auteur de la célèbre autorisation Copyleft) dévoile son projet de développer un système d’exploitation compatible Unix appelé GNU mais qui serait libre. Il y a une anecdote qui serait à l’origine de son intention. On peut la découvrir dans le paragraphe 4 de la section biographie de sa page Wiképédia
https://fr.wikipedia.org/wiki/Richard_Stallman
Ce projet a donné naissance à la licence GNU GPL (GNU General Public Licence) pour les logiciels :
La liberté d’exécuter le logiciel, pour n’importe quel usage ;
La liberté d’étudier le fonctionnement d’un programme et de l’adapter à ses besoins, ce qui passe par l’accès aux codes sources ;
La liberté de redistribuer des copies ;
L’obligation de faire bénéficier à la communauté des versions modifiées.
En 1991, aussi, Linus Torvalds un étudiant finlandais annonce la création d’un nouveau noyau de système d’exploitation et en février 1992, la version 0.12 est diffusée sous la Licence publique générale GNU (GNU GPL). C’est la fusion des projets GNU et Linux (GNU/Linux). Un système d’exploitation libre, apportant avec lui les quatres libertés déjà expliquées :
Exécuter le programme, pour tous les usages ;
Étudier le fonctionnement du programme et de l’adapter à ses besoins ;
Redistribuer des copies du programme ;
Améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté
Ces libertés sont définies par la Licence publique générale GNU (GPL).
Le système d’exploitation Linux devrait en toute rigueur se nommer GNU/Linux puisqu’il est composé du noyau Linux et des applications sous licence GNU/GPL.
Linux est très modulaire contrairement à Windows.
Le code de Linux est exécuté dans un objet unique en mémoire de l’ordinateur. C’est ce qu’on appelle le noyau. Le noyau Linux est la base, le cœur d’un système Linux. Le noyau contient toutes les fonctions rendues par le système d’exploitation, comme la gestion de la mémoire, du processeur, des périphériques de stockage, de l’interface réseau, etc. Ces fonctions s’appellent des modules (blocs de code).
Cette organisation présente un avantage très important. Il est possible d’ajouter et/ou supprimer des modules dans un noyau Linux en cours d’exécution, sans avoir à l’arrêter ou à le redémarrer.
Avec Linux, le noyau peut être modifié.
Il est possible d’avoir plusieurs noyaux simultanés.
Le GUI peut aussi être changé (KDE, Gnome, …).
WSL permet d’exécuter des commandes Linux dans Windows.
WSL a été développé par Microsoft pour permettre aux développeur de tester leurs applications qui devront être déployées sur Linux.
WSL fonctionne sur Windows 10 et Windows server 2019.
ATTENTION : il ne s’agit pas ici de virtualisation.
Normalement, lorsqu’une commande est exécutée, pour accéder au matériel (exemple: interface réseau) ou au système de fichiers (exemple: lecture d’un fichier ou affichage du contenu d’un répertoire), celle-ci fait un appel système: code du noyau capable de communiquer avec la matériel par l’intermédiaire des pilotes.
Avec WSL, l’application intercepte l’appel système vers le noyau Linux et réalise l’appel système équivalent vers le noyau Windows. Ceci permet d’interagir avec le matériel et le système de fichiers Windows.

L’installation de WSL est simple a réaliser.
Il faudra choisir l’une des distributions disponibles:
L’application s’ouvre sur une fenêtre permettant de taper des commandes.
À ce moment là, vous êtes dans un environnement Linux et les commandes Linux que vou connaissez sont disponibles.
Comme il ne s’agit pas de virtualisation à proprement parler, l’environnement Linux que vous utilisez partage le même matériel que l’hôte:
L’adresse IP de l’environnement Linux est le même que celui de la machine Windows.Vous pouvez vérifier avec les commandes suivantes:Sur Windows: ipconfigSur Linux: ip a
Vous pouvez accéder au disque de Windows depuis l’environnement Linux:Le disque entier de Windows se trouve dans le répertoire /mnt/c
Vous pouvez accéder au disque Linux depuis Windows:Pour accéder à la racine du système de fichier:C:\Users\aseguin\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Dans le terminal Linux, vous pouvez exécuter les commandes Linux mais aussi les commandes Windows à condition de les suffixer avec leur extension Windows.
Exemple:
$ notepad.exe $ ipconfig.exe
Dans un terminal Windows, vous pouvez exécuter les commandes Windows mais aussi les commandes Linux à condition de les préfixer du nom de la distribution et de run.
Exemples:
$ ubuntu run ls -al $ ubuntu run vim test.txt
vim est l’éditeur de texte le plus utilisé sur *NIX.
S’il peut ne pas paraitre très convivial au début, sa puissance compensera très largement ce petit défaut.
Il est très léger et n’a pas besoin d’interface graphique pour fonctionner.
Il est aussi rapide en local qu’à distance.
Aide mémoire:
| Action | Commande |
|---|---|
| Passer en mode insertion où se trouve le curseur | i |
| Sortir du mode insertion | ESC |
| Sauvegarder | :w |
| Quitter | :q |
| Sauvegarder et quitter | :wq |
| Quitter sans sauvegarder | :q! |
SSH (Secure SHell)ssh permet de se connecter à distance sur une machine *NIX et d’y exécuter des commandes.
ssh est très sécurisé car toutes les communication entre vous et la machine Linux sont très fortement cryptées.
scp (Secure CoPy) fait partie de la suite ssh et permet de transférer des fichiers ou des répertoires de ou vers une machine Linux. Ici aussi, tout est fortement crypté.
Des outils existent sur Windows pour interagir avec la suite ssh:
Putty : connection ssh
WinSCP : copy de fichiers
Pour réaliser des installations, beaucoup de distributions disposent d’un gestionnaire de paquets qui permet d’installer la majorité des applications de façon très simple.
Le type de paquets dépend de la distribution:
Debian, Ubuntu,… : les paquets sont des *.deb et le gestionnaire se nomme aptitude.
Redhat, Centos, Fedora,… : les paquets sont des *.rpm et le getionnaire se nomme dnf.
Dans tous les cas, le gestionnaire de paquets va télécharger et installer tout ce dont il a besoin pour faire fonctionner l’application voulue (plus de détails plus tard).
Exemple d’installation de Apache sur Centos:
dnf install httpd
Dans Linux (surtout sans interface graphique), tout se fait grâce à des fichiers texte:
Configuration des interfaces réseau
Configuration des applications et des services comme Apache, DNS, DHCP,…
Configuration de l’environnement de l’utilisateur
Création des utilisateurs et des groupes
…
Souvent, le fichier de configuration contient du texte pour expliquer comment modifier les paramètres, l’aide est intégrée en quelque sorte.
Un système *NIX fonctionne parfaitement sans interface graphique. La majorité des serveurs *NIX n’ont d’ailleurs aucune interface graphique installée.
La connexion à ces serveurs se fera toujours à l’aide d’une connexion ssh.
Cependant, certaines applications doivent ouvrir une fenêtre pour fonctionner.
Un environnement de bureau est simplement un environnement graphique. Il fait référence à un bureau sur lequel on travaille. Il y a des dossiers, des fichiers, une corbeille, etc.
Un environnement de bureau (environnement graphique), offre:
Les principaux environnements de bureaux Linux génériques sont:
L’application s’exécute sur la machine distante mais la fenêtre s’ouvre sur la machine locale qui ne va gérer que l’affichage. On appelle ceci X11 forwarding.
Il existe des serveurs X pour Windows comme Xming.
https://openclassrooms.com/fr/courses/7170491-initiez-vous-a-linux
https://openclassrooms.com/fr/courses/7170491-initiez-vous-a-linux?archived-source=43538
https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation
https://fr.wikipedia.org/wiki/Linux
https://www.astuces-aide-informatique.info/9084/environnements-bureau-linux