MP2L
Cours GNU/Linux
Chapitre 1 :
Caractéristiques générales du système GNU/Linux
et des différentes distributions
Yahya SLIMANI/Habib SMEI
- Page 1 -
MP2L
Cours GNU/Linux
1. Introduction
Toute utilisation d'un ordinateur (Programmation, accès Internet, traitement de
texte, ...) nécessite au préalable l'installation d'un ensemble de logiciels qui constituent le
système d'exploitation. Celui-ci permet d'obtenir une véritable interface entre le matériel,
l’utilisateur et les
différentes applications logicielles.
Parmi les différents systèmes d'exploitation couramment utilisés (comme Windows, Mac OS,
Unix, etc.), on trouve GNU/Linux qui prend de plus en plus d’importance dans le monde
informatique.
Le mot Linux seul ne désigne quant à lui que le noyau du système d'exploitation, crée
par Linus TORVALDS, étudiant (à l'époque) finlandais en 1991.
Linux représente la première "couche" au dessus du matériel et il rassemble toutes les
fonctions de base du système à partir desquelles est définie l'interface graphique du système
ainsi que diverses applications.
Sa grande particularité est sa capacité à faire fonctionner de nombreuses applications
en même temps, sans risque de blocage, grâce à un partage efficace de la mémoire. Sa grande
stabilité, comparée à d’autres systèmes, fait que plus de 25% des ordinateurs serveurs
l'utilisent actuellement.
Une autre particularité de GNU/Linux est d'appartenir à la famille des logiciels
OpenSource, logiciels dont les codes sources sont gratuits et directement accessibles aux
utilisateurs qui peuvent les adapter à leurs propres besoins.
GNU (www.gnu.org), signifiant « GNU’s Not Unix », est une organisation
internationale qui été fondée en 1984 dans le but de créer un système ressemblant à UNIX
mais totalement gratuit.
2. Les caractéristiques de GNU/Linux
GNU/Linux est un système d'exploitation multi plates-formes (pouvant tourner sur
des machines ayant des architectures différentes, Intel x86, Sun Sparc, etc.). Il est également
multi-utilisateurs (plusieurs personnes peuvent en même temps travailler sur le même
ordinateur), mais aussi multi-tâches (plusieurs applications peuvent être lancées en même
temps sans qu'aucune n'affecte les autres) et multi-processeurs (il peut être installé sur des
machines ayant plus qu'un processeur).
Yahya SLIMANI/Habib SMEI
- Page 2 -
MP2L
Cours GNU/Linux
Les différentes expérimentations de ce système à travers le monde (au niveau académique
mais aussi industriel) ont montré que c’est un système fiable, robuste, puissant et efficace. Il
utilise très peu de ressources et fonctionne quasiment aussi bien sur un ordinateur bas de
gamme que sur un ordinateur haut de gamme. Il est distribué gratuitement avec son code
source, basé sur le principe de la philosophie du logiciel libre et selon les termes de la licence
GPL (General Public Licence). Il est développé (et mis à jour) par de nombreux
programmeurs disséminés à travers le monde (la plupart bénévoles) impliquant une évolution
rapide du système et un résultat de qualité résultant de la collobaration internationale.
3. Les différentes distributions
3.1. Définition d'une distribution
Une distribution se présente sous forme de fichiers téléchargeables à partir de sites ftp
ou supports CD’s (ou DVD). Une distribution rassemble les composants du système dans un
ensemble cohérent et stable dont l'installation, l'utilisation et la maintenance sont de plus en
plus facilitées grâce à des interfaces suffisamment conviviales. Il existe de nombreuses
distributions, chacune ayant ses particularités : certaines sont dédiées à un usage spécifique
(pare-feu, routeur, grappe de calcul, etc.), d'autres à un matériel spécifique, à un
environnement particulier (embarqué), etc. Malgré cette diversité, les grandes distributions
sont généralistes et sont très bien adaptées à une utilisation bureautique.
Les distributions généralistes les plus connues sont Debian, Gentoo, Mandriva Linux,
RedHat Linux, Fedora, Slackware, SUSE Linux, openSUSE Linux, Ubuntu.
Certaines sont plus orientées vers les utilisateurs débutants (MandrivaLinux, Ubuntu,
etc.), car plus simples à mettre en œuvre. Debian en revanche est plutôt considérée comme
une méta-distribution, c'est-à-dire qu'elle peut servir de base pour créer sa propre distribution.
Beaucoup de distributions en dérivent, comme Ubuntu, Knoppix, MEPIS, etc.
GNU/Linux et l'immense partie des logiciels contenus dans une distribution sont
libres, mais le terme libre ne veut pas dire gratuit. Lorsque l'on achète une distribution
GNU/Linux, le prix payé est celui du media, de la documentation incluse et du travail effectué
pour assembler les logiciels. Toutefois, pour respecter l'esprit du libre et se conformer aux
exigences des licences utilisées par ces logiciels, les entreprises qui éditent ces distributions
les rendent disponibles par téléchargement sans frais. Ceci permet une propagation du logiciel
Yahya SLIMANI/Habib SMEI
- Page 3 -
MP2L
Cours GNU/Linux
libre : un logiciel développé à partir d’un logiciel libre, devra lui-même être libre, et ainsi de
suite.
3.2. Choix d'une distribution
Etant donné la multiplicité des distributions, les utilisateurs sont souvent confrontés à
un problème de choix de la distribution pour leurs propres besoins. Pour cela, le choix d'une
distribution se base sur plusieurs critères, dont d'abord le niveau d'accessibilité et le type
d'utilisation. Pour commencer, une distribution "graphique" serait plus appropriée qu’une
distribution texte (à base de commandes). Ainsi, les difficultés de configuration "manuelles"
pourront être palliées par des interfaces graphiques (GUI) qui permettrons d’une part de
faciliter l’installation du système, mais donneront plus d’assurance aux nouveaux utilisateurs
issus du monde Windows, tout en leur permettant d'aborder progressivement la configuration
manuelle. Par la suite, des distributions plus "manuelles" permettront un contrôle plus fin du
système, lorsque l'utilisateur aura acquis les bases nécessaires d’installation et d’utilisation du
système.
D’autres critères plus techniques pourront être utilisées pour choisir la distribution la
plus appropriée : configuration matérielle de la machine cible, machine individuelle ou en
réseau, type d’applications, environnements de développements utilisés, etc. Le recours à un
spécialiste peut parfois être nécessaire pour choisir la bonne distribution, sachant que l’on
peut aisément changer de distribution en fonction de l’évolution des besoins et des critères.
3.3. Architecture d'une distribution
La plupart des distributions sont basées sur la même architecture :
• Le système d'exploitation (Le noyau Linux).
• Les logiciels GNU pour les commandes de base (ls, grep, ...).
Publicité
• Le serveur X qui permet l'affichage graphique. La plupart des distributions
utilisent le serveur X11.
• Un système de gestion de paquetages (ou paquets), qui représentent des ensembles
de logiciels munis d'une unité d'installation et de désinstallation. Les systèmes de
gestion de paquetages les plus utilisés sont .rpm, Yum et .deb.
• Un programme d'installation et de paramétrage.
Yahya SLIMANI/Habib SMEI
- Page 4 -
MP2L
Cours GNU/Linux
•
Plusieurs interfaces graphiques (KDE, Gnome, XFCE, IceWM, ...) et une suite de
logiciels bureautiques pour l'utilisateur moyen (StarOffice, Gimp, etc.), des outils
scientifiques et/ou de programmation.
Le noyau et les logiciels GNU sont communs à toutes les distributions, mais on peut
trouver des différences au niveau de la procédure d’installation, la gestion des paquetages,
leur nombre, les mises à jour, etc. …
3.4. Principales distributions
Le tableau ci-dessous résume les principales distributions utilisables actuellement à
une échelle plus ou moins grande.
www.debian-fr.org/
Debian est une distribution non commerciale régie par le contrat social
Debian. Elle se distingue par le très grand nombre d'architectures
supportées, son importante logithèque et par son cycle de
développement relativement long, ce qui lui confère un gage d'une
certaine stabilité. Sa qualité et son sérieux sont unanimement reconnus,
mais elle garde l'image d'une distribution réservée aux experts, malgré
que son ergonomie a beaucoup évolué. C'est la distribution qui a été
retenue pour le déploiement de GNU/Linux dans la ville de Munich (14
000 PC). Elle est très utilisée sur les serveurs.
http://fedoraproject.org/
Fedora est une distribution communautaire supervisée par Red Hat.
Elle est basée sur le système de gestion de paquetages logiciels RPM.
Le nom de la distribution est devenu Fedora, alors qu'elle se nommait
http://www.fedora-fr.org/
Fedora Core avant la version 7.
Mandriva Linux est une distribution internationale éditée par la société
Mandriva en France et dans le monde. Très orientée vers le grand
public, elle est conçue pour être facile d'installation et d'usage pour les débutants et les professionnels. Autrefois appelée Mandrake Linux, elle
www.mandriva.com/fr
a été renommée en 2005 à la suite du rachat par MandrakeSoft de la
société brésilienne Conectiva. La société changea alors de nom pour
«Mandriva», et renomma l'ensemble de ses produits. Elle est disponible
en plusieurs versions : commerciales et libres.
Gentoo est une distribution caractérisée par sa gestion des paquetages à
la manière des ports BSD, effectuant généralement la compilation des
logiciels (X, OpenOffice, etc.) sur la machine de l'utilisateur. Elle est
dédiée aux utilisateurs avancés, aux développeurs et aux passionnés. La
Yahya SLIMANI/Habib SMEI
- Page 5 -
MP2L
Cours GNU/Linux
www.gentoofr.org/
http://www.redhat.fr/
compilation des logiciels in situ donne une liberté de choix de
fonctionnalités et de dépendances très poussée, apportant davantage de
souplesse dans la gestion des paquets par rapport à une distribution
utilisant des paquets binaires. Enfin, Gentoo se fait forte d'une
communauté d'utilisateurs particulièrement
active et d'une
documentation complète et centralisée.
Red Hat (officiellement Red Hat Enterprise Linux ou RHEL) est une
distribution commerciale largement répandue dans les entreprises
(surtout aux États-Unis). C’est cette distribution qui a développé et mis
au point le logiciel RPM, qui est un gestionnaire de paquets sous
licence GPL que d'autres distributions utilisent.
Slackware est l'une des plus anciennes distributions existantes.
Slackware a été historiquement une des premières permettant de faire
tourner GNU/Linux in situ depuis un CD-ROM, dès 1995. Slackware
www.slackfr.org/
est toujours activement maintenue par son créateur Patrick Volkerding.
Slackware Linux est particulièrement adaptée aux utilisations serveur,
et elle représente la version la plus pure de GNU/Linux.
SUSE Linux a été la première distribution européenne. Créée en 1993 à
Nuremberg, elle a été rachetée par la société Novell à la fin de l'année
2003. Elle propose deux distributions principales : SUSE Linux
Enterprise orientée vers les entreprises (certifications matérielles et
logicielles nombreuses) et OpenSUSE orientée vers le grand public.
Ubuntu est une distribution basée sur Debian. Plus orientée vers le
grand public, elle édite des versions stables plus fréquemment. Elle est
fr.opensuse.org/
www.ubuntu-fr.org/
maintenant disponible en live CD. Cette distribution dispose d'une
solide base d'utilisateurs en France, et partout dans le monde.
Yahya SLIMANI/Habib SMEI
- Page 6 -
MP2L
Cours GNU/Linux
Figure 1. Schéma d’une distribution Linux.
4. La licence GPL de GNU
Le code source de GNU/Linux est accessible gratuitement, ce qui fait que ce système
peut être compilé sur d'autres plates-formes autres qu’un PC. Afin de permettre la distribution
de programmes exempts de droits, la fondation FSF (Free Software Foundation, traduisez
Fondation pour les logiciels libres) a développé un projet nommé GNU. Les utilitaires GNU
sont soumis à une licence d'utilisation de GNU/Linux, appelée GPL (General Public
Licence), expliquant les dispositions légales vis-à-vis de l'utilisation, la distribution et la
modification d’un code GNU/Linux.
Voici à titre indicatif quelques aspects de cette licence permettant de la comprendre:
• La licence permet la modification du programme original et sa diffusion (sous licence
GPL).
• La licence autorise la vente du logiciel libre sous sa forme originelle ou modifiée, à
Publicité
condition que le vendeur autorise la diffusion (même gratuite) de ce logiciel.
• La licence autorise l'utilisation du logiciel à des fins lucratives (permettant des
bénéfices).
• Les logiciels, sous licence GPL, appartiennent à leurs auteurs et personne ne peut
s'approprier une partie ou l'intégralité des droits d'auteur.
• La licence n'implique aucune forme de rémunération des auteurs.
Yahya SLIMANI/Habib SMEI
- Page 7 -
MP2L
Cours GNU/Linux
Cette licence est parfois appelée copyleft, en opposition à copyright, mot anglais qui
signifie "droits d'auteur".
5. Le Noyau
Le noyau joue le rôle d'intermédiaire entre les programmes et le matériel. Il gère la
mémoire pour tous les programmes en cours d'exécution (processus), et s'assure qu'ils utilisent
tous une partie (équitable ou non) du temps processeur. En plus, il fournit une interface aux
programmes pour communiquer avec les composants du matériel.
5.1. Démarrage du noyau
Après l’exécution des fonctions du BIOS (ou firmware), il y a exécution du chargeur
de système LILO (Linux/Unix Loader) ou GRUB, installé le plus souvent dans le premier
secteur adressable d’un disque dur, appelé MBR (Master Boot record). Le prompt du
chargeur s'affiche, et au bout de quelques secondes (durée réglable), le système par défaut se
charge, sinon l’utilisateur peut choisir, dans une liste de systèmes d’exploitation, celui avec
qui il voudrait démarrer sa machine (Windows, Fedora, Mandriva, etc.).
Usuellement, cette initialisation s'effectue en mode multi-utilisateurs avec les services
réseau activés (niveau d'exécution par défaut et qui est réglable dans un fichier de
configuration appelé /etc/inittab).
5.2 La numérotation des noyaux GNU/Linux
La numérotation du noyau GNU/Linux est basée sur trois nombres, par exemple :
2.0.12.
• Le premier nombre (dans notre cas le "2") indique la version majeure du noyau.
Aujourd'hui, le noyau en est à sa deuxième version.
• Le deuxième nombre est considéré comme un numéro de version mineure. et
renseigne sur la stabilité du noyau. Si y est pair cela veut dire que le noyau est stable,
par contre s’il est impair, cela veut dire que le noyau est dans une version de
développement. Actuellement, la version stable est la 2.6.
• Le dernier numéro désigne le numéro de version mineur du noyau stable ou en cours
de développement considéré (deuxième numéro).
Remarque : Le numéro de version d’un noyau est obtenu en exécutant la commande
uname -a
6. Procédure de Connexion
Contrairement à la plupart des systèmes Windows (qui démarrent uniquement par une
Mise en ON manuelle), utiliser un système GNU/Linux, même en dehors de tout contexte
Yahya SLIMANI/Habib SMEI
- Page 8 -
MP2L
Cours GNU/Linux
réseau, implique l’exécution d’une procédure de connexion au système. Le but principal de
cette procédure est d’assurer une sécurité d’accès au système, ce qui fait que cet accès n’est
pas libre car il est soumis à une procédure d’authentification. Quand cette procédure est
effectuée avec succès, il y aura ouverture d’une session de travail pour utiliser le système
GNU/Linux. Pour accéder à un tel système, chaque utilisateur, quelque soit son statut, devra
disposer d’un compte utilisateur dans ce système.
Le processus d'identification d’un utilisateur est basé sur :
• L’introduction d’un nom utilisateur (login :)
• L’introduction du mot de passe associé (password :)
Si le compte est authentifié sur la machine (nom et mot de passe corrects), il y a
affichage du bureau et l’utilisateur pourra alors commencer l’utilisation du système. Dans
le cas contraire, l’accès sera refusé et l’utilisateur devra refaire une autre tentative de
connexion.
Lorsque l'utilisateur est authentifié, les ressources du système (notamment les fichiers
et les applications) sont mises à sa disposition, mais il ne pourra les utiliser que selon
certaines conditions (appelés permissions ou droits d’accès) fixées par leurs propriétaires
(administrateur du système ou créateurs des ressources).
Une fois connecté à un système GNU/Linux, l’utilisateur peut ouvrir plusieurs
sessions de travail sur la même machine. Pour cela, il ouvrira plusieurs sessions à travers des
terminaux ou consoles virtuelles en utilisant la combinaison des touches suivantes du clavier :
Ctrl-Alt-Fx, avec x pouvant aller de 1 à 6. Il pourra ensuite basculer d’une session à une autre
en utilisant la même combinaison de touches du clavier. Il aura ainsi l’illusion d’être dans un
environnement multi-utilisateurs.
7. Procédure de Déconnexion et arrêt (volontaire) du système
Un système GNU/Linux, étant généralement stable, n’a pas besoin d’être fermé
brutalement (Mise en OFF, CTRL+ALT+SUPPR). Il devra être fermé proprement soit à
travers l’interface graphique, soit à travers une commande du système. Cette procédure de
déconnexion est très importante et utile, car elle permet, entre autres, au système de
sauvegarder un certain nombre d’informations sur la session de travail à laquelle on veut
mettre fin, en mettant à jour un certain nombre de journaux du système. Ces journaux
contiennent un historique sur l’utilisation du système et peuvent servir à un administrateur
pour suivre et améliorer les performances d’un système GNU/Linux. Etant donné
Yahya SLIMANI/Habib SMEI
- Page 9 -
MP2L
Cours GNU/Linux
l’importance et l’utilité de cette procédure de déconnexion, il est donc vivement recommandé
aux utilisateurs de lui accorder la plus grande attention.
Il existe généralement deux manières de se déconnecter d’un système
GNU/Linux :
1. Soit par interface graphique : dans ce cas, il existe, comme dans tous les systèmes
d’exploitation, des boutons au niveau du bureau, qui offrent plusieurs possibilités
(fermeture d’une session, mise à l’arrêt prolongé, fermeture du système, changement de
session, etc.)
2. Soit par commande : dans ce cas, l’utilisateur pourra utiliser les commandes exit,
logout ou tout simplement la combinaison des touches Ctrl et D.
3. En ce qui concerne l’utilisateur administrateur (root), il pourra utiliser l’une des
commandes suivantes :
• Arrêt immédiat : halt (ou shutdown -h now ou init 0)
• Arrêt différé : shutdown -h <nb> ; le système attendra <nb> secondes
avant de procédér à l’arrêt de la machine.
Evidemment, il ne faut pas éteindre brutalement ou rebooter sauvagement ! Chaque
processus actif doit recevoir du noyau du système la directive de s'arrêter proprement, les
systèmes de fichiers doivent être démontés.
Publicité
8. Introduction aux commandes
Pour utiliser un système GNU/Linux en mode commandes, l’utilisateur devra utiliser
un langage de commandes (ensembles des commandes du systèmes) et un interpréteur
associé à ce langage de commande.
8.1. Interpréteur de commandes
Sous GNU/Linux, l’interpréteur de commandes est appelé le SHELL, et il fait office
d'interface entre l'utilisateur et le système d’exploitation. La fonction d’un interpréteur est
double : pour chaque commande introduite par l’utilisateur, il procédera d’abord à son
analyse syntaxique pour vérifier si elle est bien écrite ; dans le cas où la syntaxe de la
commande est respectée, le Shell procédera à son interprétation (exécution) et retournera
le résultat approprié (si la commande doit retourner un résultat).
Il existe des dizaines d'interpréteurs de commandes sous GNU/Linux qui se classent en
deux grandes familles :
Yahya SLIMANI/Habib SMEI
- Page 10 -
MP2L
Cours GNU/Linux
• La famille des interpréteurs C shell (ex : csh, tcsh).La famille des interpréteurs
Bourne shell (ex : sh, bash, ksh).
Il existe un autre interpréteur, appelé zsh, qui renferme les caractéristiques des deux
familles précédentes. Néanmoins, le choix d’utiliser un shell plutôt qu’un autre est
essentiellement une affaire de préférence personnelle ou de circonstances. En connaître un,
permet d’accéder aisément aux autres. Lorsque l’on utilise le système GNU/Linux , le shell
par défaut est bash (Bourne Again SHell). Ce dernier a été conçu en 1988 par Brian Fox dans
le cadre du projet GNU [2
] .
Un shell possède un double aspect :
• Un aspect environnement de travail, qui définit l’environnement matériel et
logiciel dans lequel évoluera l’interpréteur.Un aspect langage de programmation,
qui définit la structure des programmes développés à partir des commandes du
Shell.
8.2. Syntaxe générale d’une commande
Malgré leurs grandes diversités, l’ensemble des commandes du système
GNU/Linux sont écrites selon la forme générique suivante :
Nom de commande [options] [paramètres]
Cette forme comprend trois parties dont une seule est obligatoire, à savoir le nom de
commande. Les deux autres parties sont optionnelles, c'est-à-dire facultatives et peuvent
dont être omises (les deux symboles [ et ] signifient qu’elles sont facultatives). Selon la
commande qui est utilisée, ces parties seront remplacées, par le système, par des valeurs
par défaut (voir description de chaque commande).
Les règles suivantes doivent être respectées lors de l’écriture d’une commande :
• Les systèmes Unix font une différence entre les lettres MAJUSCULES et les
lettres minuscules. Il faudra donc respecter la casse de chaque commande.
• Chaque partie de la ligne de commande doit être séparée par au moins un espace.
• La partie [options] commence généralement par un tiret (-) suivi (sans espace) de
lettres alphabétiques (une ou plusieurs selon la commande).
Les paramètres représentent des chemins de fichiers (voir la notion de chemin d’un
fichier).
Yahya SLIMANI/Habib SMEI
- Page 11 -
MP2L
Cours GNU/Linux
8.3. Historique des commandes
Certaines touches du clavier permettent à un utilisateur de réutiliser des commandes
anciennes. Pour cela, les touches flèches haut et bas permettent de parcourir les
dernières commandes de l'utilisateur.
8.4. Commandes et alias
Le système GNU/Linux donne la possibilité à un utilisateur de créer ses propres noms
de commandes, à partir de commandes de base, ou
renommer les commandes de base (procédure qu’il faut utiliser avec précaution). Ainsi,
un utilisateur peut recréer des commandes qu’il utilisait dans d’autres sytèmes (exemple
commande DIR du DOS, etc.).
8.5. Manuel des commandes
L’apprentissage d’un système d’exploitation nécessite, notamment au début, une
consultation quasi permanente d’un manuel ou d’une documentation sur les commandes.
Etant donné l’importance de cette phase d’apprentissage, le système GNU/Linux met à la
disposition de ses utilisateurs, une commande d’aide en ligne, appelée man. Il est fortement
recommandé d’utiliser cette commande lors de la pratique d’un système GNU/Linux. On
peut par exemple écrire man ls, pour avoir de la documentation sur le fonctionnement de la
commande ls.
L’exécution de cette commande permet d’afficher, sur écran, un manuel composé de
trois parties :
•
•
Un descriptif, sous forme de texte, de la commande.
La syntaxe complète de la commande.
• L’explication détaillée des différentes parties de la commande (options et
paramètres) ; cette partie peut contenir, dans le cas de certaines commandes, des
exemples illustratifs.
8.6. Commandes internes et externes
Le shell distingue deux sortes de commandes :
• Les commandes internes : ce sont des commandes dont le code est implanté au
sein de l’interpréteur lui-même. Cela signifie en particulier que, lorsqu’on change
de shell ou de connexion (passage de l’interpréteur bash au C-shell par exemple),
la liste des commandes internes change.
Yahya SLIMANI/Habib SMEI
- Page 12 -
MP2L
Cours GNU/Linux
• Les commandes externes, dont le code se trouve dans un fichier exécutable. Etant donné que ces commandes ne font pas partie intégrante de l’interpréteur, leur
localisation devra être précisée à l’aide d’un chemin. Soit ce chemin est fixé
explicitement par l’utilisateur, soit le système utilisera des chemins par défaut,
dont les valeurs sont définies par défaut dans une variable d’environnement du
système appelée PATH. Celle-ci contient une liste de chemins séparés par le
caractère deux points (:). L’interpréteur ira alors chercher successivement dans
cette liste de chemins, l’endroit, c'est-à-dire le répertoire, où se trouve la
commande externe à exécuter.
Yahya SLIMANI/Habib SMEI
- Page 13 -