0% ont trouvé ce document utile (0 vote)
3 vues55 pages

Os Linux

Ce document présente un cours sur les systèmes d'exploitation, en particulier GNU/Linux, destiné aux étudiants de L2 IG. Il couvre les définitions, fonctions, caractéristiques, et modes de fonctionnement des systèmes d'exploitation, ainsi que les méthodologies d'enseignement et d'évaluation. Les étudiants apprendront à maîtriser GNU/Linux et à gérer efficacement leur poste à travers des travaux pratiques et dirigés.

Transféré par

jonathanmuanda34
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues55 pages

Os Linux

Ce document présente un cours sur les systèmes d'exploitation, en particulier GNU/Linux, destiné aux étudiants de L2 IG. Il couvre les définitions, fonctions, caractéristiques, et modes de fonctionnement des systèmes d'exploitation, ainsi que les méthodologies d'enseignement et d'évaluation. Les étudiants apprendront à maîtriser GNU/Linux et à gérer efficacement leur poste à travers des travaux pratiques et dirigés.

Transféré par

jonathanmuanda34
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SYSTEME D’EXPLOITATION

Pour les étudiants de L2 IG

Ass. Héritier TSIMBA MANKUAMA


Ir en Sciences Informatiques

Email : tsimbamankuamal1info@[Link]

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 1
[Link]

Un système d’exploitation est le centre crucial de toute activité de traitement


d’information sur un ordinateur. Un système d’exploitation est un programme qui fait
fonctionner les autres programmes ainsi que la partie matérielle de l’ordinateur. Il
agit comme un intermédiaire entre l’utilisateur, les logiciels d’application et la partie
matérielle de la machine.

GNU/Linux est un système d’exploitation libre basé sur Unix. Très performant, il est
stable et très sûr. Installé sur une majorité de serveurs web pour internet, sur les
supercalculateurs du monde entier et même sur l’ISS, il est très peu présent sur les
postes de travail.

Par abus de langage, le terme Linux est souvent utilisé pour désigner le système
d'exploitation entier, La vraie appellation est GNU/Linux.

[Link] GENERAL

Avec ce cours, vous allez apprendre à maîtriser ce système et devenir un


utilisateur autonome et avancé pouvant gérer votre poste de façon efficace. Vous allez
découvrir les nombreuses possibilités qu’offre le shell. Vous saurez tout sur le système
GNU/Linux, depuis sa création jusqu’à son utilisation avancée grâce à la console. Ce
cours va vous faire découvrir ce que sont les logiciels libres ainsi que GNU/Linux.

PREREQUIS

Pour mieux aborder ce cours, il est préférable que l’apprenant ait des
connaissances en architecture des ordinateurs et algorithmique.

PLAN DU COURS

CHAPITRE 1 : GENERALITES SUR LE SYSTEME D’EXPLOITATION


CHAPITRE 2 : LE SYSTEME D’EXPLOITATION LINUX
CHAPITRE 3 : SYSTEME D’EXPLOITATION LINUX UBUNTU
CHAPITRE 4 : GESTION DES FICHIERS SOUS LINUX

METHODOLOGIE

 Cours intégré

 Travaux dirigés (réalisation et correction d’exercices)


 Travaux pratiques (Linux ubuntu)

EVALUATION

 Interrogations
 Travaux pratiques
 Travaux dirigés
 Examen final
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 2
CHAPITRE I. GENERALITE SUR LE SYSTEME D’EXPLOITATION

Un ordinateur sans système d’exploitation est un ordinateur inerte. Lui seul ne saura jamais
satisfaire les besoins d’un utilisateur. Pour qu'un ordinateur soit capable de faire fonctionner
un programme informatique (appelé parfois application ou logiciel), d’effectuer un certain
nombre d'opérations préparatoires afin d'assurer les échanges entre le processeur, la
mémoire, et les ressources physiques (périphériques) doit être doté d’un système
d’exploitation.

I.1.1. DEFINITION DU SYSTEME D’EXPLOITATION

Un système d’exploitation est un ensemble de programmes généraux qui permet de gérer les
ressources d’un ordinateur, d’assurer l’enchaînement des travaux, la mise au point des
programmes, la gestion des mémoires, la gestion des données et la compilation.

I.1.2. FONCTIONS OU OPERATIONS DU SYSTEME D’EXPLOITATION

De façon générale, un système d’exploitation sert l’interface entre l’utilisateur et l’ordinateur


en effectuant les opérations suivantes :
 La gestion des fichiers : création, manipulation etc.
 La gestion des répertoires : création, manipulation etc.
 La gestion des disques durs et mémoire ;
 La gestion de processus ;
 Gestion des entrées/sorties,…

Les rôles techniques du système d'exploitation sont divers :


 Gestion du processeur : le système d'exploitation est chargé de gérer l'allocation du
processeur entre les différents programmes grâce à un algorithme
d'ordonnancement.;
 Gestion de la mémoire vive : le système d'exploitation est chargé de gérer l'espace
mémoire alloué à chaque application et, le cas échéant, à chaque usager. En cas
d'insuffisance de mémoire physique, le système d'exploitation peut créer une zone
mémoire sur le disque dur, appelée «mémoire virtuelle». qui permet de faire
fonctionner des applications nécessitant plus de mémoire qu'il n'y a pas de mémoire
vive disponible sur le système. En contrepartie cette mémoire est beaucoup plus
lente ;
 Gestion de l'exécution des applications : le système d'exploitation est chargé de la
bonne exécution des applications en leur affectant les ressources nécessaires à leur
bon fonctionnement. Il permet à ce titre de «tuer» une application ne répondant plus
correctement ;
 Gestion des droits : le système d'exploitation est chargé de la sécurité liée à l'exécution
des programmes en garantissant que les ressources ne sont utilisées que par les
programmes et utilisateurs possédant les droits adéquats ;
 Fournir des utilitaires et autres fonctions : Le système d’exploitation fournit aussi des
outils de gestion des disques (defrag, scandisk, fdisk, format, etc.), des utilitaires de
gestion de réseau, les interpréteurs de commandes, etc. De plus, la plupart des

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 3
systèmes d’exploitation comportent une série de petits programmes ou utilitaires :
traitement de texte de base, calculatrice, calendrier, outils de connexion et de
navigation dans Internet, etc.

I.1.3. CARACTERISTIQUES DU SYSTEME D’EXPLOITATION

Le matériel, le système d’exploitation et les applications décrites en amont sont


indispensables pour le bon fonctionnement de l’ordinateur.
Ce dernier remplit les fonctions suivantes :
 Fournir une interface utilisateur
 Assurer la gestion des tâches ou processus
 Assurer la gestion des périphériques
 Assurer la gestion des fichiers
 Assurer la gestion de la mémoire

1. Fournir une interface utilisateur

La première caractéristique du système d’exploitation touche l’interface utilisateur qu’il


fournit. Cette interface fait le lien entre la machine et l'utilisateur; elle joue un peu le rôle
d'interprète. Cette interface est généralement configurable pour s'adapter aux besoins de
différents utilisateurs (profil utilisateur) ou de différents logiciels d'application (configuration
des fichiers systèmes) ou même de différents matériels (profil matériel).

Par ailleurs, certaines interfaces vont même jusqu'à accepter plusieurs utilisateurs sur la
même console; cas d'un système multiutilisateur.
Au fil du temps, différentes interfaces ont été utilisées, dont les principales sont :
Les interfaces en mode ligne de commande (ou en mode textuelle) ;
Les interfaces graphiques ;
Les interfaces spatiales.

[Link] en mode ligne de commande (ou en mode textuel)

Avec ce type d’interface, l'utilisateur mémorise les différentes commandes acceptées par le
système d'exploitation et les rentre au clavier en respectant scrupuleusement leur syntaxe.
L'entrée se fait au clavier et la sortie est affichée à l'écran (mode texte), dans une fenêtre.
Lorsqu'un système d'exploitation ne dispose que de ce type d'interface, on le qualifie de
système en mode texte ou piloté par commandes.
MS-DOS et UNIX (le noyau seulement) sont des exemples de système d'exploitation en
mode texte.
[Link] interfaces graphiques

Les interfaces graphiques sont apparues avec MacOS et (ou) Windows ; c'est le système de
multifenêtrage, aussi appelé Windows System.
Une particularité de ces interfaces, c’est qu'elles ne sont pas une partie intégrante du
système d'exploitation, mais qu’elles font partie des logiciels qu'il faut installer à part. Il en
existe d'autres, par exemple dans le monde de LINUX, qui sont apparues ces dernières

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 4
années, telles KDE et Gnome pour ne nommer que celles-là.
Nous pouvons dire que les vrais systèmes d'exploitation graphiques sont apparus avec
MacOS (1984) et plus tard avec OS/2 (1988), puis avec Windows NT (1993) et Windows 9x
(1995 – Windows 11).
L'interface graphique a bien apporté un concept look and feel (richesse fonctionnelle) dans
lequel nous avons :
Un bureau
des fenêtres
des menus
des icônes, etc.

[Link] la gestion des tâches

Disons d’abord qu’une tâche est un ensemble logique d'opérations provoquant l'exécution
d'un programme ou d'une partie d'un programme.
Le système d’exploitation se charge de l’exécution des programmes, de terminer ou
suspendre l'exécution, de contrôler la priorité, etc. Pour ce faire, il assigne une tranche de
temps pour l’accès au microprocesseur à chacune des tâches qu'il doit accomplir. Il
interrompt les opérations et les remplace par la tâche suivante.
La gestion des tâches peut se faire de différentes façons, notamment en mode multitâche
préemptif ou coopératif, ou en mode monotâche. Les tâches peuvent aussi être scindées en
tâches élémentaires ou processus allégés (thread), qui s’exécutent beaucoup plus vite. On
parlera alors de programmes en chapelet ou de traitement multiprocessus ou
multitransactionnel (multithreading). Windows NT et LINUX supportent un tel traitement.

3. Assurer la gestion des périphériques

Les systèmes d’exploitation peuvent assurer la gestion des périphériques à condition que les
pilotes soient installés. Cette troisième caractéristique touche donc le chargement des pilotes
(drivers) et la gestion des procédures de lecture/écriture sur disque et disquettes, des
procédures d'impression, d’affichage, de communication, etc.
Mais qu’est-ce qu’un pilote?
Un pilote informatique est un programme informatique destiné à permettre à un autre
programme (SE) d’interagir avec un dispositif électronique (périphérique).
En général, chaque périphérique a son propre pilote.

4. Assurer la gestion des fichiers

Un système d'exploitation doit être en mesure de créer, de supprimer, de renommer et de


déplacer des fichiers et des répertoires. Il doit aussi gérer l'accès aux fichiers (protégé en
écriture, etc.). Enfin, il doit s'occuper de l’organisation et de l’emplacement des fichiers.

[Link] de fichiers et répertoires


[Link] mode commande

La plupart des systèmes d’exploitation permettent la manipulation des fichiers en mode


commande. Dans certains cas, on aura une émulation de la ligne de commande intégrée à
l’interface graphique; mais les systèmes textuels, tels DOS et LINUX, fournissent un accès
direct à la ligne de commande.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 5
[Link] mode graphique

En général, les interfaces graphiques possèdent au moins un gestionnaire de fichiers, parfois


plusieurs. Dans la famille Windows, « Explorateur » et « Poste de travail » jouent ce rôle. Ces
gestionnaires sont conviviaux, au point qu’on oublie le traitement de base associé au
déplacement d’un répertoire, par exemple.

2.L’organisation des fichiers

Sur le disque dur d’un ordinateur, l’organisation et l’emplacement des fichiers sont gérés par
le système de fichiers; on dit aussi système de gestion de fichiers ou SGF. Associé au logiciel
nécessaire à leur exploitation, il s’occupe de la structure des fichiers sur un disque. Parmi les
plus courants, citons la table d’allocation des fichiers (FAT), ext2 (terminologie des éléments
à fenêtre, menus, boîtes de dialogue et de message, autres éléments d'écran IUG, touches,
interventions utilisateur et applications de Microsoft Windows) et la NTFS (NT file system).
Notons que certains systèmes d'exploitation peuvent en reconnaître plusieurs.

5. Assurer la gestion de la mémoire

C’est au système d’exploitation que revient le rôle de gérer la mémoire : transférer les
programmes et les données nécessaires à la création des processus, d’un support
secondaire, par exemple un disque, vers un support central, où s’exécutent les processus.
Le système doit en plus garder la trace des parties utilisées et libres de la mémoire et gérer
les transferts entre les mémoires principale et secondaire.
La gestion de la mémoire, pour ce qui est de l’exécution des programmes, est caractérisée,
sur un grand nombre de systèmes, par l’utilisation de machines virtuelles (MV).
L’utilisation de machines virtuelles permet de partitionner la mémoire en plusieurs segments,
chacun étant attribué à un programme. Ainsi, chaque fois qu’un programme s’exécute, il le
fait dans son propre espace mémoire et le processeur lui est attribué pour un certain temps,
au bout duquel une autre application le remplacera : l’application a donc l’impression qu’elle
est la seule à fonctionner dans la machine.

I.1.4. CONSTITUTION D’UN SYSTEME D’EXPLOITATION

Le système d'exploitation est composé d'un ensemble de logiciels permettant de gérer les
interactions avec le matériel. Parmi cet ensemble de logiciels on distingue généralement les
éléments suivants :
1) Le noyau (en anglais kernel) représentant les fonctions fondamentales du système
d'exploitation telles que la gestion de la mémoire, des processus, des fichiers, des
entrées-sorties principales, et des fonctionnalités de communication. Il comprend les
chargeurs qui permettent d’entrer les programmes et de les exécuter et les moniteurs
ou superviseurs qui assurent l’enchaînement des différents travaux, qui contrôlent
toutes les opérations d’entrées et sorties des informations, qui signalent toutes les
incidents de fonctionnement de l’ordinateur ;
2) Les programmes de traduction : ils permettent à un utilisateur de communiquer avec
un ordinateur car l’ordinateur de part sa constitution ne connaît qu’un seul langage
appelé langage binaire basé sur les chiffres 0 et 1. Ce dernier est difficile à utiliser par
l’homme et pour ce fait tout programme conçu par l’homme doit être interprété afin qu’il
soit accessible par l’ordinateur. D’où l’existence de deux techniques de traduction

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 6
appelées compilateur et interpréteur de commandes.
 Le compilateur : il assure la traduction complète d’un programme une fois pour toute ;
 L'interpréteur de commande (en anglais shell, traduisez «coquille» par opposition au
noyau) : il assure la traduction au fur et à mesure des besoins de l’exécution du
programme. Il permet donc la communication avec le système d'exploitation par
l'intermédiaire d'un langage de commandes, afin de permettre à l'utilisateur de piloter
les périphériques en ignorant toutes les caractéristiques du matériel qu'il utilise, de la
gestion des adresses physiques, etc.
3) Le système de fichiers (en anglais «file system», noté FS), permettant d'enregistrer les
fichiers dans une arborescence.
NB : un système d’exploitation comprend les fichiers suivants : les fichiers d’interpréteur des
commandes, les fichiers de gestion des entrées/sorties, les fichiers de configurations des
systèmes.

I.1.5. MODES DE FONCTIONNEMENT

Suivant la nature des travaux qu’il a à traiter, un système d’exploitation fonctionne soit en
mode monoprogrammation ou soit en mode multiprogrammation.
1. Mode monoprogrammation
Ce mode consiste à faire tourner un seul programme dans la mémoire centrale et on lui
réserve toutes les ressources de l’ordinateur (mémoire centrale, unités de périphériques,
etc.…) cas du MS-DOS.
2. Mode multiprogrammation
C’est le partage de la mémoire entre plusieurs travaux ; ceci n’importe pas un traitement
simultané de tous les programmes logés en mémoire centrale, mais chacun d’eux est traité
pendant les temps mort d’un autre en utilisant un système de file d’attente avec différents
utilisateurs. Ce mode permet de restituer aux utilisateurs les possibilités d’interaction offertes
par une machine individuelle en les faisant bénéficiaires des services. Cas de l’UNIX, Linux,
etc.
Nous distinguons plusieurs cas des modes de fonctionnement et de traitement à savoir :
1) Le multi - utilisateurs avec un programme commun : les utilisateurs disposent des
différents terminaux exécutent un seul programme.
2) Le multi - utilisateurs multi-tâches : chaque utilisateur a l’impression d’utiliser seul la
machine. Ce système est dit «multi – tâche» (en anglais multithreaded) c’est-à-dire
lorsque plusieurs «tâches» (également appelées processus) peuvent être exécutées
simultanément.
3) Le multi - utilisateurs, multi - traitements : plusieurs programmes peuvent s’exécuter
effectivement en même temps sur des unités différentes et autonomes ; on parle alors
du système distribué (plusieurs ordinateurs connectés) ;
4) Les applications sont composées en séquence d'instructions que l'on appelle
«processus légers» (en anglais «threads»);
5) Le système à temps partagé : lorsqu'un quota de temps est alloué à chaque processus
par l'Ordonnanceur. C'est notamment le cas des systèmes multi -utilisateurs qui
permettent à plusieurs utilisateurs d'utiliser simultanément sur une même machine des
applications différentes ou bien similaires : le système est alors dit «système
transactionnel». Pour ce faire, le système alloue à chaque utilisateur une tranche de
temps ;
6) Le système à temps réel (real time system), essentiellement utilisés dans l'industrie,
sont des systèmes dont l'objectif est de fonctionner dans un environnement contraint
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 7
temporellement. Un système temps réel doit ainsi fonctionner de manière fiable selon
des contraintes temporelles spécifiques, c'est-à-dire qu'il doit être capable de délivrer
un traitement correct des informations reçues à des intervalles de temps bien définis
(réguliers ou non).
Exemples OS-9 ;RTLinux (RealTime Linux) ; QNX ; VxWorks ;
7) Les systèmes embarqués prévus pour fonctionner sur des machines de petite taille,
telles que des PDA (personal digital assistants ou en français assistants numériques
personnels) ou des appareils électroniques autonomes (sondes spatiales, robot,
ordinateur de bord de véhicule, etc.), possédant une autonomie réduite. Ainsi, une
caractéristique essentielle des systèmes embarqués est leur gestion avancée de
l'énergie et leur capacité à fonctionner avec des ressources limitées.

I.1.6. LES QUALITES D’UN SYSTEME D’EXPLOITATION

 La fiabilité : limiter les conséquences des défaillances matérielles ou des erreurs des
utilisateurs. En cas de panne, éviter les pertes d’information ou leur incohérence ;
 Efficacité : Utiliser au mieux les ressources et possibilités matérielles (sans en
consommer trop pour lui-même) ;
 Facilité d’emploi : Offrir un langage de commande (dialogue usager/système) et des
diagnostics d’erreurs (système/usager) clairs et précis ;
 Adaptabilité : permettre des modifications matérielles et logicielles les plus simples
possibles, à l’aide d’outils spécialisés ;
 Mesurabilité : Enregistrer la comptabilité des ressources utilisées par les usagers,
mesurer les paramètres de fonctionnement et de charge.

I.1.7. DIFFERENTS SYSTEMES D’EXPLOITATION

Les systèmes d’exploitation se classent en deux catégories :


 Soit ils sont conçus pour fonctionner sur une machine isolée (comme par exemple, une
station cliente)
 Ils jouent le rôle du chef d’orchestre de l’ordinateur.
Le système d’exploitation gère l’allocation et l’utilisation de toutes les ressources de
l’ordinateur, et coordonne les interactions entre l’utilisateur et les programmes qui sont
exécutés sur l’ordinateur :
 Soit ils sont conçus pour fonctionner en réseau (comme par exemple un serveur)
 ils sont construits pour satisfaire toutes les demandes de service qui leur sont
adressée en même temps par des clients différents. Leur capacité doit être répartie
équitablement selon le nombre d’utilisateurs connectés.

 Le système d’exploitation réseau est le chef de gare du réseau.

Les rôles du système d’exploitation réseau sont :


L’accès des utilisateurs au réseau
Le partage des informations et ressources
La surveillance du réseau: (performances et sécurités)

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 8
I.2. ETUDE DES CAS DES SYSTEMES D’EXPLOITATION

Il est à noter qu’il existe plusieurs systèmes d’exploitation dont le MS DOS, UNIX,
WINDOWS, LINUX, MACINTOSH, etc. Mais dans ce cours il ne sera question que d’étudier
les cas en pratique des systèmes d’exploitation LINUX.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 9
CHAPITRE II : GENERALITES SUR LINUX

Un système d’exploitation est un ensemble de programmes prenant en charge les


fonctions les plus basiques d’un ordinateur : l’interface entre l’utilisateur et la machine
(gestion du clavier, de l’écran, etc.), ainsi que la gestion des ressources du système
(capacité mémoire, disque dur, etc.).

Linux est un système d’exploitation comparable à Unix. La différence majeure tient au


fait que Linux peut être copié avec l’intégralité de son code source. Au cours de
l’histoire de l’informatique, différents systèmes d’exploitation ont été développés.
Jusqu’ici, vous avez probablement été en contact avec l’un des nombreux
systèmes d’exploitation Windows (3.1, 95, 98, SE, ME, NT, 2000, XP,
2003. Vista, win7, Win8, Win10, Win 11), voire avec leur prédécesseur, MS-DOS. On
peut citer d’autres systèmes d’exploitation, comme ceux des ordinateurs Apple et
des ordinateurs déjà oubliés, Commodore Amiga et Atari ST.

1. Qu’est-ce qu’un ordinateur

Un ordinateur est composé de différents éléments matériels (le hardware) :

Voyons cela un peu plus en détail. Il y a tout d'abord l'unité centrale, c'est le cœur

de l'ordinateur. C'est dans ce boitier que se trouvent tous les composants :

 la carte mère, carte principale servant à interconnecter tous les éléments,

 le processeur, c'est lui qui exécute les programmes,

 les barrettes de RAM, la mémoire où l'ordinateur stocke les données

pendant leur traitement,

 la carte graphique qui gère l'aspect graphique,


 la carte son qui gère le son,

 la carte réseau qui gère les périphériques réseaux,

 le disque dur, pour stocker le système d’exploitation et les données de

l'utilisateur.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 10
 un lecteur de CD/DVD…

Puis, viennent les périphériques. Car une unité centrale seule ne sert à rien. L'écran
permet d'afficher les diverses informations venant de l'unité centrale. Le clavier et la
souris, périphériques d'entrée, servent à envoyer des instructions à l'ordinateur, à
interagir avec l'interface graphique de l'ordinateur. On peut aussi brancher des
enceintes, un casque, un micro ou une webcam.

D'autres périphériques externes peuvent être utiles, tel qu'une imprimante, un scanner,
une tablette tactile pour dessiner.

Pour mettre des PC en réseau, il faut un hub (ou concentrateur), et pour se


connecter à internet il faut un modem ou une box internet (qui fait le lien entre votre
ordinateur et internet). Enfin, on a besoin de quelques consommables, pour stocker ou
transférer ses données, tel un DVD, un disque dur externe ou encore une clé USB.
Voilà, on vient de faire le tour du matériel informatique courant. Mais tout ce matériel,
sans logiciel, ne sert à rien.

2. Les logiciels

Un logiciel (software) est une suite d'instructions et de données, écrites dans un


langage de programmation, c'est à dire un langage qui permet à un être humain d'écrire
un programme qu'un ordinateur peut comprendre et exécuter.

Le seul langage qu’un ordinateur puisse comprendre est le langage assembleur (un
langage machine, de très bas niveau, difficilement compréhensible pour un humain).
Les programmes aujourd’hui sont écrits dans d’autres langages que celui-ci. On a
donc créé un programme, le compilateur, qui «traduit» le code du programme original
en code assembleur, afin que l’ordinateur puisse le comprendre et l’exécuter.

Les langages les plus courants sont le C, C++, Java, Python, Ruby, mais il en
existe des dizaines, comme Fortran, Lisp, le Javascript ou le PHP pour internet.

Les instructions des programmes sont stockées dans des fichiers (le code source).

Puis il faut les transformer en exécutable (format binaire) pour que le système

d'exploitation puisse les utiliser (format exe sous Windows, bin pour GNU/Linux).

Le premier des logiciels à démarrer lorsqu'on allume un ordinateur, c'est le BIOS (Basic
Input Output System). Il est stocké sur la carte mère, en mémoire morte (c'est à dire
qu'on ne peut écrire dessus, et qu'elle ne s'efface pas lorsque l'ordinateur n'est
plus sous tension). Le BIOS fait quelques tâches de base, vérifie que tout fonctionne
correctement (d'où le « bip » au démarrage), puis ensuite, va lire un secteur particulier
du disque dur pour chercher si un système d'exploitation est installé.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 11
3. Le système d’exploitation

Le système d'exploitation est un ensemble de logiciels qui fait le lien entre les
programmes et le matériel. C'est lui qui gère et organise les ressources
matérielles comme le processeur, la mémoire, les disques durs. Chaque système
d’exploitation a ses spécificités. Leur conception est donc différente. Par exemple,
les dernières versions de Windows requièrent beaucoup de RAM (Mémoire vive) et
un processeur très puissant, alors que les dernières versions de GNU/Linux sont
beaucoup moins gourmandes en ressources. Sous Windows, il faut défragmenter le
disque dur régulièrement (c'est à dire réorganiser physiquement l'organisation du
disque pour rapprocher les morceaux d'un même fichier afin de gagner en rapidité de
lecture) alors qu'un système de type Unix n'en a pas besoin.

Pour faire fonctionner le matériel, comme une imprimante, une carte graphique, une
tablette numérique ou un joystick, il faut un pilote (driver). Ce logiciel sert d'interface
entre le système d'exploitation et le périphérique lui-même, il spécifie au logiciel
comment se servir du périphérique.

Un système d'exploitation seul ne sert à rien. Sans des logiciels types traitement de
texte, navigateur internet, graveur de DVD, client mails, le système lui-même ne peut
rien faire. C'est encore une grande différence entre les systèmes Windows et
GNU/Linux notamment. Sous Windows, le système installé ne contient que peu de
logiciels. Une distribution GNU/Linux fraîchement installée contient déjà des dizaines
de logiciels pour tout faire.

Les principaux systèmes d’exploitation sont Windows de Microsoft, macOS et iOS


d’Apple, GNU/Linux, Android de Google. Android est un système pour mobile qui
se base sur le noyau Linux.

Les composants d'un système d'exploitation GNU/Linux sont :

 les composants GNU : le Shell, le compilateur, le logiciel d'amorçage…

 l'environnement graphique,
 les logiciels libres,

 les logiciels propriétaires,

 la documentation,

 le noyau Linux, le cœur du système

Les logiciels libres

Histoire

L'histoire du logiciel libre commence en septembre 1983. Richard M. Stallman (RMS),


alors chercheur au MIT (Massachussetts Institute of Technology), lance le

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 12
projet GNU (Gnu's Not Unix, acronyme récursif) : un projet de système
d'exploitation libre basé sur Unix. Il fait cela en réaction à la mentalité d'alors qui change
dans le milieu informatique, et qui consiste à garder son code source secret et faire
payer des licences pour ses logiciels.

Au début, ce n'était pas du tout le cas, et les sources des logiciels étaient
disponibles gratuitement. RMS s'insurge contre ce changement de mentalité, et quitte
le MIT. Il souhaite développer un système d'exploitation basé sur Unix, mais totalement
libre (il est l'auteur du fameux éditeur Emacs et du compilateur GCC). Après avoir
publié le Manifeste GNU en 1985, où il explique clairement ses buts, il crée la F.S.F.
(Free Software Foundation), pour s'assurer la logistique nécessaire, et avoir un
cadre juridique légal pour promouvoir l'éthique, la politique et la philosophie du projet
GNU.

En 1990 est lancé le projet Hurd, un microkernel qui devra devenir le noyau du système
GNU. Mais il n'avance pas assez vite, et le projet s'enlise. Le 5 octobre

1991. Linus Torvalds, étudiant finlandais de 21 ans, annonce sur le forum usenet
[Link] la mise à disposition des sources d'un système d'exploitation, tout petit
pour le moment. Il l'a créé seul, au départ pour ses propres besoins. Il s'est basé sur
Minix, un petit clone libre d'Unix. Il va finalement l'appeler Linux.

Et le noyau Linux (qui devient libre en 1992) s'est finalement associé au projet GNU, car
le noyau officiel n'était pas encore prêt. C'est pour cela que l'on doit parler de
GNU/Linux lorsque l'on parle d'une distribution, et pas seulement de Linux, Linux
n'étant que le noyau de ce système.

Fonctionnement

Le monde des logiciels libres fonctionne évidemment différemment de celui des


logiciels propriétaires, notamment du fait de la gratuité (souvent mais pas toujours)
du logiciel. Un projet libre est, le plus souvent, décentralisé :

Un développeur commence un projet, seul, puis le publie sur internet. Si d'autres


développeurs s'y intéressent et qu'il y a des utilisateurs, ils rejoignent le projet, qu'ils se
trouvent dans la même ville ou sur un autre continent. Une communauté peut ainsi se
former, si le projet fonctionne.

Ce mode décentralisé est rendu possible par la forte utilisation d'internet, dont les
standards (tels HTTP, SMTP, TCP/IP sont issus du libre ou du domaine public). Les
contributeurs peuvent travailler ensemble sur un même projet sans jamais se
rencontrer, en habitant sur des continents différents. Sur de tels projets, il n'y a pas de
chef ni de véritable hiérarchie, et chacun peut participer selon ses compétences.
Le mouvement du libre a un objectif principal : la qualité.

Les qualités principales des logiciels libres sont :

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 13
 la réactivité de la communauté (pour trouver et corriger les bugs par

exemple),

 la fiabilité,

 l'ouverture du code,

 la sécurité des logiciels créés (puisque l'on « voit » ce qu'il y a dedans),


 la qualité (pour que les développeurs, contributeurs puissent être reconnus

pour leur travail par leurs pairs),

 la pérennité, du fait de l'utilisation de standards reconnus et ouverts.

Les logiciels libres sont bénéfiques pour tous :

Ils offrent aux pays en voie de développement un moyen de rattraper leur retard
technologique, et de réduire la fracture numérique, en Europe, ils permettent de lutter
contre l'hégémonie des GAFAM, dans les administrations, pour réduire les dépenses et
être plus indépendant. De plus, le libre partage des connaissances va de pair avec
l'éducation, le monde de l'enseignement et des scientifiques.

Modèles économiques

Les modèles économiques en usage ici sont évidemment quelque peu différents de
ceux en usage dans le monde des logiciels privatifs, puisque les logiciels sont souvent
gratuits, et que les licences sont différentes et ne permettent pas les mêmes choses.
Voyons les principaux modèles existants.

Certains éditeurs proposent leurs produits en plusieurs versions, certaines


gratuites et ouvertes, et d’autres, plus complètes, avec une licence plus restrictive ou
en appliquant une tarification standard. C’est le modèle d’éditeur en double licence.

Le modèle de distribution à valeur ajoutée permet à une société de diffuser


librement et gratuitement ses logiciels, et on ne paye que si l’on souhaite avoir du
support pour ce produit : documentation, formation, support et maintenance.

Le modèle de service à valeur ajoutée fonctionne comme une société de services


logiciels, mais là, tout est basé sur des outils et composants libres.

Pour approfondir tout ceci, je vous recommande le très intéressant livre blanc de
l’APRIL (Association de promotion et de défense du logiciel libre).

Les licences libres.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 14
Licence libre : c'est une licence s'appliquant à une œuvre (livre, programme...) et
donnant à son utilisateur certains droits quant à l'utilisation, la modification, la
réutilisation de ce document.

Copyleft : ou « gauche d'auteur », permet qu'une œuvre (programme, livre)


publiée sous licence libre, reste libre même si elle est modifiée. Les termes du copyleft
sont contenus dans la licence GNU (General Public Licence).

La première, et la plus utilisée encore aujourd'hui, des licences libres est la GNU GPL.
Elle a été écrite par RMS et Eben Moglen pour garantir les droits des logiciels
libres du projet GNU. Cette licence en est à la version 3 (la version 2 date de 1991). Sa
plus importante caractéristique est le copyleft. Elle a été écrite à l'origine, en 1989, pour
créer une licence libre utilisable par tous, afin que les développeurs puissent
facilement partager leurs codes et donc s'entraider et coopérer.

Aujourd'hui, il existe une multitude de licences libres :

 la LGPL : Lesser Public General Licence, plus permissive que la GPL,


 la licence CeCILL : CEA CNRS INRIA Logiciel Libre : la licence libre

Française,

 la licence BSD,

 Apache Software Licence,

 MIT,
 Mozilla Public Licence.

Il existe des licences libres notamment dans le domaine de l’art pour les photos,
dessins et textes. La principale est la licence Creative Commons et ses variantes.

Voici maintenant les 4 libertés qui permettent de dire qu'un logiciel est libre :

 Liberté d'utiliser le logiciel pour n'importe quel usage,


 Liberté de le modifier pour l'adapter (donc accès aux sources),

 Liberté de le redistribuer (gratuitement ou non),

 Liberté de redistribuer ses modifications (pour que tout le monde en

profite).

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 15
Open source ou free software ?

Les deux terminologies renvoient en fait à la même liberté vis-à-vis du logiciel. Les
définitions de l’Open Source Initiative et de la Free Software Foundation sont
pratiquement identiques. La différence vient plutôt de la façon de voir cette liberté.
Pour la FSF, il y a une dimension philosophique et politique. Pour le mouvement Open
source, il est plus question de méthode, et celui-ci est plus tourné vers le monde de
l’entreprise.

Les principaux logiciels libres

Il existe des milliers de logiciels libres, développés par la communauté ou par de


grandes entreprises commerciales. Voyons les plus populaires.

 LibreOffice, une suite bureautique complète et gratuite qui remplace très


bien la suite de Microsoft.

 Le navigateur internet Firefox développé par la Fondation Mozilla, qui

remplace avantageusement Edge, ainsi que le client de mails Thunderbird qui


peut remplacer Outlook.

 Le logiciel multimédia VLC pour lire des films et de la musique, disponible


également pour Windows.

 Pour graver des DVD, il y a K3B,

 pour gérer des sites internet on peut utiliser le client FTP FileZilla,

 pour modifier les partitions de son disque dur on utilise notamment

Gparted.
 Bleachbit sert à nettoyer le système des fichiers inutiles.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 16
 The Gimp est un très bon logiciel de manipulation d’images,

 Blender pour la 3D ou encore Scribus pour la PAO.

N’oublions pas des logiciels plus tournés vers les entreprises avec l’ERP Dolibarr ou le
système Prestashop pour créer sa boutique en ligne.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 17
Bien évidemment, les logiciels libres sont très présents au niveau du réseau avec
principalement le serveur web Apache ou encore Samba pour le partage de fichiers et
d’imprimantes. BIND est un des serveurs DNS les plus utilisés pour internet, Sympa
pour les listes de diffusion. NextCloud permet de mettre en place un système de cloud
facilement pour y héberger divers services. MySQL est une base de données très
utilisée sur internet et Postfix pour les serveurs de mails. Pour la programmation, citons
Netbeans, pour le développement web il existe BlueGriffon ou Bluefish. Le monde
éducatif n’est pas oublié avec notamment les suites Gcompris ou AbulEdu.

Les principales distributions GNU/Linux

Une distribution GNU/Linux se compose d'un ensemble de logiciels, libres et


commerciaux, du noyau Linux ainsi que des programmes du projet GNU. Elle dispose,
généralement, d'un environnement de bureau (KDE, Gnome ou autre), d'un
gestionnaire de paquets (deb, rpm, tgz...), d'un système d'amorçage (Grub le plus
souvent). Elle dispose aussi d'un programme d'installation et de divers outils de
configuration et de maintenance. Tout cela formant un ensemble cohérent, simple
à installer, utiliser et administrer. Ce système est un dérivé d'Unix, il en possède
certaines caractéristiques. Il est multitâche, multi-utilisateur, conçu de façon plutôt bien
sécurisé et très bien pour le réseau. La première distribution date de 1992 (Linux
version 0.96), et la plus ancienne encore maintenue aujourd'hui est Slackware.

Aujourd’hui, il en existe des centaines. Certaines sont spécialisées dans un


domaine, tel les serveurs web, le réemploi d’ordinateurs (Emmabuntüs), l’auto-
hébergement (YunoHost), l’embarqué, le domaine scolaire (PrimTux). Elles utilisent
différents environnement de bureau (l’interface graphique du système). KDE et Gnome
sont les plus utilisés mais il en existe d’autres, souvent plus léger pour des systèmes
moins puissants ou plus anciens (LXDE, Xfce, Cinnamon,

Mate…). Les distributions les plus populaires sont :

 Ubuntu, distribution commerciale basé sur Debian et développée par la


société Canonical,

 Debian, distribution communautaire très sûre et stable,

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 18
12
 Red Hat, commerciale et payante, développée par la société du même

nom,

 SUSE, commerciale également,

 Mint, communautaire, basée sur Ubuntu mais aussi Debian,

 Manjaro, communautaire,
 Fedora, distribution communautaire soutenue par la société Red Hat,

 Mageia, distribution communautaire,

 Tails, pour la sécurité et la protection de la vie privée

3.5. Les raisons pour installer un système Linux

 Installer et mettre à jour légalement et sans avoir à payer, installer la même


copie de mon OS (Ubuntu) sur plusieurs machines sans me soucier des
restrictions de licences ou de clés d’activation ; Distribuer des copies de mon
système d’exploitation et des programmes qui tournent dessus sans violer
aucune loi ;
 Fonctionner sans utiliser d’anti-virus, de protection anti-adware ou
spyware, ne pas avoir à redémarrer ma machine pendant des mois tout en
recevant toujours les derniers correctifs de sécurité ;
 Installer et exécuter facilement différentes interfaces graphiques si je
n’aime pas la configuration par défaut ;
 Installer une centaine de programmes par une simple commande ; les
applications qui sont très modulaires et basées sur des bibliothèques
communes en font un système extrêmement léger ; il existe des mini-
distributions (Small Linux, Deli Linux,...)linux capables de s’installer sur des
machines vieillissantes ;
 Fonctionner sans avoir à ’ défragmenter ’ mon disque dur, car Linux écrit là
[Link] y a de la place et fait une gestion optimisée de l’espace ;
 Avoir le contrôle total du matériel installé sur ma machine et savoir qu’il n’y
a pas de porte dérobée dans mes logiciels ;
 Pouvoir faire une énorme erreur qui nécessite la réinstallation complète de
mon système et être capable de le faire en moins d’une heure, parce que j’ai mis
toutes mes données sur une partition séparée du système d’exploitation et
des programmes ;
 Pouvoir démarrer mon système avec de "SUPERS" effets, aussi sympa que
ceux de Vista, sur une machine qui a 3 ans... en moins de 40 secondes, temps
d’identification compris (nom d’utilisateur + mot de passe),
 Etre capable de configurer tout ce que je veux, légalement, y compris mes
programmes fétiches. Je peux même contacter les développeurs du logiciel
concerné pour leur poser des questions, leur donner des idées et être impliqué
dans la construction ou le développement de la version en cours si j’en ai envie ;
 Pouvoir utiliser le même matériel pendant plus de 5 ans avant qu’il n’ait

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 19
réellement besoin d’être remplacé... J’ai toujours du matériel qui a presque
10 ans, qui tourne sous Linux et qui est toujours utile ;
 Pouvoir surfer sur internet pendant que l’OS s’installe ! ! !
 Utiliser à peu près n’importe quel matériel en sachant que le pilote est déjà
présent dans le système d’exploitation... éliminant ainsi la nécessité de
rechercher le site du fabriquant pour trouver ce pilote ;
 Obtenir le code source de pratiquement n’importe quoi, y compris celle du
noyau du système d’exploitation ou celle de la plupart de mes applications.
 Disposer réellement d’une plus grande autonomie avec sa batterie
d’ordinateur portable...
 Lancer un plus grand nombre d’applications sans pour autant monopoliser
toute la mémoire disponible ; une gestion de la mémoire virtuelle optimale qui
évite un trop grand nombre de ’swaps’ ;
 Compiler soi-même son noyau et/ou ses applications afin de tirer le
meilleur parti de son matériel ;

L'importance de la défragmentation Avant d'aller plus loin, il est très vivement conseillé
d'effectuer une défragmentation. C'est une opération qui consiste en gros à mieux
organiser les fichiers sur votre disque dur, à les rassembler pour éviter qu'ils ne soient
éparpillés. On ne dirait pas comme ça, mais vos fichiers sont parfois placés un peu
n'importe comment à la surface de votre disque dur ! Voici un petit schéma sur la figure
suivante pour bien comprendre dans quel état est votre disque.

3.6. QUELQUES NOTIONS CLES

Avant de pouvoir lancer le noyau linux et l’ensemble de ses services, il est


nécessaire d’aborder quelques notions clés qui permettront de comprendre
comment installer et faire démarrer le système d’exploitation Linux.

3.6.1. Le BIOS (Basic Input/Output System) et l’UEFI

[Link] BIOS en version classique

C’est un programme situé en mémoire morte au niveau de la carte mère qui s’exécute
dès que l’ordinateur est mis sous tension avec une séquence POST ’Power On Self
Test’. Il initialise le matériel présent sur l’ordinateur en effectuant des vérifications sur
celui-ci :

1. Contrôle le bus système,


2. Vérifie tous les connecteurs d’extension,
3. Vérifie la mémoire de la carte graphique et les signaux commandant
l’affichage,
4. Interroge le BIOS de la carte vidéo et ajouter son code de reconnaissance
et c’est à ce moment-là que l’affichage apparait à l’écran,
5. Teste la RAM en tentant une écriture sur chaque zone mémoire et tente de
lire ensuite pour les comparer à ce qu’il a écrit,
6. Vérifie si le clavier et la souris sont bien connectés,
7. Envoie des signaux à tous les périphériques de stockage (lecteur
disquette, cd, et DVD, USB . . .) pour définir quels sont les différents
lecteurs en sachant que tous les résultats sont comparés sur le CMOS, ce

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 20
qui permet au BIOS de savoir si la configuration matérielle a changé depuis le
dernier démarrage ou pas,
8. Amorce en mémoire le secteur d’amorce principal du disque dur, appelé
MBR.

Par cet utilitaire, il est possible de configurer différents composants matériels et l’ordre
de démarrage des périphériques par exemple...est donc accessible très souvent au
démarrage de l’ordinateur (en appuyant sur une touche du clavier comme la touche
SUPPRESSION ou F2, F10...). Le BIOS va surtout vérifier que la présence du premier
secteur du disque est ’bootable’ et que cela puisse faire démarrer le système
d’exploitation.

[Link] Version alternative du Bios, l’interface logicielle UEFI

Une interface logicielle située entre le micro-logiciel et le système d’exploitation,


apparue sur les ordinateurs depuis 2010 avec de nouvelles fonctionnalités :
adressage de la mémoire, l’amorçage par le réseau, la cryptographie des disques durs
et leur exploitation avec de nouvelles tables de partitions labellisées GPT pour les gros
volumes. C’est le boot EFI, ou plutôt la norme UEFI (Unified Extensible Firmware
Interface) adoptée par plusieurs grands constructeurs (HP, ASUS, APPLE, INTEL). Il
représente un logiciel intermédiaire entre le micro- logiciel (firmware) et le système
d’exploitation (OS) l’ordinateur.

 Un "boot manager" UEFI charge l’OS loader et les drivers indispensables


au démarrage.
 Les formats de tables de partition sont de type MBR, mais également GPT
(GUID Partition Table).
 La norme n’est plus basée sur un secteur de boot,
 Le GPT peut permettre 128 partitions principales sur un support disque de
capacité de grande taille (zettaoctet, milliard de téraoctets).
 Le GPT peut permettre de démarrer sur des disques de plus de 2
Téraoctets (To).
 Un boot sécurisé car cela utilise un mécanisme de vérification par
signatures numériques

3.6.2 Disque dur, partition et montage

Un disque dur (ou HDD, Hard Disk Drive) est un empilement de plateaux
métalliques et rigides en rotation sur un axe. C’est une mémoire de stockage de
grande capacité qui peut être lue ou écrite. Les couches des plateaux sont
recouvertes d’une couche magnétique sur laquelle les données sont stockées.

Des têtes de lecture/écriture écrivent les données en binaire (0 et 1) selon un flux


électrique ; ces données sont organisées en cercles concentriques appelés «
pistes » ; les pistes sont séparées en quartiers que l’on appelle secteurs,
contenant les données (au minimum 512 octets par secteur).

Les dernières technologies de disque dur sont dites ’SSD’ (Solid State Disk)
basées sur de la mémoire flash à la place des plateaux car encore plus fiables.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 21
Une partition est une partie du disque dur sur laquelle va s’installer un système
d’exploitation ou un système de fichiers. Un disque dur peut contenir une ou plusieurs
partitions qui peuvent être primaires (ou principales), logiques et/ou étendues. Plus
précisément, le disque dur peut contenir jusqu’à quatre partitions principales ou trois
partitions principales et une partition étendue. Le fait de partitionner le disque dur
consiste à aménager des zones distinctes et continues de cylindres. L’intérêt d’avoir
plusieurs partitions est triple : il s’agit de minimiser la fragmentation des données, de
mieux protéger les données et d’avoir plusieurs systèmes d’exploitation. Les
informations sur les partitions sont conservées dans une zone appelée table des
partitions ; on peut y trouver les adresses de début des partitions et leur taille.

Tous les systèmes UNIX/Linux ont besoin au minimum de deux partitions pour
fonctionner : la partition principale représentée par le slash ( / ) qui contient la racine du
système et la partition d’échange dédiée dit ’/swap’ ; cette dernière permet au noyau
linux de libérer de la place en y stockant des informations dessus.

Tous les systèmes Unix possèdent un point de montage, ’un répertoire’ par lequel il est
possible d’accéder à des données se trouvant sur une partition du disque dur ou alors
sur un périphérique comme le lecteur de DVD ou la clé USB. L’accès au système de
fichiers n’est possible que s’il est monté et alors les fichiers et répertoires font partie
intégrante de ce répertoire monté. Sous Linux, tout est fichier ou encore pour lire ou
écrire des données, il faut procéder au montage (sans oublier de démonter après). Les
distributions Linux ont comme point de montage par défaut le répertoire ’/mnt’ ou
’/media’ ; par exemple, pour une distribution Ubuntu c’est ’/media/cdrom’.

Tous les points de montage (partitions et périphériques) sont consignés dans un fichier
important sous ’/etc/fstab’ ; il contient toutes les partitions du disque, incluant le
système de fichier, qui vont être montées automatiquement au démarrage du
système ; celui-ci permet également de conserver toutes les options sur les
montages des partions et des périphériques ; chaque ligne de ce fichier représente une
partition ou un périphérique à monter automatiquement et comportant un numéro
d’identification unique (UUID : Universal Unique IDentifier).

Sous Windows, cette notion n’existe pas de cette façon car toute partition est
considérée comme un élément complètement indépendant avec sa propre
arborescence de fichiers et représenté avec des lettres C :, D :,....

3.6.3 En quoi consiste le MBR (Master Boot Record’ ou la zone d’amorce)

La table de partition principale est stockée dans le premier secteur du disque ou


premier secteur de démarrage. Il contient donc le programme de démarrage ou
d’amorçage ’bootloader’ en déterminant à partir de quelle partition le système
d’exploitation doit démarrer.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 22
1. Le MBR permet de trouver (ou d’identifier) la partition active du disque,
2. Le MBR va charger le secteur de boot correspondant et transférer ensuite
l’exécution à ce dernier.

Elle contient :

 440 octets de code de démarrage.


 4 octets contenant les informations du volume.
 2 octets non utilisés.
 64 octets contenant les tables de partition.
 2 octets qui servent à vérifier l’exactitude de la MBR.

Plus précisément, c’est un bloc de 512 octets (ou bytes) localisé physiquement sur le
premier secteur du disque (au secteur 1 du cylindre 0 et tête 0 (ou secteur 0 en
logique) ; un système Linux peut s’installer également sur une partition primaire
logique. La MBR contient donc la routine d’amorçage ou le ’bootloader’ présente
sur la partition active et le nombre magique sur les 2 derniers octets (0xAA55)
sert à vérifier si la MBR est correcte.

La MBR peut être éditée et même sauvegardée dans un fichier. Si votre disque dur est
représenté comme périphérique ’sda’, pour éditer la MBR, la commande ’sudo dd
if=/dev/sda count=1| hexdump -C’ ; pour sauvegarder la MBR sur une clé USB, la
commande ’sudo dd if=/dev/sda of=/media/sdb1/[Link] bs=446 count=1’.

Est-ce que votre disque dur est tatoué ? ce qui est contraire au code de la
consommation, la commande ’sudo dd if=/dev/sda count=63 | hexdump -C’.

Le tatouage d’un ordinateur est un dispositif technique imposé dans des


ordinateurs de certaines marques (DELL, MEDION...) et développé en accord entre
ces constructeurs et Microsoft ; il interdit à la version de Microsoft Windows R livrée
avec votre ordinateur d’être installée sur un autre ordinateur. Souvent cela se fait via le
disque dur mais cela peut se trouver également au niveau du BIOS ou d’autres
composants de l’ordinateur.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 23
3.6.4 En quoi consiste le chargeur d’amorçage ou bootloader

Le chargeur d’amorçage est un gestionnaire de démarrage pour les systèmes


d’exploitation (Windows, Linux, Mac...). C’est un programme de bas niveau chargé
de démarrer le noyau Linux juste après la phase du BIOS ; pour cela, il doit être capable
de retrouver sur le disque le noyau Linux à démarrer. Pour Windows, ce programme
est appelé NTLDR, mais après installation de GNU/Linux, c’est le programme GRUB
(Grand Unified Boot loader) qui a la main. Ce petit bout de logiciel qui se trouve sur la
MBR est représenté par une interface graphique au démarrage de l’ordinateur
permettant de choisir un système d’exploitation.

3.6.5 En quoi consiste le noyau linux et son lancement

Dans le cas de Linux, la présence à la racine d’un lien de ’vmlinuz’ vers


/boot/vmlinuz-2.6.32...ou -3.2.O (où 2.x.x, 3.x.x sont les versions du noyau), image
compressée du noyau dont le premier rôle, après création des tables et structures
nécessaires à son fonctionnement et montage de la partition contenant la racine du
système de fichier va lancer le programme ’/sbin/init’, père de tous les processus ou le
premier processus système qui lancera tous les autres processus.

Pour cela, une image d’un système minimal compressé est initialisé au démarrage du
système et chargé en mémoire ; c’est le système ’[Link] (INITial RamDisk) qui
contient des modules du noyau nécessaires au boot comme les modules de système
de fichiers (ext3, etc) et de matériel (contrôleur ide, sata). A ce stade,le noyau est
chargé en mémoire et exécuté. Après quelques opérations d’initialisation sur le
matériel (pilotes) et lui-même, le noyau monte la partition correspondant à la racine du
système de fichiers.

Puis il exécute un programme appelé ’init’ (ou /sbin/init) qui est chargé de
démarrer complètement le système avec toutes les tâches se trouvant dans le
répertoire ’/etc/rcX.d’ ; le ’X’ correspond au niveau d’exécution de chaque tâche
système (niveau 2 ou 5). Chacune de ces tâches est ’un script’ qui se charge
d’effectuer une opération spécifique, comme par exemple de monter toutes les
partitions et tous les périphériques déclarés dans le fichier ’/etc/fstab’, ou alors de
démarrer des services comme l’interface graphique (KDE ou GNOME).

A l’origine, le programme ’init’ lit le fichier ’/etc/inittab’ afin de connaître les services ou
processus à lancer lors de chaque démarrage de l’ordinateur et donc du système
d’exploitation ; c’est ainsi que ce fichier ’inittab’ comporte les entrées nécessaires et qui
vont faire appel aux différents scripts.

Le fichier ’/etc/inittab’ définit le niveau de fonctionnement (runlevel) par défaut 2,


3 ou 5 en général. Le niveau 0 déclenche l’arrêt de la machine, 6 son
redémarrage, 1 le passage en mode mono-utilisateur appelé ’single user’ pour des
tâches de maintenance (réparation du système) et S ou s qui sont en fait le même
niveau et ne sont utilisés que dans la phase d’initialisation au démarrage. Les niveaux
2 à 5 sont des niveaux multi-utilisateurs qui en fonction des

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 24
distributions permettent d’activer on non un certain nombre de fonctionnalités. Par
exemple, la distribution GNU/Linux Ubuntu utilisent le niveau 3 qui active les
fonctionnalités réseau (serveurs) et le niveau 5 active le serveur graphique
(Xwindows).

Le format du fichier ’/etc/inittab’ est, id runlevels action commande id =


identificateur
runlevels = tous les niveaux pour lesquels l’action spécifiée doit être exécutée
action = les actions sont...
initdefault= défini le niveau de fonctionnement par défaut, aucune commande n’est
lancée
sysinit = commande lancée au moment du démarrage du système wait = la commande
est lancée (souvent un script) et init attend qu’elle se termine respawn = la commande
est relancée quand elle se termine (exemple la connexion depuis une terminal)
processus = la commande qui sera exécutée

Actuellement, les distributions Linux ont tendance à utiliser d’autres schémas plus
optimaux de démarrage de leur système. C’est ainsi que la distribution UBUNTU utilise
plutôt un script de type ’Upstart’ qui est un ’init’ sophistiqué ; les services sont démarrés
non plus de façon séquentielle et d’après une liste de scripts, mais plutôt en fonction de
la réception d’évènements.

L’outil ’upstart’ gère des scripts de niveau de démarrage et de façon plus optimale
car la méthode de démarrage devient plus dynamique basée sur des tâches et des
évènements ; c’est un ensemble de fichiers de configuration situés dans /etc/init ; et
donc l’évènement ’startup’ est généré par le processus init, qui entraîne d’autres
évènements. Le niveau par défaut de démarrage pour Ubuntu est le niveau 2 (dans le
fichier ’/etc/event.d/rc-default’) et la commande ’initctl list’ montre la liste des tâches en
fonctionnement ou en attente ; souvent il existe des alias des commandes ’initctl restart,
initctl reload, initctl status...’. Au final, le programme ’upstart’ (à la différence de ’inittab’)
agit sur une tâche bien précise dans un niveau d’exécution sans pour autant
changer tout le niveau ! En conséquence, le temps de démarrage est amélioré et les
services non utilisés ne sont pas démarrés.

Le processus ’init’ et ses scripts shell de service, inclus dans tous les systèmes Unix et
Linux dans l’arborescence au niveau ’/etc/init.d/scriptXXX’ permettent des actions
d’arrêt et de démarrage avec les paramètres ’stop’/’start’ ; et leur lancement se fait par
’/etc/rcX.d/’. Si ’upstart’ reste l’alternative à ce processus ’init’, une nouvelle architecture
de processus existe de plus en plus au sein des distributions Linux (Fedora, Mandriva,
OpenSuse, RedHat et bientôt Debian), c’est ’systemd’. Cette nouvelle technologie va
gérer et contrôler les processus (PID) pères et fils et les logs en jouant le rôle de
coordonnateur et d’arbitre afin d’améliorer les performances de démarrage des
systèmes Linux. Les services deviennent dépendants et inter-dépendants car
’systemd’ sera capable par

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 25
anticipation de lancer en parallèle ces services et donc des différents processus. Et un
socket Unix sera créé pour chacun des services à démarrer.

Systemd se caractérise par des objets de type unités comportant un état (active,
inactive, failed) prédéfinis et équivalents aux valeurs des champs des lignes du fichier
’/etc/inittab’. La commande centrale pour gérer toutes les actions est ’systemctl’ en
remplacement des commandes ’chkconfig’, ’service’,

3.6.6. Initialisation du système sous Linux

4. Processus de démarrage

Le premier secteur d’un disque dur porte le nom de MBR (Master Boot Record).
Une fois donné le contrôle par le BIOS, le programme contenu dans ce secteur :

 Lit la table des partitions,


 Contrôle la partition indiquée comme active,
 Lit le premier secteur de celle-ci nommé secteur de boot.

Le deuxième programme contenu dans le secteur de boot :

 Lit la première partie du système d’exploitation trouvé,


 Lance ce système d’exploitation.

L’ensemble de ces deux programmes constitue le chargeur de démarrage. Sous


Ubuntu deux sont proposés : GRUB ( GRand Unified Bootloader ) celui installé par
défaut et LILO (LInux LOader ) plus classique et maintenant aussi performant que
GRUB depuis les versions permettant l’adressage au-delà des premiers 1024
cylindres du disque pour le noyau. Les deux programmes forment un tout mais
peuvent être dissociés c’est-à-dire n’être présents que dans un des deux.

Exemple :

La partie GRUB contenue dans le MBR peut lancer un autre système d’exploitation
comme Windows (cf. le chapitre sur l’installation de Ubuntu en dual boot ou double
démarrage).

Ubuntu utilise le mécanisme initrd ( INITial Ram Disk ) qui contient un système de
fichiers et le monte en mémoire (/dev/ram0) afin de charger des modules pour le noyau.
Cette démarche rend plus polyvalent et adaptatif le démarrage du système à la
différence des noyaux de type UNIX préférant une approche statique (le noyau est alors
plus gros). Ensuite, le système de fichiers du disque est monté avec en suivant la
libération de la RAM et l’exécution de la commande init, père de tous les autres
processus.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 26
1. Chargeurs de démarrage

GRUB

GRUB est un projet GNU en version 0.97 sur Ubuntu. Une fois installé, les
composants se trouvent dans le répertoire /etc/grub :

 stage1 et stage2, respectivement le premier programme (MBR) et le


deuxième (secteur de boot) du chargeur de démarrage.
 XXX_stage1_5 (e2fs_stage1_5, reiserfs_stage1_5, etc.) programme
intermédiaire (pont) entre stage1 et stage2 dépendant du système de
fichiers ; stage1_5 est appelé par stage1 et appelle stage2.
 installed-version, contenant le numéro de version.
 [Link], le fichier de configuration.
 default, à ne pas modifier car résultant de la commande grub-set-default et
définissant dans le fichier de configuration le système à charger après un laps de
temps prédéfini.

[Link]

LILO sous licence BSD, en version 1.22.8 se charge avec le paquet de même nom et à
besoin de la dépendance mbr (utilitaire pour démarrer un système à partir d’un disque).
Après installation, le système dispose des commandes :

 lilo_find_mbr : commande retournant l’UUID de la partition active (avec le


MBR), très utile pour identifier la bonne partition.
 liloconfig : le script de configuration aboutissant à la création du fichier
/etc/[Link].
 lilo : la commande installant le chargeur de démarrage.

Pour installer LILO à la place de GRUB sur Ubuntu, il faut choisir impérativement une
installation en mode expert.

Adresse du site Internet pour LILO : [Link]

Écran de démarrage LILO sur une Hardy Heron :

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 27
CHAPITRE III : LE SYSTEME D’EXPLOITATION LINUX UBUNTU

3.1. Classification de ubuntu

Ubuntu est un ancien mot africain qui signifie « Humanité » et qu’on prononce
’Ou-boun-tou’, est un système d’exploitation libre fondé sur Debian. Ubuntu
signifie également « Je suis ce que je suis grâce à ce que nous sommes tous ».
C’est un état d’esprit qui fait que c’est une distribution très populaire, assez
conviviale et la plus suivie par une grande communauté ; Ubuntu découlant du projet
(2004) de vulgarisation du projet GNU/Linux ; elle fonctionne avec une interface de type
’Gnome’ ou ’KDE’ ; Ubuntu, c’est sur une distribution Ubuntu basée sur un
environnement ou interface KDE avec un certain nombre de dépôts supplémentaires à
installer en plus de la distribution classique.

Par ailleurs, le logo de Ubuntu représente trois personnes se tiennent la main.

Mark Shuttleworth (homme d’affaires sud-africain) a créé la société ’Canonical


LTD.’ Et par la même occasion la première version de Ubuntu 4.10.

3.2. Le principe de sortie de Ubuntu

Ubuntu sort une nouvelle version à peu près tous les 6 mois car elle est basée sur
l’environnement GNOME (qui sort lui également une version tous les 6 mois). Et
entretemps, une version appelée L.T.S. (Long Time Support) sort tous les 2 ans dont
les mises à jour de sécurité sont possibles et assurées pendant 5 ans pour les versions
avec environnement de bureau. En général, deux versions de Ubuntu apparaissent à
peu près chaque année en avril et en octobre sous un nom de code d’un animal
accompagné d’un qualificatif commençant par la même lettre.
Ce support concerne les mises à jour normales et de sécurité. Une version
mineure aura, quant à elle, un support de 18 mois. Le numéro de sortie
correspond à une numérotation de la forme [Link] (année/mois) et les noms sont
choisis dans un bréviaire animalier délicieusement rétrograde (voulu par Mark
Shuttleworth) affublés d’un adjectif haut en couleur, tout en incrémentant la
première lettre suivant l’ordre alphabétique :
Historique des versions
Le tableau ci-dessous recense toutes les versions d'Ubuntu sorties depuis le 20
octobre 2004, date à laquelle a été publiée la toute première version finale de la
distribution. Les versions sont notées par ordre chronologique, de la plus ancienne
à la plus récente.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 28
 Les versions mises en gras sont des versions stables toujours soutenues
(qui ne sont pas arrivées en fin de vie) ;
 Les versions sans mise en forme sont des versions stables arrivées en fin de
vie, ne profitant plus d'aucun soutien technique – pensez à mettre à niveau
votre système !
 Les versions en italique sont des pré-versions, des versions annoncées et
toujours en développement ;
 Les versions soutenues à long terme, ayant le label LTS , sont précédées
d'un astérisque (*). Il est à noter que toutes les variantes ne participent pas
systématiquement au programme LTS.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 29
24

Versions d'Ubuntu activement soutenues

La liste suivante recense les versions soutenues à long terme d'Ubuntu, de la plus
ancienne à la plus récente. ( Rapporter un bogue ) Puisque ces dernières sont
maintenues sur une plus longue période et qu'elles profitent d'une attention
particulière à la stabilité, leur utilisation est recommandée pour une utilisation grand
public. Les versions intermédiaires, évoluant plus rapidement, s'adressent davantage à
des enthousiastes.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 30
3.3. Son installation

Les distributions de Ubuntu peuvent être installées selon trois méthodes :

 La première méthode consiste à installer Ubuntu sur une partie physique


du disque dur appelée partition, mais cela comporte des risques : perte de
données suite à une erreur d’installation en dualboot et réinstallation du système
Windows en plus.

 La deuxième méthode consiste à installer Ubuntu à partir du système


Windows déjà installé ; pour cela, il faut utiliser un programme d’installation
spécialement conçu pour Windows et téléchargeable à
l’adresse suivante : windows-installer. Cette méthode n’est pas optimale
et comporte des défauts : composants matériels pas toujours reconnus et
nécessite beaucoup de mémoire vive.

 La troisième méthode consiste également à installer Ubuntu à partir du


système Windows, mais en utilisant le programme VIRTUALBOX qui permet
de créer une machine virtuelle Ubuntu à part entière ; cette méthode a
l’avantage de garder le système windows intact en simulant un ordinateur sous
Ubuntu. Cette méthode sera installée à l’occasion d’un TP à partir d’une image
’.iso’ téléchargée sur internet via le programme de virtualisation (Virtualbox déjà
installé) ; son installation ne change en rien du support DVD ou CD-Rom.

Les dernières versions de Ubuntu ont un processus d’installation graphique


complètement repensé et facilité afin de permettre son installation en quelques étapes.

Ces nouvelles versions de Linux Ubuntu apportent de plus en plus :

 Un démarrage toujours plus rapide (en moins de 20 secondes...) ;


 Une meilleure compatibilité des matériels ;
 Une véritable identité visuelle avec des nouveaux thèmes graphiques
apportant légèreté et transparence ;
 Un service ’Ubuntu One’ avec des outils intégrés pour le stockage des
données et la musique en ligne ;
 Une interface ’UNITY’ tentant de remplacer l’interface GNOME! ;
 Un noyau Linux [Link] lien sur le noyau linux et des pilotes de carte
graphique et d’autres périphériques mieux gérés ;
 Un système de fichiers amélioré en EXT4 mais également du BTRFS... ;
 Mais il est toujours possible d’avoir les deux environnements graphiques
toujours présents : GNOME classic, KDE.

En plus des deux variantes officielles (Ubnutu basée sur Gnome et Kubuntu baseé sur
KDE) soutenues par Canonical et la communauté Ubuntu (Ubuntu en mode Desktop et
en mode Server), il est possible de trouver d’autres variantes reconnues de
Ubuntu : Edubuntu, Xubuntu, Lubuntu... Ces variantes sont

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 31
destinées à un usage particulier (domestique, adaptée à un serveur, pour le
multimédia...) ou uniquement pour inclure une sélection différente de logiciels et
d’environnement graphique par défaut (Xubuntu ou Lubuntu).

3.5. L’ENVIRONNEMENT GRAPHIQUE GNOME

3.5.1. L’interface homme-machine (IHM)

L’interface homme-machine ( IHM) permet à un utilisateur de dialoguer avec la


machine. On distingue deux types d’IHM :

 GUI (Graphical User Interface ) ou « interface utilisateur graphique » : les


parties les plus typiques de ce type d’environnement sont le pointeur de souris,
les fenêtres, le bureau, les icônes, les boutons, les menus, les barres de
défilement, ... Les systèmes d’exploitation grand public (Windows, MacOS,
GNU/Linux, etc.) sont pourvus d’une interface graphique qui, dans un
soucis d’ergonomie, se veut conviviale, simple d’utilisation et accessible au
plus grand nombre pour l’usage d’un ordinateur personnel.
 CLI (Command Line Interface ) ou « interface en ligne de commande » est
encore utilisée en raison de sa puissance, de sa grande rapidité, son
uniformité, sa stabilité et du peu de ressources nécessaires à son
fonctionnement. Le système d’exploitation permet cette possibilité par
l’intermédiaire d’un interpréteur de commandes (le shell). Beaucoup de
serveurs ne s’administrent qu’en ligne de commande.

3.5.2. Manipulation des commandes

Une commande est une instruction qu'un utilisateur envoie au système


d'exploitation de son ordinateur pour lui faire exécuter une tâche. Il peut s'agir de
manipuler des fichiers, d'accéder à des répertoires, de modifier des droits d'accès,
etc. Elles constituent ainsi un outil extrêmement puissant, mais encore faut-il les
connaître et parfaitement comprendre leurs actions.

Ces commandes peuvent être déclenchées soit indirectement par le biais d'outils
graphiques (outils de l'environnement) soit directement par le biais de lignes de
commandes saisies sur un terminal ou une console dans un langage extrêmement
concis pour en simplifier la frappe, au risque de les faire apparaître comme
extrêmement mystérieuses aux néophytes ou même aux utilisateurs aguerris.

3.5.3. La console

La console, ou le shell, est un interpréteur de commandes, c'est une interface entre le


système d'exploitation et l'utilisateur. Il reçoit les commandes que l'on saisit et les
exécute (si on a les droits nécessaires). Car, lorsqu'on ouvre une session sur le
système, avec son nom d'utilisateur (login) et son mot de passe, le shell, avant de se
lancer, vérifie si le compte est valide, puis charge notre environnement personnel
(qui est configuré dans /etc/bashrc et dans le répertoire /home de l'utilisateur). Ce
shell est accessible via un terminal virtuel

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 32
INITIATION A GNU/Linux AVEC LINUX UBUNTU

27
(une console). Sous les systèmes GNU/Linux, le shell par défaut est souvent le shell
Bash, Bourne-Again shell, développé par le projet GNU, dérivé des premiers shell
Unix. Mais il en existe d'autres, tel sh, csh (C shell, qui reprend la syntaxe du langage
C), ksh (Korn shell)...

Pour connaître votre Shell, tapez :


echo $SHELL

Ce qui commence par un $ indique qu'il s'agit d'une variable, et echo demande de
l'afficher. Une commande shell se présente ainsi : commande -option(s)
paramètres (optionnel)

3.5.5. Conventions

Tous les exemples d’exécution des commandes sont précédés d’une invite
utilisateur ou prompt spécifique au niveau des droits utilisateurs nécessaires sur
le système :

 Toute commande précédée de l’invite $ ne nécessite aucun privilège


particulier et peut être utilisée au niveau utilisateur simple ;
 Toute commande précédée de l’invite # nécessite les privilèges du super-
utilisateur (root).

Évidemment, il ne faudra jamais taper l’invite ($ ou #) lorsque vous testerez par


vous-même les commandes indiquées.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 33
Une fois l’ordinateur démarré, le service GDM affiche le login graphique. Et alors après
la saisie de login et de mot de passe, s’affiche un vaste environnement de bureau avec
la barre UNITY.

Entrées et sorties standards

Dans un programme ou une commande s’effectuant dans un shell, on parle


d’entrées et de sorties. L’entrée est le clavier, par défaut, puisque c’est lui qui envoie les
informations à traiter. L’entrée standard se nomme stdin. Pour la sortie d’un
programme, il en existe en fait 2. La sortie standard, qui s’affiche à l’écran, donne le
résultat du programme, c’est stdout. Mais il existe aussi la sortie d’erreur qui elle,
ne s’affiche pas par défaut à l’écran. Elle donne des informations sur le déroulement du
programme ou de la commande et se nomme stderr.

Bien sûr, dans le Shell, on peut rediriger le résultat des commandes vers d’autres
commandes. On utilise pour cela des redirections, notées < et >. Elles permettent de
rediriger le résultat d’une commande vers une autre commande ou vers un fichier. La
redirection d’entrée permet d’utiliser un fichier, et non pas l’entrée standard, comme
base de son action. Le | (pipe) permet lui d’envoyer la sortie
d’une commande en entrée d’une autre.

3.6.1. Structure d’une commande

Une commande Unix est un ensemble de mots séparés par des espaces. Les
caractères espace et tabulation sont interprétés comme des séparateurs par le
shell (voir la variable IFS). La syntaxe d’une commande est la suivante :

$ commande [options] <parametres>

Le premier mot est le nom de la commande. Les autres mots sont des paramètres (ou
arguments) de la commande. Certains mots sont des options qui changent le
comportement de la commande. Les 2 crochets « [ » et « ] » indiquent que les options
ne sont pas obligatoires. Il ne faut pas taper ces crochets sur la ligne de commande.

Avant, une option était introduite par le signe « - » suivi d’une seule lettre. Le standard
actuel GNU pour les options est d’utiliser « -- » suivi du nom de l’option pour des raisons
de clarté et de portabilité.

L’ordre des options n’a pas souvent d’importance :

$ ls --all -l --si ou $ ls -l --si --all


$ ls -l $HOME/tmp

3.6.2. Différents types de commande

Il existe plusieurs types de commandes :

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 34
 Les commandes internes (au shell) : comme history, test, ...
 Les commandes externes (donc des programmes) : comme ls, mkdir, ...
 Les alias (voir plus loin) : comme ll, ...

Les commandes externes (donc des exécutables) sont généralement stockées dans un
répertoire de nom bin. Il existe des exécutables dans :

 Le répertoire /sbin : les commandes pour root (l’administrateur)


 Le répertoire /bin : des commandes et des shells
 Le répertoire /usr/bin : le répertoire de base des programmes

Remarque : comme le système ne connaît pas les endroits où vous placez vos
programmes, il faudra lui indiquer dans la variable d’environnement $PATH.

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ type echo
echo est une primitive du shell
$ type strings
strings est /usr/bin/strings

3.6.3. Chemin d’accès

Le chemin d’accès d’un fichier ou d’un répertoire est une chaîne de caractères
décrivant la position de ce fichier ou répertoire dans le système de fichiers. Chemins
d’accès selon le système d’exploitation :

On distingue deux types de chemins d’accès :

 Le chemin absolu dont la référence est la racine. Sous UNIX/Linux, un


chemin absolu commence toujours par /.
 Le chemin relatif dont la référence est le répertoire courant (.), le
répertoire parent (..) ou le répertoire personnel (˜).

6.6.4. La ligne de commande et le prompt

La ligne de commande est donc une l’interface utilisateur (ou un langage) avec une
syntaxe particulière et un prompt nécessitant un certain apprentissage. Cette interface
est personnalisable, tout comme l’environnement KDE, afin de la rendre proche des
besoins d’utilisation. L’interface est également automatisable car reposant sur un
langage qui permet de manipuler à outrance le système et de réaliser des programmes
dits scripts shell. Sa légèreté fait qu’elle ne nécessite aucune ressource mémoire ou
processeur, contrairement à l’environnement KDE ou GNOME.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 35
Cette interface de base est accessible par un émulateur de terminal qui est un
programme spécifique ’getty’ ; c’est en fait un écran/clavier virtuel avec 6 entrées dans
une partie de l’arborescence ’/dev/tty1 à tty6’ ; ces terminaux sont accessibles par
la séquence des touches CTRL + ALT + F1 à F6. L’accès dans l’environnement KDE ou
GNOME se fait par ailleurs par application graphique émulant un terminal ; pour cela,
soit il s’agit de lancer une fenêtre XTERM, ou alors ’Gnome-terminal’ pour GNOME
ou encore ’Konsole’ par le menu K/Applications/Système/Konsole’. (programme
yakuake)

Par exemple, si l’utilisateur ’formation’ (ou etudiant) a ouvert une session de


travail sur l’ordinateur 320B-03, alors le prompt sera :

formation@320B-03 :signedollar, etudiant@320B-03 :signedollar (et le shell attend


donc une commande...)
3.6.5. Type et format de commande

Une commande est un programme qui sera appelé à être exécuter via un
interpréteur de commandes qui est le shell. Celui-ci va réagir en fonction des
commandes qui seront saisies et ce sont les possibilités du système d’exploitation qui
vont permettre d’exécuter telle ou telle commande.

Pour cela, il existe plusieurs types de commandes : celles internes au shell


(fonctions intégrées au noyau Linux) qui sont exécutées directement, comme par
exemple les commandes ’ls -l’ ou ’cd’ ; puis celles qui sont des programmes
exécutables (ou binaires) faisant partie de l’arborescence du système et enfin des alias
qui sont des commandes de type pointeur ou raccourci. Ainsi les commandes
’alias=...’ ou ’ln -s chemin nonraccourci’ définissent des raccourcis sur des fichiers ou
des commandes.

Dans le cas, où la commande XX n’est pas trouvée ni par le noyau et ni au sein de


l’arborescence du sytème, alors un message appraît comme suit :

bash :XX :command not found

Sous Linux il existe deux mécanismes particulièrement intéressant pour l’utilisateur


: la complétion et l’historique des commandes.
La plupart des commandes Unix/Linux disposent de nombreuses options qu’il est
possible de juxtaposer derrière la commande elle-même ; il existe un certain
nombre de commandes Shell qui peuvent être très utiles ; leur syntaxe est :

nomcommande [-options] [-options] [argument 1] [argument 2] ... (en sachant que ce


qui est entre crochets est facultatif et tout est séparé par un blanc ou un espace).
[Link].Majuscules/Minuscules

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 36
Un message d’erreur peut provenir du fait que la commande respecte une
certaine casse avec des majuscules et des minuscules. Le système Linux (comme tout
Unix) attend une certaine exactitude car il respecte la casse.

[Link].Caractères sépciaux

La distribution Linux est facile à utiliser de par la gestion des majuscules


accentuées et caractères spéciaux ; il est nullement besoin d’utiliser la
combinaison de touches ALT+XXX, mais plutôt touche ’CAPSLOCK’ ou ’ALTGR’ ou
’SHIFT’ ; par exemple : pour avoir le caractère ’«’ il faut utiliser la combinaison
’ALTGR+w’. Une commande peut être saisie dans le shell avec une sélection
spécifique et donc, avec des caractères spéciaux ; comme par exemple : la
commande ’ls -l Doc*’ affiche toute la liste des fichiers et répertoires commençant par
’Doc’ ; ou encore la commande ’ls /var/log/*.log’ qui affiche tous les fichiers ’.log’ du
répertoire. Ainsi le caractère étoile ’*’ remplace une suite de caractère quelconque, le
caractère point d’interrogation ’ ?’ Remplace le caractère en question.

Etant donné que l’ordinateur ne comprend le texte en lui-même, alors chaque caractère
est représenté par un nombre. Traditionnellement, chaque jeu de nombres est
utilisé pour représenter un alphabet et des caractères appelé un système de codage ou
d’encodage des caractères. Le jeu de caractères le plus commun, ou du moins le plus
universellement accepté, est l’ASCII (American Standard Code for Information
Interchange). Et afin d’éviter que chaque pays standardise son propre codage (comme
en europe occidentale avec la norme ISO-8850-15 ou Latin9, ISO-8859-1 ou Latin1),
en 1991 une table Unicode (UTF) mondiale fut normalisée pour être ensuite
transformée dans la version normalisée UTF-8. Et c’est bien ce dernier jeu de
caractères qui est supporté par tous les navigateurs internet la plupart des systèmes
d’exploitation Linux (et Windows) y compris les programmes de bases de données.

[Link].Répertoire d’accueil et variable ’HOME’

Le répertoire courant de l’utilisateur est ’/home/nomutilisateur’ ; c’est à partir de cet


endroit qu’il a les pleins pouvoirs et qu’il peut organiser ses documents, mais s’il se
déplace dans l’arborescence des répertoires, il peut revenir très rapidement dans
son ’home’ par la simple commande ’cd ’ (cd espace tilde). Lors de son déplacement,
un simple point ’.’ indique le répertoire lui-même et un double point ’..’ le répertoire
parent ou situé au-dessus.

Par ailleurs, deux fichiers importants sont présents dans le ’home’ de l’utilisateur :
’.bashrc’ est le script d’exécution des commandes avant la session et le ’.profile’ qui est
le script de positionnement de l’environnement de l’utilisateur ; et c’est ce dernier qui
lance le fichier ’.bashrc’. Ces fichiers sont modifiables afin d’aménager la session
avec les commandes dans le shell. Ainsi, la commande ’echo ”dollarUSER” ’ renvoie
le nom d’utilisateur ; la commande ’echo ”dollarHOME” ’ renvoie le répertoire
d’accueil de l’utilisateur.
[Link]. Redirections et tubes

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 37
Lors d’une session de travail, l’utilisateur effectue un ensemble d’actions
(exécution de commandes dans le shell, impression de documents...) qui sont des flux
ou des redirections. C’est ainsi que cela commence par une entrée qui est le clavier et
une sortie (résultat attendu) vers l’écran ou une imprimante.

Il est possible de rencontrer sur un système d’exploitation plusieurs types de


redirections : des fichiers qui enregistent des messages d’erreurs, un périphérique
comme une imprimante et des tubes qui redirigent la sortie des commandes vers
d’autres commandes. C’est alors qu’on utilise le caractère ’>’ pour rediriger le résultat
d’une commande vers un fichier, le caractère ’»’ pour rediriger ou ajouter le contenu à la
suite d’un fichier existant ; per exemple : la commande ’ls /home/Documents >
[Link]’ redirige la liste des répertoires se trouvant sous
’/home/Documents’.

Le tube qui est représenté par un tiret vertical ’|’ relie une sortie de commande vers
l’entrée d’une autre commande ; par exemple, la commande ’lspci | grep Intel’ affiche le
détail d’un périphérique Intel s’est trouvé.

[Link].Commandes de déplacement

Pour se déplacer dans l’arborescence du système, plusieurs commandes sont utilisées


:

 La commande ’pwd’ (print working directory) afin de savoir où est-ce que


l’utilisateurn se situe ? ;
 La commande ’cd’ (change directory) pour se déplacer dans un dossier de
façon absolue ou relative ;
 La commande ’ls’ (list segments) pour lister le contenu d’un dossier
(fichiers et sous-dossiers).

[Link].Expressions régulières

Ce sont des motifs constitués d’un seul ou d’un groupe de caractères permettant de
désigner tout un ensemble de possibilités de complétion. Elles sont donc utilisées par
de nombreuses commandes Linux car elles facilitent souvent les opérations sur les
fichiers...

Il y a deux sortes d’expressions régulières : les basiques et les étendues.


Cependant, il y a des caractères communs aux deux sortes :

 Le caractère ˆ qui représente le début de la ligne ;


 Le caractère $ qui représente la fin de la ligne ;
 Le caractère * qui représente 0,1 à n fois le caractère qui précède ;
 Le caractère () qui représente un groupement d’expressions ;
 Le caractère . (point) qui représente un seul et unique caractère
quelconque ;

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 38
33
 Le caractère [liste_de_caractères] qui représente l’un des caractères
compris dans les crochets ;
 Le caractère [ˆ liste_de_caractères] qui représente un caractère différent
de ceux qui sont compris dans les crochets.

Exemple d’utilisation :

 Pour rechercher toutes lignes commençant par la lettre R, on aura la


commande linux suivante : grep -E ’ˆ R’ Monfichier ;
 Pour rechercher les lignes comportant un terme exact, on aura la
commande : grep -E ’expression réguière’ Monfichier ;
 Pour renvoyer toutes les lignes qui contiennent un caractère alphabétique
compris entre a et z ou entre A et Z, on aura la commande : grep -E [a-zA-Z]
˜.bashrc ;

On utilise soit la commande ’grep’ ou ’grep -E’ ou ’egrep’ ; ’grep’ signifie ’Global Regular
Expression Print’ et utilise les expressions régulières pour effectuer des recherches et
permet de : rechercher une chaîne de caractères dans des fichiers, de filtrer.. .

1.7.6. Démons et processus

Le système Linux démarre et charge le noyau et le programme ’init’. Ce


programme est le père de tous les autres programmes et donc des processus lancés.
La plupart du temps, le système Linux alloue le processeur à un programme
pendant un quantum de temps très court, puis le fait passer à un autre et ... ; le fait que
le délai de temps alloué à chaque programme soit très court alors donne l’impression
que tout fonctionne en même temps ! L’état des processus endormis est préservé
pendant que le processus actif s’exécute.

Un processus est donc l’exécution d’un programme à un moment donné ou son état en
cours d’exécution ; il est représenté par un identifiant appelé PID (Process IDentifier).
Un processus ou un programme qui dispose de sa propre zone mémoire et ses
propres variables est dit lourd.
Par exemple, le programme OpenOffice lance un processus qui lui est propre ; mais, il
qu’un programme, processus père, lance d’autres processus appelé fils, c’est le cas de
’init’. Pour cela, si l’utilisateur lance la commande ’pstree’, il peut voir les processus
sous forme d’arborescence et donc voir leurs inter- dépendances.

La commande ’top’ permet d’afficher des informations en continu et en temps réel sur
l’activité du système ; elle permet surtout de suivre les ressources que les processus
utilisent (quantité de RAM, pourcentage de CPU, la durée de ce processus depuis
son démarrage).

La commande ’ps’ permet de connaître tous les processus actifs du système à un


moment donné (ou à un instant t) et de procéder à une certaine surveillance ; la
commande ’ps aux|grep office’ (utilisé avec un tube) permet de rechercher le

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 39
processus associé au programme ’Openoffice writer’. Cette surveillance peut se
faire aussi bien au sein d’un shell de commande qu’avec le moniteur graphique.

La commande ’ps -aux’ (avec les 3 options ’a’,’u’ et’x’) permet d’afficher (sur 11
colonnes) les processus de tous les utilisateurs, leurs noms, l’heure de lancement des
programmes et processus et également les processus en arrière-plan.

Par exemple, la commande ’ps -A u’ ramène comme informations : PID,


ressources CPU et mémoire et surtout le propriétaire.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 40
CHAPITRE IV : GESTION DE FICHIERS SOUS LINUX

4.1. Introduction

Un système de fichiers permet de gérer et d’organiser la façon dont sont


organisés les fichiers sur un disque dur. Il dispose d’une table de descripteur de fichiers
pour permettre au système d’y accéder. Il gère également l’accès à ceux- ci. Les
fichiers possèdent un inode contenant toutes les informations nécessaires à son
utilisation. Sous GNU/Linux, le système de fichiers utilisé par défaut est l’ext4. C’est un
système journalisé, possédant des fonctions de chiffrement, qui gère des
fichiers d’une taille maximale de 16 To et gère des noms de fichiers de 255 octets.

L'objectif du système de fichier est de permettre l'accès au contenu du fichier


(l'ouverture du fichier, sa recopie à un second emplacement ou sa suppression) à partir
de son chemin d'accès, formé d'un nom précédé d'une liste de répertoires
imbriqués.

4.2. Désignation des partitions sous Linux

Une partition permet de découper logiquement un disque dur afin d’y créer des
systèmes de fichiers pour installer un système d’exploitation.

Pour installer une distribution GNU/Linux, il faudra donc créer sur le disque dur des
partitions aux format ext4. On peut utiliser une seule partition pour tout le système mais
il est possible, et recommandé pour la sécurité, de faire plusieurs partitions. Le
répertoire home notamment peut être installé sur une partition à part.
De plus, le système a besoin d’un type de partition particulier pour fonctionner, la swap.
Celle-ci sert en fait de mémoire au système lorsqu’il fonctionne, c’est une partition
d’échange. Sa taille n’excède pas les 2 ou 3 Go.
Les disques durs sont nommés hda pour le premier, hdb et ainsi de suite. Les
différentes partitions sont ensuite numérotées : hdb2 serait donc la deuxième
partition du deuxième disque dur.

Le Master Boot Record (MBR) est situé dans les premiers secteurs du disque. Le mode de
partitionnement MBR est le mode historique des ordinateurs de type IBM PC-compatible et
le plus répandu. Dans ce modèle, une zone de 512 octets
appelée le Master Boot Record (MBR) est réservée en début de disque pour
contenir l'information relative à un maximum de 4 partitions. Le MBR est constitué de 2
parties :

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 41
 La table de partition ;
 Le programme d’amorçage qui charge le noyau du système d’exploitation.

Dans un disque dur, plusieurs types de partitions peuvent coexister. On peut


mentionner les partitions principales, étendues et logiques.

Les partitions principales :

 Sont au maximum de 4
 Accepte tout type de système de fichiers.

Les partitions étendues :

 Sont destinées à contenir des partitions logiques et non au système de


fichiers,
 Nécessitent au moins une partition principale.

Les partitions logiques :

Sont contenues dans une partition étendue,


Accepte tout type de systèmes de fichiers.

Sous Linux, le pointeur spécial /dev permet l’accès aux disques. Pour dénommer
les disques, un format est adopté : /dev/XXYZ

 XX désigne le type de bus :

 hd pour les périphériques de type IDE


 sd pour les périphériques de type SATA

 Y désigne la lettre de périphérique :

 "a" pour le maître de la nappe IDE primaire


 "b" pour l'esclave de la nappe IDE primaire
 "c" pour le maître de la nappe IDE secondaire
 "d" pour l'esclave de la nappe IDE secondaire
 Z désigne le numéro de la partition
Exemples :

 /dev/hda1 : partition 1 sur le 1er disque IDE


 /dev/sdb2 : partition 2 sur le 2ème disque SATA

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 42
4.3 Systèmes de fichiers

Les données sont normalement présentées à l'utilisateur et aux programmes selon une
organisation structurée, sous la forme de répertoires et de fichiers. Pour pouvoir
stocker ces données structurées sur un périphérique, il faut utiliser un format qui les
représente sous la forme d'une succession de blocs de données : c'est ce qu'on appelle
un système de fichiers.

On dit qu’un système de fichiers est journalisé s’il prévient les coupures lors de la
sauvegarde de fichiers sur disque. Au lieu d'écrire immédiatement sur le disque dur les
données à l'endroit exact où elles devraient être enregistrées, le système de fichiers
journalisé écrit les données dans une autre partie du disque dur et note les
changements nécessaires dans un journal, et ensuite, en arrière-plan, il repasse
chacune des entrées du journal et termine le travail commencé ; lorsque la tâche est
accomplie, il raye la tâche de la liste.

Sous Windows, les systèmes de fichiers disponibles sont :

 FAT : Développé par Microsoft, ce système de fichiers se rencontre moins


fréquemment aujourd'hui. Il reste néanmoins utilisé sur les disquettes 3½
formatées sous Windows et devrait être utilisé sous Linux si une disquette doit
aussi être lue sous Windows. Il est aussi utilisé par plusieurs
constructeurs comme système de fichiers pour cartes mémoires ( memory
sticks), car, bien documenté, ce système de fichiers reste le plus
universellement utilisé et accessible.
 FAT32 : Ce système de fichiers, aussi créé par Microsoft, est une évolution
de son prédécesseur. Depuis ses versions 2000 SP4 et XP, Windows ne peut
pas formater (ou bloque volontairement le formatage) une partition en
FAT32 d'une taille supérieure à 32 Go. Cette limitation ne s'applique pas sous
Linux, de même qu'avec des versions antérieures de Windows. Une partition
FAT32 d'une taille supérieure à 32 Go déjà formatée pourra être lue par
Windows, peu importe sa version.
 NTFS : Ce système de fichiers a aussi été développé par Microsoft, et il
reste très peu documenté. L'écriture depuis Linux sur ce système de
fichiers est stable à l'aide du pilote ntfs-3g.
 extFAt : Ce système de fichiers a aussi été développé par Microsoft.
L'écriture depuis Linux sur ce système de fichiers est stable à l'aide du
pilote exfat-fuse

Linux utilise également FAT, FAT32, NTFS et extFat ainsi que plusieurs autres
systèmes de fichiers, nous citons :

 ext2fs : Extended File System est le système de fichiers natif de Linux. Les
versions 1 et 2 de ce système ne disposent pas de la journalisation. Ext2 peut
tout de même s'avérer utile sur des disquettes 3½ et sur les autres périphériques
dont l'espace de stockage est restreint, car aucun espace ne doit être réservé à
un journal.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 43
 ext3fs : ext3 est essentiellement ext2 avec la gestion de la journalisation. Il
est possible de passer une partition formatée en ext2 vers le système de
fichiers ext3 (et vice versa) sans formatage.
 ext4fs : ext4 est considéré par ses propres concepteurs comme une
solution intermédiaire en attendant le vrai système de nouvelle génération que
sera Btrfs.
 ReiserFS : Développé par Hans Reiser et la société Namesys, ReiserFS est
reconnu particulièrement pour bien gérer les fichiers de moins de 4 ko. Un
avantage du ReiserFS, par rapport à ext3, est qu'il ne nécessite pas une
hiérarchisation aussi poussée: il s'avère intéressant pour le stockage de
plusieurs fichiers temporaires provenant d'Internet. Par contre, ReiserFS n'est
pas recommandé pour les ordinateurs portables, car le disque dur tourne en
permanence, ce qui consomme beaucoup d'énergie.
 JFS : Système alternatif porté par IBM, plus à l’aise dans la manipulation
des gros fichiers.
 XFS : Système alternatif porté par SGI ( Silicon Graphics Inc ) plutôt sur les
Unix (Irix). Performant en cas d’une grande arborescence de fichiers.

4.4 Arborescence

La grande majorité des systèmes GNU/Linux respecte la norme FHS (Filesystems


Hierarchy Standard) qui permet de décrire comment est organisée l’arborescence
des dossiers et ce qu’ils doivent contenir. Et comme sous GNU/Linux tout est
fichier, chacun des périphériques de votre ordinateur ainsi que tous fichiers sont
accessibles via cette arborescence, qui commence par la racine, notée /.

Une arborescence est une organisation logique de fichiers sur un ou plusieurs


systèmes de fichiers. Il s’agit d’une structure de données hiérarchique de type arbre. Le
système qui gère les fichiers sous Linux est un peu déroutant au début, surtout quand
on est habitué à celui de Windows. En effet, sous Windows, il y a en fait plusieurs
racines. C:\est la racine du disque dur, E:\est la racine de votre
lecteur CD (par exemple). Sous Linux, il n'y a qu'une et une seule racine : « / ».
Il n'y a pas de lettre de lecteur car justement, Linux ne donne pas de nom aux
lecteurs comme le fait Windows. Il dit juste « La racine, c'est / ». Au lieu de
séparer chaque disque dur, lecteur CD, lecteur de disquettes, lecteur de carte
mémoire… Linux place en gros tout au même endroit sous une seule racine.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 44
Voici comment se présente l’arborescence d’un système GNU/Linux :

 / du système de fichiers,

 etc : répertoire contenant les fichiers de configuration. Ce répertoire


contient des fichiers de données ainsi que des programmes réservés pour
la maintenance du système. Ces fichiers conditionnent notamment le
démarrage du système, les entrées en session, etc… Ce répertoire contient
notamment le fichier passwd qui est un fichier texte contenant la liste des
noms utilisateurs avec les mots de passe cryptés, leur identification (uid et gid),
leurs répertoires initiaux et leurs Shells. On y retrouve également le
fichier group qui est un fichier texte contenant la liste des groupes
d'utilisateurs, leurs identificateurs et les listes d'utilisateurs par groupe.
 bin : répertoire contenant les principales commandes disponibles pour les
utilisateurs ;
 boot : répertoire contenant les fichiers de démarrage du système contenant
le noyau ;
 home : répertoire contenant les répertoires personnels des utilisateurs.
Lorsque vous êtes connecté sous Unix, vous vous retrouvez chez vous à savoir
votre home directory qui a été assigné par l'administrateur système ( Ex :
/home/imene ). Tous les fichiers ou répertoires que vous allez créer, le seront
sous votre home directory.
 root : répertoire personnel du super-utilisateur ;
 usr : Ce répertoire est réservé pour l'utilisation du système. Il est
essentiellement utilisé comme répertoire racine pour de nombreux sous
répertoires, notamment pour représenter les répertoires personnels des
utilisateurs (home directories). Par exemple, l’administrateur du système
réservera le plus souvent pour un utilisateur nommé « imene » un
répertoire personnel /usr/imene. De plus, des sous répertoires additionnels
sont créés et réservés pour Unix. Ces sous répertoires sont généralement les
suivants :
 /usr/bin est un répertoire composé essentiellement de fichiers contenant le
code exécutable des principales commandes sous linux. Si un de ces
fichiers est supprimé ou change de nom, la commande correspondante ne sera
plus reconnue.
 /usr/lib est un répertoire qui comprend généralement des bibliothèques
ou fichiers de données supplémentaires à l'usage de linux.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 45
 var : répertoire contenant les journaux systèmes. Il contient une hiérarchie
de fichiers système qui évoluent durant le fonctionnement de la machine.
Ex : /var/spool/ est le répertoire contenant les files d'attente pour les sous-
systèmes du courrier, de l'impression,
 dev : point d’entrée vers les périphériques. Ce répertoire contient des
fichiers spéciaux qui assurent le contrôle des accès aux différents dispositifs
d'entrée/sortie. Ces fichiers sont indispensables et ne peuvent en aucun cas être
détruits sous peine de rendre impossible l'accès aux unités correspondantes. Il
est donc utilisé pour les périphériques, terminaux, etc. …
 proc : pseudo-système contenant des informations sur les processus en
exécution
Remarques:

Sous le système Linux, plusieurs symboles sont utilisés pour désigner les
répertoires. On cite pour cela :

 Le « . » : pour désigner le répertoire courant (la commande pwd affiche le


nom du répertoire courant)
 Le « .. » : pour désigner le répertoire parent courant (la commande cd ..
affiche le nom du répertoire parent)
 Le « ~ » : pour désigner le répertoire personnel de l’utilisateur (la
commande cd ~ affiche le nom du répertoire personnel)

4.5 Chemins relatifs et chemins absolus

Sous Linux le disque est organisé en une structure hiérarchique, c'est-à-dire en une
arborescence de répertoires. Chaque répertoire contient des noms de fichiers ou
de sous répertoires qui contiennent eux-mêmes des noms de fichiers et de sous
répertoires, etc. …

Pour retrouver un répertoire ou un fichier, il sera donc nécessaire d'énumérer la


séquence de répertoires à traverser pour aboutir au répertoire ou au fichier
souhaité. Cette séquence est appelée chemin d'accès ou "pathname".
Sous Linux, un chemin d'accès se compose d'une suite de mots séparés par des /. Il
faudra cependant faire la distinction entre les chemins d'accès absolus et relatifs.

 Chemin absolu : la référence absolue d'un objet (fichier ou répertoire) se


fait par la liste des répertoires traversés pour atteindre cet objet, en
commençant par la racine /. Ex: /home/imene/iset/cours référence le fichier
cours qui est sous le répertoire iset lui-même sous imene qui lui est sous la
racine ce qui est indiqué par le premier /.
 Chemin relatif : la référence relative d'un objet (fichier ou répertoire) se
fait par la liste des répertoires traversés pour atteindre cet objet,

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 46
relativement au répertoire courant de travail. Ex : TP/tp2.c indique qu'à partir du
répertoire de travail, on doit trouver un sous répertoire TP contenant le
fichier tp2.c

Tout chemin qui ne commence pas par un caractère / (slash) est interprété
comme un chemin relatif au répertoire courant. On peut ainsi accéder aux fichiers du
répertoire courant en donnant simplement leur nom.

4.6 Types de fichiers sous linux

Il existe deux grands types de fichiers sous Linux :

 Les fichiers classiques : ce sont les fichiers que nous connaissons, ça


comprend les fichiers texte (.txt,.doc,.odt…), les sons (.wav,.mp3,.ogg), mais
aussi les programmes. Bref, tout ça, ce sont des fichiers retrouvables dans
Windows ;
 Les fichiers spéciaux : certains autres fichiers sont spéciaux car ils
représentent quelque chose. Par exemple, le lecteur CD est un fichier
pour Linux. Là où Windows fait la distinction entre ce qui est un fichier et ce
qui ne l'est pas, Linux, lui, dit que tout est un fichier . C'est une conception
très différente, un peu déroutante comme je vous l'ai dit, mais pas de
panique, vous allez vous y faire.

4.7 Catégories de fichiers sous linux


Il existe 4 catégories de fichiers :

 Les fichiers normaux (-) : comme les fichiers textes, courrier, sources de
programmes(c, java…), scripts, configuration, exécutables, programmes
en code binaire.
 Les fichiers répertoires (directories en Anglais) (d) : ce sont des fichiers
conteneurs qui contiennent des références à d'autres fichiers. Ils permettent
d'organiser les fichiers par catégories.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 47
 Les fichiers spéciaux : situés sous /dev, ce sont les points d'accès préparés
par le système aux périphériques. Le montage va réaliser une
correspondance de ces fichiers spéciaux vers leur répertoire "point de montage".
Par exemple, le fichier /dev/hda permet l'accès et le chargement du 1er
disque IDE.
 Les fichiers liens symboliques (l) : ce sont des fichiers qui ne contiennent
qu'une référence (un pointeur) à un autre fichier. Cela permet d'utiliser un même
fichier sous plusieurs noms sans avoir à le dupliquer sur le disque.

4.8 Les I-nodes des fichiers

Un fichier possède plusieurs informations, telles que le nom, le contenu et


d’autres informations comme les permissions et les dates des dernières
modifications. Ces informations sont sauvegardées dans l’INODE du fichier (noeud
d’index) avec d’autres données. Un i-node est une structure de quelques dizaines
d’octets décrite dans /usr/include/sys/inode.h qui contient généralement les champs
suivants :

 le type du fichier (fichier ordinaire, spécial, répertoire,...).


 les droits d’accès.
 UID : le propriétaire du fichier.
 GID : le group à le quel il appartient le propriétaire.
 la date de dernière modification , la date du dernier accès , la date de
création.
 la taille du fichier en octets.
 le nombre de liens (un lien d'un fichier est un autre nom de ce fichier),
 les éléments d'identification du propriétaire et de son groupe,
 l'adresse physique d'implantation sur disque.

Remarques :

 Tout fichier possède son unique i-node.


 L'i-node contient la totalité des informations sur le fichier, sauf le nom.
 Les i-nodes sont tous de même taille.

4.9. Commandes shell de manipulations de fichiers

Une commande, dans le sens plus général, est un fichier exécutable.

 La commande pwd (print working directory)

Lorsqu'un utilisateur se connecte à une station Unix, il est placé dans un répertoire
personnel, en général situé dans le répertoire /home. La commande pwd affiche
le chemin d'accès au répertoire courant.

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 48
43
 La commande cd (change directory)

Cette commande permet de changer le répertoire courant. Sans argument cd


permet de se déplacer vers le répertoire de connexion. cd [chemin]

Exemples

cd ~ et cd ramènent dans le répertoire de connexion.


cd . : ne change pas le répertoire courant.
cd .. : permet de se déplacer vers le répertoire parent.
cd / : il permet de se déplacer vers la racine.

 La commande ls (list files)

ls [-options] chemin

Le chemin est un nom de fichier ou de répertoire. Si c’est un fichier, ls permet


d’afficher sa description. Si c’est un répertoire, elle affiche son contenu. Sans
arguments, le répertoire courant est traité. Les options de ls sont :

 -l : format long (types de fichier, droits, nombre de liens, propriétaire,


groupe, taille en octets, date de la dernière modification, nom du fichier).
 -a : liste tous les fichiers (y compris les fichiers qui commencent par le
point : fichiers cachés).
 -F : format court avec indication du type de fichier (ajoute * si exécutable, /
si répertoire).
 -i : affiche les numéros d’Inode des fichiers.
 -R : récursif, génère la liste de tout les fichiers du sous-arbre tout entier.
 -r : trie en ordre inverse.
 -d : si l’argument est un répertoire, la commande affiche son nom.

Remarque

Certains caractères, appelés méta caractères, sont interprétés spécialement par le


Shell avant de lancer la commande entrée par l’utilisateur.

Par exemple, si l’on entre ls *.c, le Shell remplace l’argument *.c par la liste des
fichiers du répertoire courant dont le nom se termine par .c.
Les métacaractères permettent donc de spécifier facilement des ensembles de fichiers,
sans avoir à rentrer tous leurs noms. Voici les plus utilisés :
 * remplacé par n’importe quelle suite de caractères.
 ? remplacé par un seul caractère quelconque.
 [ ] remplacé par l’un des caractères mentionnés entre les crochets. On peut
spécifier un intervalle avec - : [a-z] spécifie donc l’ensemble des lettres
minuscules.
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 49
 La commande cat

La commande cat affihe les fichiers l’un après l’autre sur la sortie standard
(écran). Si aucun argument n’est spécifié, lit sur l’entrée standard (clavier) jusqu’à
rencontrer un caractère fin de fichier CTRLD.

4.10 La commande more

La commande more [fichier...] permet d’afficher le contenu d’un fichier page à


page.

 La commande touch (créer des fichiers vides)

Créer les fichiers [Link] et [Link] sous votre répertoire de travail en utilisant la commande
suivante :

touch [Link] [Link]

Donner la commande qui permet de vérifier que les fichiers sont créés. Comment on
peut vérifier que les fichiers sont vides ?

 La commande file (type de fichier)

Il est possible sous Unix de connaître aussi le type de fichier sur lequel on
travaille. Tous les fichiers ont un entête permettant de déterminer leur type
(répertoire, exécutable, texte ASCII, programme C, document...). La commande
file permet de visualiser le type du fichier en question.

file nom_de_fichier
Exemple:

file toto.c
toto.c: c program text

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 50
 commande mv (move)

Cette commande permet de déplacer un fichier mv [–i] source destination


Si « destination » est un répertoire, la commande mv déplace le fichier de nom
source vers « destination ». Si « destination » est un nom de fichier, la commande
mv renomme le fichier de nom source.

L’option mv -i permet de demander confirmation en cas d’écrasement de la


destination.

 La commande ln (link)

Cette commande permet de créer des liens sur des fichiers. Les liens sont des fichiers
spéciaux permettant d'associer plusieurs noms (liens) à un seul et même fichier. Ce
dispositif permet d'avoir plusieurs instances d'un même fichier en plusieurs endroits
de l'arborescence sans nécessiter de copie, ce qui permet notamment d'assurer un
maximum de cohérence et d'économiser de l'espace disque. On distingue deux
types de liens :

 Les liens symboliques représentant des pointeurs virtuels (raccourcis)


vers des fichiers réels. En cas de suppression du lien symbolique le fichier
pointé n'est pas supprimé. Les liens symboliques sont créés à l'aide de la
commande ln -s selon la syntaxe suivante :

ln -s nom-du-fichier-reel nom-du-lien-symbolique

ln –s fichier1 /titi/lien
ls –i fichier1 /titi/lien

 6341 fichier1 4230 /work/liensym

ls -l /titi/lien

4230 l

Si on supprime le fichier de nom fichier1 : rm fichier1

Puis on fait ls -i fichier1 /titi/lien on aura :

fichier1 not found


4230 /titi/lien

Si on fait cat /titi/lien on aura :

cat : il n y a pas un fichier ou un répertoire de ce type.

 Les liens physiques (ou liens durs) représentent un nom alternatif pour un
fichier c’est la création de deux ou plusieurs noms vers une inode unique
au moyen de la commande ln. Ainsi, lorsqu'un fichier possède deux liens

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 51
physiques, la suppression de l'un ou l'autre de ces liens n'entraîne pas la
suppression du fichier. Plus exactement, tant qu'il subsiste au minimum un lien
physique, le fichier n'est pas effacé mais lorsque l'ensemble des liens physiques
d'un même fichier est supprimé, le fichier est aussi supprimé. Il faut noter
toutefois qu'il n'est possible de créer des liens physiques qu'au sein d'un seul et
même système de fichiers. Les liens physiques sont créés
à l'aide de la commande ln selon la syntaxe suivante :
ln nom-du-fichier-reel nom-du-lien-physique

Lors de la création d’un lien physique il n'y a ni copie du fichier, ni création d'un nouvel
i-node, mais simplement augmentation du compteur de référence du fichier dans
un répertoire.
ls -li fichier1
6341 -rw-rw-r-- 1 …………. fichier1
ln fichier1 /titi/liendur
$ls –li fichier1 /titi/ liendur
6341 -rw-rw-r-- 2 …………. fichier1
6341 -rw-rw-r-- 2 …………. /titi/ liendur

Les deux fichiers partent vers le même numéro d’index (numéro d’inode), ce qui veut
dire qu’il y a un seul espace disque associé aux deux noms.
Si on déplace le fihier1 :
mv fichier1 fichier2
puis on fait :
ls -li fichier2
on aura :
6341 -rw-rw-r-- 2 …………. fichier2
Si on supprime fichier2 :
rm fichier2
puis on fait :
ls -li fichier2 /titi/liendur
On aura :
fichier2 not found
6341 -rw-rw-r-- 1 …………. /titi/liendur

La commande cp

cp [-options] source destination

Si « destination » est un répertoire, la commande cp copie le ou les fichier(s) source


vers « destination ». Si « destination » est un nom de fichier, la commande
cp renomme le fichier de nom source.
Si on effectue une copie d'un fichier sur un fichier qui existe déjà, celui-ci sera
écrasé et remplacé par le nouveau fichier, certaines options de cp peuvent nous
éviter de pareilles situations. On site dans ce qui suit quelques options :

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 52
 cp -i : avertit l'utilisateur de l'existence d'un fichier du même nom et lui
demande s'il peut ou non remplacer son contenu.
 cp -b : permet également de s'assurer que la copie n'écrase pas un fichier
existant : le fichier écrasé est sauvegardé, seul le nom du fichier d'origine
est modifié et cp ajoute une tilde (~) à la fin du nom du fichier.
 cp -p : permet lors de la copie de préserver toutes les informations
concernant le fichier comme le propriétaire, le groupe, la date de création.
 cp -r : permet de copier de manière récursive un répertoire et ses sous-
répertoires.

 La commande rm (remove file)

La commande rm est utilisée pour supprimer un fichier : rm [-options] fichier(s)

Ses principales options sont :

 rm -i : permet de demander à l'utilisateur s'il souhaite vraiment supprimer


le ou les fichiers en question.
 rm -r : agit de façon récursive, c’est à dire détruit aussi les répertoires
(pleins ou vide) et leurs sous-répertoires.
 rm -f : permet de supprimer les fichiers protégés en écriture et répertoires
sans que le prompt demande une confirmation de suppression.
 La commande mkdir (make directory)

Cette commande permet de créer un répertoire mkdir [-options] répertoire


Le chemin peut être :

 Relatif (par exemple mkdir ../isc)


 Absolu (par exemple mkdir /home/francis/isc /cours)

Une option de mkdir qui est souvent utile est mkdir –p elle permet de créer une suite de
répertoires.

Exemple

mkdir –p cours/tp/algo

#crée le sous-répertoire rsi21 qui se trouve dans le sous-répertoire tp qui se trouve


dans le répertoire #cours.

 La commande rmdir (remove directory)

Cette commande permet de supprimer un répertoire vide rmdir [-options]


répertoire(s)
L’options -i permet de demander à l'utilisateur s'il souhaite vraiment supprimer le ou les
répertoires en question.

 Droits d’accès et la commande chmod

Parmi les informations contenues dans l’inode de tout élément de l’arborescence, on


trouve les droits d’accès. La protection d’un élément repose sur trois droits d’accès qui

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 53
contrôlent les trois opérations de lecture (droit r pour read), d’écriture (droit w pour
write) et d’exécution (droit x pour execute). Ces trois
droits (rwx) sont appliqués à trois catégories d’utilisateurs qui sont le propriétaire
(user : u) de l’élément, son groupe (group : g) et les autres utilisateurs (others : o).

La notion de groupe correspond simplement à un ensemble d’utilisateurs auxquels


on peut attribuer les mêmes droits d’accès aux fichiers. Ainsi, chaque utilisateur
appartient à un groupe et son identité qui sert pour les contrôles d’accès est
définie par un numéro d’utilisateur (UID : User IDentification) et un numéro de groupe
(GID : Group IDentification).

Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 54
Cours de Système d’exploitation, Deuxième licence I.G. Ass Ir HERITIER TSIMBA MANKUAMA Page 55

Vous aimerez peut-être aussi