Cours Introduction à Unix et GNU/Linux en PDF
Introduction à Unix et GNU / Linux : Ce qu'il faut savoir. Unix désigne une famille d'architectures et de conventions logicielles articulées autour d'un noyau, d'un ensemble d'utilitaires en espace utilisateur et d'une philosophie de conception modulaire; GNU/Linux combine les outils GNU (glibc, gcc, binutils) avec le noyau Linux pour former un système d'exploitation complet. Maîtriser les shells, la structure des systèmes de fichiers, les permissions et les redirections — ainsi que l'usage du mode console comme interface utilisateur de base — est indispensable en production et pour le dépannage.
🎯 Ce que vous allez apprendre
- Histoire et généalogie d'Unix — compréhension factuelle des origines (Bell Labs d'AT&T, familles BSD et System V) et de l'évolution vers GNU/Linux. Savoir replacer les décisions techniques dans leur contexte aide à choisir une distribution adaptée et à interpréter la compatibilité binaire entre noyau et userland.
- Philosophie d'Unix et architecture système — principes comme « faire une seule chose et bien », abstraction matériel/noyau, séparation espace noyau / espace utilisateur. L'étudiant saura expliquer pourquoi les outils en ligne de commande s'articulent via des flux et comment cette architecture facilite la composition d'outils.
- Projet GNU et licences — rôles de
gcc,glibcet des outils GNU, et implications des licences GPL et LGPL. Vous pourrez évaluer l'impact d'une licence sur la redistribution et le lien de bibliothèques dans des projets logiciels. - Système de fichiers et droits d'accès — structure hiérarchique des répertoires, liens symboliques vs liens physiques et modèle de permissions utilisateur/groupe/root. À l'issue, l'étudiant saura gérer ownership, appliquer
chmod/chownet diagnostiquer problèmes d'accès liés aux permissions. - Shells, variables d'environnement et personnalisation — fonctionnement des interpréteurs de commandes, rôle de
.bashrcet de la variablePATH, ainsi que l'usage des alias. Concrètement, vous serez capable d'automatiser des tâches, écrire des scripts de démarrage et configurer un environnement utilisateur reproductible. - Entrée/sortie, redirections, pipes et contrôle des processus — gestion de stdin/stdout/stderr, opérateurs de redirection, tubes (
|), et contrôle des jobs (bg,fg,stop). L'étudiant saura chaîner des utilitaires pour construire des pipelines fiables et gérer les processus en tâche de fond pour l'administration.
Différences entre Unix et GNU/Linux
- Origine : Unix provient des recherches des Bell Labs d'AT&T ; GNU/Linux résulte de la combinaison des outils du projet GNU avec le noyau Linux.
- Noyau vs distribution : Unix désigne souvent un système complet historiquement lié à un noyau propriétaire ; GNU/Linux existe sous forme de nombreuses distributions assemblant un noyau libre et divers userlands.
- Userland : Les implémentations Unix historiques fournissent leur propre userland ; GNU/Linux utilise majoritairement les utilitaires GNU, affectant la compatibilité des outils et des scripts.
- Licences : Les systèmes Unix historiques pouvaient être distribués sous licences propriétaires ; GNU/Linux et ses composants majeurs sont disponibles sous licences libres (ex. licences GPL et LGPL), influençant redistribution et intégration.
- Communauté et maintenance : GNU/Linux évolue via des communautés et distributions diverses, tandis que les Unix propriétaires suivaient des cycles et supports vendor-specific.
📑 Sommaire du document
- Introduction
- Histoire de Linux
- Philosophie d'Unix et caractéristiques
- Le projet GNU, Licences de logiciels libres
- Linux, Distributions GNU / Linux
- Shells, interpréteur de commandes et interpréteur de fichiers
- Entrée/Sortie standard, redirections, pipes
- Bases de l'administration système
Origines : Des Bell Labs d'AT&T au projet GNU
Unix a été développé aux Bell Labs d'AT&T comme expérimentation d'un système modulaire et portable. Les idées clés (processus, pipes, modèle de permission) ont largement inspiré les implémentations ultérieures. Le projet GNU, lancé pour fournir un environnement utilisateur libre, a produit des outils (compilateurs, bibliothèques) qui, associés au noyau Linux, ont permis l'émergence de distributions GNU/Linux.
Pourquoi utiliser le mode console Unix/Linux ?
Le mode console reste l'interface utilisateur de base la plus répandue sur les serveurs et les systèmes embarqués. Il consomme peu de ressources, facilite l'administration à distance via SSH, et permet d'automatiser des tâches avec des scripts reproductibles. Pour la maintenance, le dépannage et l'orchestration, la console offre un accès direct aux utilitaires et aux flux, avantage clé pour les environnements où les interfaces graphiques sont absentes ou inadaptées.
💡 Pourquoi choisir ce cours ?
Rédigé par Michael Opdenacker pour Free Electrons et distribué sous licence Creative Commons BY-SA, ce document combine contexte historique, principes de conception d'Unix et exercices pratiques (feuille mémoire des commandes incluse). Le contenu alterne théorie et exemples de commandes réels, propose des conseils de configuration (.bashrc, PATH) et couvre les implications des licences GPL et LGPL pour les composants comme glibc. Traduction et mises à jour françaises sont incluses, ce qui le rend immédiatement utilisable en formation ou en auto-apprentissage.
👤 À qui s'adresse ce cours ?
- Public cible : étudiants en informatique, administrateurs systèmes débutants et développeurs souhaitant consolider leurs compétences en ligne de commande et administration de base sous GNU/Linux.
- Prérequis : connaissance élémentaire de l'environnement informatique (systèmes de fichiers, notions de commandes comme
lsetcd), et aisance avec un terminal texte ; ces bases sont nécessaires pour tirer parti des chapitres sur les shells, les scripts et l'administration.
❓ Foire Aux Questions (FAQ)
La licence GNU GPL empêche-t-elle d'utiliser une bibliothèque libre dans un logiciel propriétaire ? La GPL impose que les travaux dérivés soient publiés sous GPL ; le document précise que le lien (statique ou dynamique) à du code GPL est considéré comme extension de ce code. En revanche, la licence LGPL (exemples cités : glibc, GTK) permet l'utilisation au sein de programmes propriétaires tout en exigeant l'échange des modifications de la bibliothèque.
Quelle différence pratique entre lien symbolique et lien physique ? Un lien physique crée une seconde entrée de répertoire qui référence le même inode que le fichier original, alors qu'un lien symbolique contient un chemin référent vers la cible. En administration, cela se traduit par des comportements différents lors des suppressions et des montages, et le cours détaille quand préférer l'un ou l'autre.