1
Université des Grands Lacs
Institut de Télécommunication et Réseaux
ITR II
Année Académique 2020-2021
Campus Kiremba
COURS DE SYSTÈME D’EXPLOITATION LINUX
Introduction
Ce cours présente des principes théoriques de fonctionnement du système
d’exploitation. Il les illustre par un certain nombre d’exemples de mise en œuvre qu’il
tire essentiellement du système Unix et accessoirement de Windows.
Parmi ces systèmes d’exploitation, 2 se distinguent particulièrement :
Un système mono-utilisateur qui est le Windows
Un système multi-utilisateur et multitâches qui est Linux
Le système d’exploitation Unix est le plus ancien que les autres SE et aussi c’est
celui qui offre le plus de richesse et aussi le plus de souplesse et plus
d’homogénéité.
Il dispose les versions standards d’extension pour les réseaux et pour le graphique.
C’est pour cette raison que nous l’avons choisi comme le centre de ce cours.
Le système d’exploitation est par définition un programme qui assure la gestion de
l’ordinateur et ses périphériques .Il sert d’interface entre l’utilisateur et le matériel.
On utilise souvent le sigle OS pour dire operating System.
Ex : Windows, Unix, Mac os,…
Historique et génèse de Linux
Linus Torvalds étudiant Finlandais est à l'origine de ce système d'exploitation
entièrement libre. Au début des années 90, il voulait mettre au point son propre
système d'exploitation pour son projet de fin d'étude. Linus Torvalds avait pour
intention de développer une version d'UNIX pouvant être utilisé sur une architecture
de type 80386. Le premier clone d'UNIX fonctionnant sur PC a été
Minix, écrit par Andrew Tanenbaum, un système d'exploitation minimal pouvant être
utilisé sur PC. Linus Torvalds décida donc d'étendre les possibilités de Minix, en
créant ce qui allait devenir Linux. Amusées par cette initiative, de nombreuses
personnes ont contribué à aider Linus Torvalds à réaliser ce système, si bien qu'en
1991 une première version du système a vu le jour. C'est en mars 1992 qu'a été
diffusée la première version ne comportant quasiment aucun bug.
Avec le nombre croissant de développeurs (bénévoles et amis) travaillant sur
ce système l’ont rapidement aidé dans sa tâche et ce projet est devenu associatif.
Une collaboration très efficace avec le projet GNU de la free Software Fondation de
l’Université de Cambridge a donné rapidement une ampleur considérable au
1
2
développement de Linux qui par évolution successive a permis de concurrencer et
même par certains points de dépasser le système Unix.
Linus Torvalds et le free software fondation peuvent se partager la paternité
du SE Linux parfois noté GNU/Linux.
Le développement de Linux se poursuit toujours basé sur des équipes de
bénévoles qui se regroupent sous plusieurs projets c.à.d. que Linux est amélioré
chaque jour par des centaines de personnes sur toute la planète.
Le développement d’Internet en favorisant le travail associatif a
considérablement dynamisé ce mouvement. Linux n’est cependant pas un passe-
temps pour hackers. De nombreux programmeurs libres Linux sont de véritables
références en Informatique professionnel. Linux apparaît comme des derniers
remparts crédibles contre la toute puissance Microsoft. Ce système a rapidement pu
intégrer des redéveloppements libres des outils présents sous les systèmes UNIX
commerciaux.
De nouveaux outils pour Linux apparaissent désormais à une vitesse vertigineuse.
L'originalité de ce système réside dans le fait que Linux n'a pas été développé dans
un but commercial. En effet aucune ligne de code n'a été copiée des systèmes UNIX
originaux (en effet Linux s'inspire de nombreuses versions d'UNIX commerciales).
Ainsi, tout le monde, depuis sa création, est libre de l'utiliser mais aussi de
l'améliorer.
Il existe plusieurs façons de prononcer Linux :
Dans les pays anglo-saxons deux prononciations existent :
Lineuxe
Laïnuxe
En France on prononce tout simplement : Linux
Bien que Linux ait été initialement conçu pour fonctionner sur plateforme PC, il a
désormais été porté (c'est-à-dire adapté) vers de nombreuses autres plateformes,
telles que Macintosh, stations SPARC, stations DEC Alpha, et même des
plateformes telles que des assistants personnels (PDA), voire des consoles de jeu
vidéo !
Les caractéristiques de Linux
- Linux est un système multiutilisateur, multitâche et multiplateforme (portable)
- C’est un système qui gère la répartition de ressources (mémoire et espace
disque) ; qui oriente les réseaux (partage des fichiers sur une machine
distante en utilisant le fichier NFS pour Network File System, très utilisé en
développement et en recherche)
- Le système Linux est très stable car sur la version s’ajoute l’ancien mais
l’utilisation reste la même et il devient l’utilisation très simple pour tous.
Fonctionnement de base de Linux
Linux est un système qui fonctionne par couches car il ya l’utilisateur, le Shell, le
noyau et le matériel.
2
3
Utilisateur
Shell
Noyau
Matériel
Le shell envoie des appels au noyau en fonction des requêtes des utilisateurs
Le noyau Linux est chargé en mémoire lors du démarrage de l’ordinateur. Il
alloue des ressources mémoires et processeur, il gère le stockage des fichiers
Les utilisateurs : Linux est multi-utilisateurs càd il nécessite d’avoir un nom
particulier aux yeux du système (login) ainsi qu’un mot de passe pour la
sécurité
Deux types d’utilisateurs :
Utilisateur root qui est super-utilisateur et possède tous les droits sur la
machine
Les autres utilisateurs. Chaque utilisateur est caractérisé par :
- Un nom et un numéro d’utilisateur
- Un groupe et un numéro de groupe
- Un mot de passe « password »
- Un type de shell (Interpréteur de commande)
- Un répertoire utilisataire qui lui appartient (Home directory)
NB : Toutes ces informations sont stockées dans le fichier /etc/password. Le mot de
passe est personnel et il ne faudra pas le divulguer ; faut-il aussi éviter les mots de
3
4
passe triviaux (nom et prénom), utiliser les lettres majuscules ou miniscules, les
chiffres, au minimum doit avoir 8 caractères.
Notions de noyau et de distribution
Linux est architecturé autour d'un noyau (en anglais kernel) chargé de prendre en
charge le matériel. On appelle distribution l'assemblage d'un ensemble de logiciels
autour d'un noyau.
Linux afin de fournir un système clé en main. Le noyau d'une distribution peut-être
mis à jour afin de permettre la prise en compte de matériels récents, toutefois cette
manipulation consistant à recompiler le noyau est délicate car elle nécessite un
certain niveau de connaissance du système et du matériel. La recompilation du
noyau est à réserver aux spécialistes ou bien aux utilisateurs prêts à rendre
inutilisable leur système dans le but d'apprendre.
La plupart des distributions proposent également une installation graphique qui leur
est propre ainsi qu'un système de gestion de paquetages permettant d'installer
automatiquement des logiciels en gérant les dépendances (les logiciels sous Linux
sont parfois liés à des librairies externes ou s'appuient sur d'autres logiciels).
Chaque distribution possède ses avantages et ses inconvénients. En effet si
certaines sont plus adaptées à des débutants et proposent des interfaces graphiques
évoluées, d'autres privilégient la sécurité ou l'évolutivité. Les distributions les plus
connues sont :
Qu'elles soient conçues par de grosses sociétés ou des amateurs passionnés, les distributions
GNU/Linux sont pléthoriques sur la vaste toile d'Internet. Notre choix s'est porté sur 10
d'entre elles :
Debian
Ubuntu
Red Hat
Fedora
CentOS
OpenSUSE
Gentoo
Slackware
Mandriva
Maegia
La licence GPL de GNU
Le code source du noyau de Linux est accessible gratuitement, ce qui fait que ce
système peut être compilé sur d'autres plates-formes que le 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 (pour la petite histoire, GNU est un acronyme récursif signifiant «GNU
is Not Unix»). Les utilitaires GNU sont soumis aux termes de la licence d'utilisation
GPL (General Public License) décrivant les conditions légales de l'utilisation, de la
distribution ou la modification du code source.
4
5
Voici à titre indicatif quelques aspects de cette licence : la licence GPL permet la
modification du programme original, et sa diffusion (sous licence GPL) ; la licence
GPL autorise la vente du logiciel libre sous sa forme originelle ou modifiée, à
condition que le vendeur autorise la diffusion (même gratuite) du logiciel ainsi modifié
; la licence GPL autorise l'utilisation du logiciel à des fins lucratives (permettant des
bénéfices) ; les logiciels sous licence GPL restent la propriété de leurs auteurs,
personne ne peut donc s'approprier tout ou partie des droits d'auteur ; la licence
n'implique aucune forme de rémunération des auteurs.
Cette licence est parfois appelée copyleft, par analogie avec copyright, un mot
anglais qui signifie "droits d'auteur" (right signifie droite ou droit au sens permission
d'exploitation tandis que left signifie gauche ou laissé, c'est-à-dire qu'on laisse de
larges droits - de modification notamment - au futur utilisateur).
Les caractéristiques du système
Linux est un système d'exploitation proche des systèmes UNIX pouvant être exécuté
sur différentes plates-formes matérielles : x86 (c'est-à-dire des plates-formes à base
de processeurs Intel, AMD, etc.), Sparc, PowerPC, Alpha, ARM, etc. Ainsi le système
Linux peut fonctionner aussi bien sur des ordinateurs personnels que des consoles
de jeu ou des assistants personnels!
Linux est ainsi un système multi plate-forme. 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.
Linux est considéré comme un système fiable, robuste et puissant. Il est d'ailleurs
capable de fonctionner avec très peu de ressources sur des ordinateurs bas de
gamme très peu puissants.
Le système Linux possède notamment les avantages suivants :
- Le support des standards de l'internet, c'est-à-dire des protocoles TCP/IP, la
famille de protocoles utilisée sur Internet. Linux est donc un moyen gratuit de
créer un réseau local, de se connecter à Internet et de mettre en place un
serveur.
- Une sécurité accrue dûe à la transparence de son code source et de la
réactivité de la communauté lors des annonces de vulnérabilités.
- Un cloisonnement des espaces mémoire et de l'espace disque couplé à une
gestion pointue des droits permettant de gérer un grand nombre d'utilisateurs
avec un niveau de risque minimal.
- Un noyau entièrement configurable en fonction du matériel de la machine sur
laquelle le système est installé afin de maximiser les performances.
Notion de Shell
5
6
Le Shell est un programme qui va faire le lien entre le noyau et l’utilisateur. Le
shell est l’interface entre le système et vous. Il est lancé lors de votre connexion
et pour chaque terminal graphique que vous ouvrez. Il interprète les commandes
Les shells acceptés par le système sont listés dans le fichier «/etc/shells»
Parmi les shells possibles, vous aurez le choix entre le :
- Bourne Shell (sh),
- le C Shell (csh),
- le Korn Shell(ksh) ou encore
- le Bash Shell (bash). Chacun possède des caractéristiques propres et
interprète les commandes différemment. Dans la suite de ce document
nous étudierons le Bash.
La syntaxe générale de la commande Linux
Commande Option argument
Ex : ls – la
ls : c’est la commande
- : c’est l’option
la : c’est l’argument
Les options souvent très nombreuses permettent de modifier le comportement
de la commande. En générale elles sont précédées du signe - .
Certaines commandes utilisent des arguments :
Ex : nom du fichier
Aussi il ya un manuel en ligne qu’on utilise : il s’agit de « man ls » pour voir le
manuel de la commande.
La commande man donne une aide en ligne. Elle affiche les informations
Correspondantes au titre donné, figurant dans le manuel standard de Linux.
Ex : man chmod
NB : - Linux est sensible à la casse
Ex : ls – A est différente de ls – a
- Les commandes sont toujours en minuscules
- Linux utilise l’espace comme séparateur de commande
Quelques commandes de base
Commande Description
who Afficher la liste des utilisateurs connectés
who ami Afficher l'utilisateur de la session courante
6
7
date Afficher la date
ps Afficher la liste des processus de l'utilisateur
kill Stopper un processus
passwd Créer ou changer de mot de passe
pwd Afficher le nom du répertoire de travail
mkd Créer un répertoire
cd Changer de répertoire de travail
cat Fusionner une liste de fichiers et afficher le résultat
head Afficher le début d'un fichier
grep Afficher les lignes des fichiers référencés qui
contiennent une chaîne de caractères donnée.
wc Compter le nombre de mots, lignes ou caractères.
sleep Dormir pendant un certain temps (secondes)
find Rechercher un fichier
ls Afficher le contenu d'un répertoire
cp Copier un fichier dans un autre
ln Ajouter à un fichier existant un autre nom
mv Renommer un fichier
rm Supprimer un fichier
rmdir Supprimer un répertoire
chmod Changer les protections d'un fichier
Vi Pour éditer un fichier
If config Pour afficher le réseau
Date Pour afficher la date
Si l'on veut comprendre comment man fonctionne, il faut taper : man man
Les systèmes de fichiers
7
8
Un système de fichiers (abrégé « FS » pour File System, parfois filesystem en anglais) ou
système de gestion de fichiers (SGF) est une façon de stocker les informations et de les
organiser dans des fichiers sur ce que l'on appelle, en génie logiciel, des mémoires
secondaires (pour le matériel informatique il s'agit de mémoire de masse comme un disque
dur, un CD-ROM, une clé USB, une disquette, etc.). Une telle gestion des fichiers permet de
traiter, de conserver des quantités importantes de données ainsi que de les partager entre
plusieurs programmes informatiques. Il offre à l'utilisateur une vue abstraite sur ses données
et permet de les localiser à partir d'un chemin d'accès.
Il existe d'autres façons d'organiser les données, par exemple les bases de données
(notamment base de données relationnelle).
Linux est le système d’exploitation entièrement orienté fichier. Tout (ou presque) est
représenté par un fichier, tant les données que les périphériques ou encore les
moyens de communication (sockets, tubes nommés, etc). Le système de fichiers est
le cœur de tout système Unix.
Les types de fichiers
Les fichiers ordinaires sont des fichiers tout à fait classiques qui contiennent
des données. Par données, comprenez n’importe quel contenu, y compris du
binaire (un exécutable par exemple).
8
9
Les fichiers catalogues sont les répertoires dossiers (directory). Les
répertoires permettent d’organiser le système de fichiers en créant une
hiérarchie.
Un répertoire ou dossier n’est rien d’autre qu’un fichier particulier contenant la
liste des fichiers présents dans ce répertoire.
Le dernier type de fichier est le fichier spécial. Les fichiers de ce type se
trouve principalement dans /dev et représentent des périphériques.
Ce sont des fichiers servant d’interface et ils peuvent souvent être utilisés
comme les fichiers normaux.
Chaque fichier possède un moyen pour Linux, les caractères de fichier
(remplacement, le nom du propriétaire, les droits, la taille, date de création et de
dernière modification).
2. L'arborescence
Contrairement au système de fichiers Windows, il n'existe pas de lecteurs A:, C:, etc.
L'entrée du système de fichiers se situe à la racine, notée /.
L'arborescence d'un système Linux
Répertoire Description
/ Répertoire "racine", point d'entrée du système de fichiers
/boot Les fichiers nécessaires au démarrage
/bin Les fichiers binaires exécutables
Répertoire contenant des fichiers spéciaux nommés devices qui permettent le lien
/dev
avec les périphériques de la machine
Répertoire contenant les fichiers de configuration du système et de diverses
/etc
applications
/home Répertoire contenant les fichiers personnels des utilisateurs
/lib Répertoire contenant les librairies et les modules du noyau (/lib/modules)
Répertoire contenant les « points de montage » des médias usuels : CD, DVD,
/media
disquette, clé USB, Disque externe, etc.
/root Répertoire personnel de l'administrateur
/sbin Répertoire contenant les exécutables destinés à l'administration du système
/tmp Répertoire contenant des fichiers temporaires utilisés par certains programmes
Les binaires, les bibliothèques, sources, documentations, etc. exploitables par
/usr
l’utilisateur.
Répertoire contenant les fichiers et dossiers à contenus variables comme les
/var
journaux système, les spools d’impression, les messages, etc.
Répertoire de montage plutôt utilisé pour les tests de l’administrateur ou des
/mnt
montages manuels
9
10
Répertoire Description
/srv Les données des services offerts par le système
/sys Système de fichiers virtuel
Utiliser la ligne de commandes
1. Le shell
1.1 Rôle
Les concepteurs d’ubuntu ont fait de très gros efforts afin de rendre l’utilisation de linux la
plus simple possible. La complexité de l’administration sur la version desktop est masquée
par une interface agréable et vous n’avez qu’à utiliser vos logiciels sans avoir à effectuer des
manipulations complexes.
Il n’est pourtant pas possible de se proclamer administrateur Linux (ou ubuntu) sans savoir
utiliser la ligne de commande via le shell.
L’interpréteur de commandes permet d’exécuter des instructions que vous saisissez au
clavier ou au sein d’un script et vous en retourne les résultats. L’interpréteur est aussi appelé
le shell.
Il existe plusieurs shells, chacun disposant des spécificités propres mais ubuntu a choisi le
shell le plus courant sur Linux, le bash (Bourne Again shell).
1.2 Le Shell et l’administrateur
Le but n’est pas de vous apprendre à maîtriser le shell et sa programmation, mais de vous
fournir le minimum de bases et de commandes pour vous permettre d’exploiter
correctement votre système ubuntu.
En pratique, un administrateur doit savoir utiliser le shell et notamment créer des scripts
pour se faciliter le travail et éviter les tâches répétitives.
1.3 Bash : Le shell par défaut
Le shell attends des entrées au clavier sur une ligne appelée invite de commande ou prompt.
Le prompt fournit des informations sur le terminal et votre position dans le système de
fichiers.
seb@ubuntu: /usr/bin$
Dans cette invite tout à fait classique, vous trouvez quatre informations :
Seb : C’est le login de l’utilisateur utilisant le terminal
Ubuntu : C’est le nom d’hôte de la machine
/usr/bin : C’est la position actuelle du shell dans le système de fichiers
$ : C’est la terminaison standard pour un utilisateur sans pouvoirs
Le caractère de terminaison peut être :
$ : L’utilisateur n’a pas de pouvoir particuliers
# : L’utilisateur est l’administrateur root qui a tous les pouvoirs
10
11
Le caractère tilde ~ dans le chemin représente votre répertoire personnel.
Dan la suite, l’invite de commande sera généralement remplacée par un simple $
1.4 Utiliser le shell
1.4.1 Pour débuter
Voici quelques exemples pour commencer. Il est temps de tester quelques commandes.
La commande date indique la date et l’heure actuelles. Vous n’obtiendrez évidemment
pas le même résultat, et pas toujours dans la même langue, selon votre installation
Linux.
$ date
Une commande pratique, pwd, permet de savoir à quel endroit vous vous situez dans les répertoires.
$ pwd
/home/seb
1.4.2 Aide
Accéder à l’aide d’une commande donnée avec la commande man.
$ man cal
La touche [espace] fait défiler une page, [entrée], une ligne, et [q] permet de quitter.
11
12
12
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
26
27
27
28
28
29
29
30
30
31
31
32
32
33
33
34
34
35
35
36
36
37
37
38
38
39
39
40
40
41
41
42
42
43
43
44
44
45
45
46
46
47
47
48
48
49
49
50
50
51
51
52
52
53
53
54
54
55
55
56
56