Cours GNU/Linux - MP2L

Page 1 sur 13Lecteur de document UniversityLib

Cours GNU/Linux - MP2L

System Administration and Operating Systems · notes

Voir tous les documents en systèmes d'exploitation et cloud

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 -