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