Aller au contenu

La culture Unix/Linux et le « monde » open source

1. Objectif du cours

Présenter les fondements historiques et philosophiques dʼUnix/Linux et de lʼopen source, introduire la philosophie de modularité et les usages de base du terminal, et donner les ressources communautaires pour progresser.

2. Notions et définitions essentielles

  • Unix : système dʼexploitation historique développé aux laboratoires Bell (AT&T), multi‑utilisateur, stable et flexible.
  • Linux : noyau créé par Linus Torvalds (1991), distribué sous GPL, à la base de nombreuses distributions.
  • Distribution Linux : ensemble cohérent (noyau + logiciels) prêt à lʼemploi (ex. Ubuntu, Debian, Kali, Linux Mint, Tails).
  • Open source : philosophie et pratique où le code source est accessible, modifiable et redistribuable, favorisant transparence et collaboration.
  • Shell : couche applicative au‑dessus du noyau (ex. bash) permettant dʼexécuter des commandes.
  • Permissions : règles (propriétaire / groupe / autres) définissant droits de lecture, écriture et exécution.

3. Fonctionnement et principes

  • Histoire : Unix précède Linux ; Linux est né dʼun projet collaboratif et open source impulsé par Torvalds, puis enrichi par la communauté mondiale, donnant naissance à de nombreuses distributions.
  • Conception : philosophie Unix/Linux = modularité (petits utilitaires autonomes interopérant via interfaces standard) et simplicité (outils spécialisés, chaîne dʼoutils).
  • Initialisation matérielle : BIOS/UEFI initialisent et configurent le matériel (POST), lʼUEFI offrant plus de flexibilité et une interface moderne.
  • Processus : un processus est un programme en cours dʼexécution identifié par un PID ; les processus gèrent lʼexécution et les ressources système.
  • Communauté : lʼécosystème repose sur contribution (rapports de bogues, correctifs), documentation, forums et wikis pour maintenance et apprentissage.

4. Commandes et manipulations

Groupées et résumées (extraits strictement présents dans le PDF) :

  • Gestion de paquets (APT) :
  • apt-get update : mettre à jour la liste des paquets disponibles.
  • apt-get upgrade : installer les nouvelles versions des paquets installés.
  • apt-get install / remove : installer ou désinstaller un paquet.

  • Navigation et gestion de fichiers :

  • cd, pwd, ls : se déplacer, afficher le chemin courant, lister fichiers.
  • mkdir, rmdir : créer / supprimer répertoires.
  • cp, mv : copier et déplacer/renommer fichiers.
  • rm : supprimer un fichier.

  • Visualisation et édition :

  • cat, more, tail : afficher le contenu des fichiers (dont fin de fichier).
  • nano : éditer un fichier texte.
  • touch : créer un fichier vide.

  • Recherche et compression :

  • find : chercher un fichier.
  • tar : compresser/décompresser archives.

  • Permissions et élévation :

  • chmod : modifier les permissions.
  • sudo : exécuter une commande avec privilèges élevés.

  • Outils divers et flux :

  • man : afficher la documentation dʼune commande.
  • sleep (exemple) : créer un processus qui attend un certain nombre de secondes.
  • Opérateurs de redirection et pipeline : >, >>, | (rediriger sortie vers fichier ou vers une autre commande).

5. Sécurité et bonnes pratiques

  • Permissions : gérer rigoureusement les droits (propriétaire / groupe / autres) pour limiter lʼaccès aux fichiers ; vérifier la nécessité avant dʼaccorder écriture/exécution.
  • Élévation de privilèges : utiliser lʼélévation (sudo) uniquement quand nécessaire ; modifier les permissions ou fichiers système avec prudence.
  • Firmware et matériel : UEFI permet mises à jour du firmware — effectuer ces opérations via procédures officielles pour éviter dʼendommager le système.
  • Communauté et correctifs : suivre les mises à jour et signaler les bogues ; la réactivité communautaire aide à corriger rapidement vulnérabilités et défauts.

6. Points essentiels à retenir pour le TSSR

  • Linus Torvalds a créé le noyau Linux en 1991 ; il est distribué sous la GPL.
  • Unix est antérieur à Linux ; Linux sʼest développé via une collaboration mondiale aboutissant à de nombreuses distributions.
  • La philosophie Unix favorise des outils petits, spécialisés et composables (modularité).
  • Le shell (bash) est lʼinterface textuelle principale pour administration et scripts.
  • Les permissions (lecture/écriture/exécution) se gèrent par propriétaire, groupe et autres ; elles sont centrales pour la sécurité.
  • Redirections et pipelines permettent de chaîner et de stocker les flux de données entre commandes.
  • Certaines distributions sont orientées usages : Ubuntu (convivialité), Debian (stabilité), Kali (tests de sécurité), Tails (confidentialité).
  • Les ressources communautaires (forums, wikis, listes) sont essentielles pour le dépannage et lʼapprentissage.
  • LʼUEFI remplace souvent le BIOS et gère lʼinitialisation matérielle et les mises à jour de firmware.
  • Participer (rapports de bugs, correctifs) renforce lʼécosystème open source et la robustesse des logiciels.

7. Tableau récapitulatif

Élément Caractéristique clé Cas d'usage typique Remarque
Unix vs Linux Unix : historique / Linux : noyau open source Unix commercial historique ; Linux base de distributions Linux distribué sous GPL
Ubuntu Basée sur Debian, conviviale Postes de travail, cloud, débutants Support commercial possible
Debian Stabilité, logiciel libre strict Serveurs et environnements critiques Base pour plusieurs distros
Kali / Tails Kali = tests de sécurité ; Tails = vie privée Audit de sécurité / navigation anonyme Usage spécialisé, bootable sur clé/DVD
UEFI vs BIOS UEFI = interface moderne + mises à jour Initialisation matériel moderne Remplace fréquemment BIOS

8. Vérifications pratiques

(énoncées sans répéter les commandes listées en section 4) - Vérifier quʼune redirection a réussi en affichant le contenu du fichier cible et en constatant lʼajout ou le remplacement attendu.
- Contrôler le nombre de lignes produits par une chaîne de commandes en utilisant un outil de comptage sur la sortie.
- Confirmer la création/suppression/déplacement dʼun fichier en listant le répertoire concerné et en retrouvant (ou non) lʼobjet.
- Vérifier les permissions affichées pour un fichier ou répertoire et sʼassurer quʼelles correspondent aux droits attendus (propriétaire/groupe/autres).
- Observer le comportement dʼun processus temporaire (ex. attente) : le terminal redevient disponible une fois la durée écoulée, montrant la fin du processus.

9. Flashcards Anki

Qui a créé le noyau Linux ? :: Linus Torvalds Qu'est‑ce que le shell dans Linux ? :: Une interface applicative située au‑dessus du noyau permettant d'exécuter des commandes Quelle commande permet d'afficher le contenu d'un fichier texte ? :: cat Quelle commande change les permissions d'un fichier ou d'un répertoire ? :: chmod Quel opérateur sert à créer un pipeline entre deux commandes ? :: | Quels sont les trois types de permission de base sur Linux ? :: Lecture (r), écriture (w), exécution (x) Quelle licence garantit que le code reste open source selon le document ? :: GNU General Public License (GPL) Quelle distribution est mentionnée comme basée sur Debian et conviviale ? :: Ubuntu Quelle distribution est spécialisée pour les tests de sécurité ? :: Kali Linux Que fait apt-get update selon le cours ? :: Mettre à jour la liste des paquets disponibles dans les repositories