Vous êtes sur la page 1sur 10

Systmes dexploitation - Linux

par B

1 Gnralits sur les systmes dexploitation


Dfinition 1. Un systme dexploitation est un programme assurant la gestion de lordinateur
et de ses priphriques.

1.1 Rle dun systme dexploitation

Abstraction de la machine : affranchir lutilisateur de la complexit de la machine


physique en en servant de couche dabstraction entre le matriel et les programmes et en
fournissant une interface homme-machine simplifie.

Gestion du processeur : le systme dexploitation est charg de grer lallocation du


processeur entre les diffrents programmes.

Gestion de la mmoire vive : le systme dexploitation est charg de grer lespace


mmoire allou chaque application.

Gestion des entres/sorties : le systme dexploitation permet dunifier et de contrler


laccs des programmes aux ressources matrielles.

Gestion de lexcution des applications : le systme dexploitation est charg de la


bonne excution des applications en leur affectant les ressources ncessaires leur bon
fonctionnement.

Gestion des droits : le systme dexploitation est charg de la scurit lie lexcution
des programmes en garantissant que les ressources ne sont utilises que par les programmes
et utilisateurs possdant les droits adquats.

Gestion des fichiers : le systme dexploitation gre la lecture et lcriture dans le systme
de fichiers et les droits daccs aux fichiers par les utilisateurs et les applications.

Gestion des informations : le systme dexploitation fournit un certain nombre dindicateurs permettant de diagnostiquer le bon fonctionnement de la machine.

1.2 Exigences
1.2.1 Pour lutilisateur

Grer les ressources dune manire efficace et transparente.

Partager les ressources quitablement entre les processus.

tre convivial par les applications quil offre.

1.2.2 Pour les programmeurs

Offrir une interface daccs simplifie aux ressources.

Offrir des environnement de programmation riches et simples.

1.3 Structure dun systme dexploitation

Serveurs systme : partie qui peut tre commute/dcharge temporairement.

Noyau (kernel) : partie fondamentale du systme dexploitation et qui rside constamment


en mmoire centrale. Il gre les ressources de lordinateur et permet aux diffrents composants matriels et logiciels de communiquer entre eux.
1

Section 1

Pilotes : modules spcialiss qui dialoguent avec les priphriques rels.

1.4 Quelques types de noyaux


1.4.1 Noyau minimal ( micro-noyau / client-serveur )
Il sagit ici de minimiser les fonctionnalits dpendantes du noyau en plaant la plus
grande partie des services du systme dexploitation lextrieur de ce noyau, cest--dire dans
lespace utilisateur. Ces fonctionnalits sont alors fournies par des serveurs systme
indpendants. Ceci permet une meilleure extensibilit et adaptabilit, ainsi quune meilleure
isolation des fautes.
1.4.2 Noyau maximal ( monolithique )
Dans ce type de noyaux, un maximum de programmes systmes est plac dans lespace
noyau. Ceci procure au systme dexploitation de meilleures performances, et permet de diminuer
les IPC ( Inter-Process Communication ).

1.5 Interfaces utilisateur


On distingue deux types dinterfaces utilisateur :

GUI (Graphical User Interface) : interface graphique de base pour la gestion et ladministration du systme, et lutilisation des applications utilitaires.

CLI (Command Line Interface) : interface en ligne de commande dans laquelle la communication avec le systme dexploitation seffectue en mode texte.

1.6 Processus
Un processus est un programme en cours dexcution.

1.7 Systmes de traitement par lots


Lors des premires machines, un seul utilisateur la fois chargeait un programme partir
de cartes perfores, attendait quil sexcute, puis surveillait limpression des rsultats avant de
pouvoir charger le programme suivant.
Un quipement trs cher est utilis inefficacement.
Lentre et la sortie des donnes prend du temps, et lordinateur tant quasiment inoccup
pendant ce temps-l, ses ressources sont gaspilles.
Solution : le traitement par lots, ie enchanement automatique de plusieurs programme; la
machine traite tous les programmes du lot un aprs lautre, et les sorties sont enregistres sur une
nouvelle bande magntique, afin quaucun programme ne puisse empcher lexcution du suivant
cause du temps dimpression. Limpression est ralise partir de la bande magntique une fois
que lexcution du lot est termine.

1.8 Systmes multi-tches ou multi-programmation


Un systme est multi-tche, ou multi-programmation, sil permet dexcuter, de faon apparemment simultane, plusieurs programmes informatiques. Cette fonctionnalit est indpendante
du nombre de processeurs prsents physiquement.

Utilisation de Linux

Une situation de concurrence survient lorsque plusieurs processus ont besoin du processeur.
Une solution cela est le scheduling , ou ordonnancement.
Il sagit ici dun faux multi-tche; en ralit le processeur nexcute un seul code la fois, et
ce que le systme dexploitation fait cest de basculer entre les tches ds quune tche attend une
opration dentre/sortie, et ce basculement est dautant plus bref quil nest pas perceptible par
lutilisateur, donnant ainsi lillusion du multi-tches.

1.9 Systmes multi-processeurs


Le multiprocessing est une technique consistant faire fonctionner plusieurs processeurs en
parallle afin dobtenir une puissance de calcul importante. Un systme multiprocesseur doit
donc tre capable de grer le partage de la mmoire entre plusieurs processeurs mais galement de
distribuer la charge de travail.
Ici, puisquil y a plusieurs processeurs, plusieurs tches peuvent tre excutes en mme temps
de manire rellement parallle.

1.10 Systmes multi-utilisateurs


Un systme multi-utilisateurs permet diffrentes personnes de travailler avec un ordinateur
en mme temps. Chaque utilisateur a limpression quil est seul, et une gestion des droits est requise.

1.11 Systmes temps rel


Les systmes temps rel (real time systems), essentiellement utiliss dans lindustrie, sont
des systmes dont lobjectif est de fonctionner dans un environnement contraint temporellement.
Un systme temps rel doit ainsi fonctionner de manire fiable selon des contraintes temporelles
spcifiques, cest--dire quil doit tre capable de dlivrer un traitement correct des informations
reues des intervalles de temps bien dfinis (rguliers ou non).

2 Utilisation de Linux
2.1 Dmarrage
Au dmarrage, les trois entits suivantes sont excutes dans lordre par le processeur :
1. Le BIOS : Analyse la configuration matrielle de lordinateur, charge et dmarre le chargeur
se trouvant dans le premier secteur de lunit damorage.
2. Chargeur (GRUB) : Situ dans le premier secteur de lunit de dmarrage, offre gnralement un menu prsentant les systmes amorables.
3. Systme : Invoqu par le chargeur, charge les drivers et modules utilises, vrifie les systmes de fichiers, dmarre les diffrents services, dmarre linterface graphique si sollicit.

2.2 Connexion
tape obligatoire dont le but est dauthentifier les utilisateurs par leurs noms de connexion
(username ou login) et leurs mots de passe (password ).
Ladministrateur a comme username : root.

Section 2

2.3 Gestion des paquets


Sous Fedora, le gestionnaire de paquets sappelle yum. Celui-ci peut tre utilis depuis la ligne
de commandes comme suit :

yum install p1 p2 p3 : installe les paquets p1, p2 et p3.

yum remove p1 p2 p3 : dsinstalle les paquets p1, p2 et p3.

yum update p1 p2 p3 : met jour p1, p2 et p3.

yum search mot_cle : cherche les paquets contenant mot_cle dans les dpts.

yum list all : liste les paquets disponibles dans les dpts.

yum info p1 p2 p3 : affiche les informations concernant les paquets p1, p2 et p3.

yum check-update : affiche la liste des mises jour disponibles.

yum repolist : liste des dpts disponibles.

yum clean all : vide les caches.

2.4 Hierarchie des rpertoires sous Linux

Figure 1. Hierarchie des rpertoires

/bin : excutables pour tous les utilisateurs (ls, cp, mv...).

/sbin : excutables pour administration (shutdown, ifconfig...).

/lib : contient les bibliothques partages.

/dev : contient des fichiers spciaux correspondant aux priphriques.

/etc : contient les fichiers et scripts de configuration.

/usr : contient les programmes, utilitaires et librairies non indispensables au fonctionnement


du systme.

/var : contient les donnes frquemment rcrites, comme les fichiers journaux (logfiles),
les fichiers de verouillage des ressources (lockfiles)...

/proc : pseudo-rpertoire dont les fichiers contiennent des informations sur ltat du systme et des processus en cours dexcution.

/boot : contient les fichiers utiles pour le chargeur, en particulier le chargeur lui-mme et
le noyau Linux.

/tmp : contient les fichiers temporaires.

/home : contient les espaces de travail privs des utilisateurs.

/mnt : contient des rpertoires utiliss comme points de montage des autres systmes de
fichiers.

Le Shell

/media : contient des rpertoires cres automatiquement pour monter les priphriques de
stockage amovibles.

/root : lespace de travail priv de ladministrateur (root).

/lost+found : cest l que sont dposs les fragments de fichiers perdus lorsquun disque
crashe pour une raison ou une autre.

2.5 Structure gnrique dun systme de fichiers

Figure 2. Structure gnrique dun systme de fichiers

3 Le Shell
Le shell , ou interprteur de commandes, est un programme qui lit chaque commande saisie par
lutilisateur (ou lue partir dun fichier), vrifie et traite la syntaxe pour lexcuter.
Lorsque le shell attend une commande de lutilisateur, il apparait en gnral sous la forme
suivante : utilisateur@machine:~$

utilisateur reprsente le nom de lutilisateur connect;

machine reprsente le nom de la machine sur laquelle lutilisateur est connect;

~ est un raccourci qui renvoi sur /home/utilisateur ;

$ signifie que lutilisateur connect nest pas un administrateur (sinon on aurait # la


place).

Il existe deux types de commandes :

Les commandes internes, aussi appeles primitives du shell : ce sont les commandes quexcute le shell lui-mme.

Les commandes externes : raliss par des programmes externes au shell que celui-ci cherche
et lance en leur passant les arguments sil y en a.

On peut excuter une commande en crivant le nom de celle-ci, suivi des options et enfin des
arguments : nom_commande -options arguments
Certaines commandes nont pas besoin doptions ou darguments pour fonctionner, dautres en
revance ncessitent la prsence de ceux-ci.

Section 3

Les options sont gnralement sous forme de caractres (a, b, ..., z, A, B, ..., Z) et doivent tre
prcds par un tiret - pour signaler la commande quil sagit doptions (-a, -b,...). Ces arguments
peuvent tre tous regroups aprs un seul tiret, par exemple ls -l -a peut tre rcrite ls -la .
Les manuels dutilisation des commandes sont accessibles via la commande man. Celle-ci a la
syntaxe : man [section] commande o :

[section] doit tre remplace par le numro de la section des manuels dans laquelle man
doit effectuer sa recherche. Ce paramtre est optionnel, do lemploi des crochets.

commande dsigne le nom de la commande dont on souhaite consulter le manuel.

Exemples : man ls, man 5 passwd ...


Les sections du manuels sont :

1 : commandes utilisateur;

2 : appels systme;

3 : fonctions de bibliothque;

4 : fichiers spciaux;

5 : formats de fichiers;

6 : jeux;

7 : divers;

8 : administration systme;

9 : fonctions du noyau;

0 : fichiers .h

3.1 Naviguer dans larborescence du systme de fichiers


Dans les systmes de la famille Unix, la racine reprsente le sommet de larborescence des
rpertoires. Elle est reprsente par le caractre / et signifie racine . Tous les repertoires du
systme sont lis cette racine de faon directe ou indirecte via des chemins. Il existe deux types
de chemins :
3.1.1 Le chemin absolu
Le chemin absolu reprsente larborescence complte pour accder un fichier ou rpertoire et commence par la racine. Par exemple, si un fichier fichier.txt se trouve dans
/home/utilisateur, alors le chemin absolu vers ce fichier est /home/utilisateur/fichier.txt.
3.1.2 Le chemin relatif
Le chemin relatif correspond laccs un fichier dans larborescence rapport au rpertoire
courant du shell. On utilise les notations . et .. pour dsigner respectivement le rpertoire courant
et le rpertoire parent. Ainsi, en reprenant lexemple prcdent, si on suppose que le shell est
actuellement dans le rpertoire /home/utilisateur/Documents, alors un chemin relatif vers le
fichier fichier.txt est ../fichier.txt .
~ dsigne le rpertoire daccueil (/home/utilisateur o utilisateur dsigne le nom de lutilisateur).

3.2 Caractres spciaux

Le Shell

Ces caractres servent gnerer les noms de fichiers ou de rpertoires

? : remplace un caractre quelconque;

* : remplace une chane de caractres quelconque (y compris une chane vide);

[...] : remplace les caractres entre crochets, dfinis par numration ou par intervalles.
Exemple : [axy] remplace le caractre a, x ou y. [a-z] et [0-9] remplacent respectivement
tout caractre se trouvant dans lintervalle a,...,z et tout chiffre se trouvant dans lintervalle
[0; 9]. Pour remplacer un caractre nappartenant pas lnumration ou lintervalle, il suffit
de commencer par le caractre ^ aprs [. Par exemple [^axy] remplace les caractres qui
ne sont ni a, ni x, ni y.

3.3 Commandes courantes

pwd : affiche le nom du rpertoire courant.

cd : change de rpertoire courant. cd chemin_vers_repertoire va vers


chemin_vers_repertoire et celui-ci devient le rpertoire courant. Exemple : cd /usr/bin
dfini comme rpertoire courant le rpertoire bin de chemin absolu /usr/bin . Quand
cd .. celle-ci permettra de remonter vers le rpertoire parent du rpertoire courant.

ls : affiche le contenu des rpertoires passs en argument, parmi ses options on peut trouver :

-l : affiche les attributs de chaque entre;

-a : affiche aussi les entres caches;

-t : trie la liste selon la date;

-S : trie la liste selon la taille;

-d : affiche les rpertoires avec la mme prsentation que les fichier, ie sans lister leur
contenu.

lorsquaucun argument nest pass, le contenu du rpertoire courant est affich.

mv [-options] sources destination : dplace le fichier ou rpertoire source vers le


rpertoire destination. On peut avoir mv fichier_source fichier_destination et
dans ce cas mv renomme fichier_source en fichier_destination . Les options sont :

-v : affiche des messages dinformation;

-i : une confirmation est requise sil y a risque dcraser un fichier;

-f : aucune confirmation ne sera exige.

Exemple : mv fichier.c fichier_bis.c (renomme fichier.c en fichier_bis.c).


mv *.c ../Travail (dplace tous les fichiers se terminant par .c vers le rpertoire
Travail du rpertoire parent).

cp [-options] sources destination : copie les fichiers sources dans le rpertoire


destination. On peut avoir cp fichier_source fichier_destination et dans ce cas
cp cre une copie du fichier sous le nom fichier_destination. On peut aussi copier
un rpertoire en le spcifiant dans sources et loption -R sera alors requise. Les options
prcdemment vues dans mv sappliquent aussi cp.

rm [-options] entrees_a_supprimer : supprime les fichiers spcifis dans


entrees_a_supprimer. Peut aussi supprimer des rpertoires en les spcifiant dans
entrees_a_supprimer et dans ce cas loption -r est requise. Les options prcdemment
vues dans mv sapplique aussi cp.

3.4 Liens
3.4.1 Liens physiques

Section 3

Un lien physique vers un fichier est un nom supplmentaire attribu celui-ci dans son inode.
Effacer un fichier revient en ralit enlever depuis son inode le nom par lequel il a t rfrenc.
Le fichier nest rellement effac que lorsque le dernier nom dans linode est supprim. Le nombre
de noms que comporte un fichier est indiqu par la commande ls -l .
Pour crer un lien physique sous le nom lien et pointant sur source, la commande excuter
est : ln source lien
3.4.2 Liens symboliques
Un lien symbolique par contre est un fichier part entire nayant comme contenu que le chemin
vers le fichier ou le rpertoire sur lequel il doit pointer. Lorsquon accde en lecture ou en criture
un lien symbolique, le systme renvoit vers le chemin sur lequel il point. En revanche, lorsquon
supprime un lien symbolique, cest uniquement lui et non le fichier/repertoire rfrenc qui est
supprim.
Pour crer un lien symbolique sous le nom lien et pointant sur source, la commande excuter
est : ln -s source lien
3.4.3 Autres options de ln

-v : affiche le nom de chaque fichier avant de le lier;

-f : force lcrasement du fichier de destination sil existe.

3.5 Autres commandes

du -s repertoire : affiche la taille (en Ko) du rpertoire repertoire . Si loption -s est


omise, alors la commande affiche aussi la taille de chaque sous-rpertoire.

df -h : indique les quantits despaces disques utilises et disponibles sur tous les systmes
de fichiers accessibles.

tar cvf archive.tar source : cre une archive archive.tar contenant les fichiers et/ou
rpertoires spcifis la place de source.

tar cvzf archive.tar.gz source : cre une archive compresse archive.tar.gz au


format gzip contenant les fichiers et/ou rpertoires spcifis la place de source.

tar cvjf archive.tar.bz2 source : cre une archive compresse archive.tar.bz2 au


format bzip2 contenant les fichiers et/ou rpertoires spcifis la place de source.

tar xvf archive.tar : extrait le contenu de larchive archive.tar dans le rpertoire courant. Marche aussi si on spcifie une archive compresse comme par exemple
archive.tar.gz la place de archive.tar .

3.6 Les permissions


Les droits daccs dfinissent la possession dun fichier ou dun rpertoire un utilisateur et
un groupe dutilisateurs. Ils grent aussi quelles actions les utilisateurs ont le droit deffectuer
sur les fichiers (lecture, criture et excution), selon quils sont propritaire du fichier, membre
du groupe propritaire du fichier ou ni lun ni lautre. La possession et la gestion des permissions
associes seffectue individuellement avec chaque fichier.
Les droits daccs des entres dun rpertoire peuvent tre affichs avec la commande ls -l .
Ils apparaissent alors sous la forme : drwxr-xr-x . Le premier symbole est soit :

- : il sagit alors dun fichier;

d : rpertoire;

l : lien.

Le Shell

Suivent ensuite 3 groupes de 3 symboles chacun, indiquant si le fichier (ou rpertoire) est
autoris en lecture, criture ou excution. Les 3 groupes correspondent, dans cet ordre, aux droits
du propritaire, du groupe puis du reste des utilisateurs. Dans le paragraphe introductif, vous aurez
remarqu des lettres en gras dans les termes anglais. Ce sont ces lettres qui sont utilises pour symboliser lesdites permissions. Si la permission nest pas accorde, la lettre en question est remplac
par - . Si lon reprend les lettres donnes pour lecture/criture/excution (read/write/execute),
nous obtenons : rwx et pour propritaire/groupe/autres (user/group/other), nous obtenons : ugo.
Reprenons lexemple prcdent : drwxr-xr-x. Il se traduit de la manire suivante :

d : il sagit dun rpertoire;

rwx pour le 1er groupe de 3 symboles : son propritaire peut lire, crire et excuter.

r-x pour le 2nd groupe de 3 symboles : le groupe peut uniquement lire et excuter le fichier,
sans pouvoir le modifier.

r-x pour le 3me groupe de 3 symboles : le reste du monde peut uniquement lire et excuter
le fichier, sans pouvoir le modifier.

3.6.1 La commande chmod


Loutil chmod (change mode, changer les permissions) permet de modifier les permissions sur
un fichier. Il peut semployer de deux faons : soit en prcisant les permissions de manire octale,
laide de chiffres; soit en ajoutant ou en retirant des permissions une ou plusieurs catgories
dutilisateurs laide des symboles r w et x, prsents plus haut.
En grant chaque droit sparment
De cette faon, on va choisir :
1. qui sapplique le changement

u (user, utilisateur) reprsente la catgorie "propritaire" ;

g (group, groupe) reprsente la catgorie "groupe propritaire" ;

o (others, autres) reprsente la catgorie "reste du monde" ;

a (all, tous) reprsente lensemble des trois catgories.

2. La modification que lon veut faire

+ : ajouter

- : supprimer

= : affectation

3. Le droit que lon veut modifier

r : read : lecture (lire le contenu du fichier, ou afficher le contenu du rpertoire)

w : write : criture (modifier le contenu du fichier, ou, sil sagit dun rpertoire,
ajouter et supprimer des fichiers dans ce rpertoire)

x : execute : excution (lancer un fichier excutable, accder au rpertoire)

Par exemple : chmod o-w fichier3 enlvera le droit dcriture pour les autres, et chmod a+x
ajoutera le droit dexcution tout le monde.
On peut aussi combiner plusieurs actions en mme temps :

On ajoute la permission de lecture, dcriture et dexcution sur le fichier fichier3 pour le


propritaire ;

On ajoute la permission de lecture et dexcution au groupe propritaire, on retire la


permission dcriture ;

10

Section 3

On ajoute la permission de lecture aux autres, on retire la permission dcriture et dexcution.

Exemple :
chmod u+rwx,g+rx-w,o+r-wx fichier3
Mode octal
En octal, chaque groupement de droits (pour user, group et other) sera reprsent par un chiffre
et chaque droit correspond une valeur :

r=4

w=2

x=1

-=0

Par exemple,

Pour rwx, on aura : 4+2+1 = 7

Pour rw-, on aura : 4+2+0 = 6

Pour r, on aura : 4+0+0 = 4

Si nous prenons lexemple dun rpertoire ayant drwxr-x--- dans la liste affiche par ls -l, on
peut reprsenter ses droits daccs en mode octal :
rwx
7(4+2+1)

r-x
5(4+0+1)

--0(0+0+0)

Ce qui fait 750 en octal.


Si linverse on voulait appliquer ces permissions un rpertoire repertoire, on peut utiliser
juste sa reprsentation octale, ie 750 : chmod 750 repertoire
3.6.2 Options de chmod
Loption -R permet dappliquer les changements de droits daccs spcifis au rpertoire spcifi
ainsi que rcursivement tous ses fichiers et sous-rpertoires etc...

3.7 Recherche de fichiers


3.7.1 Syntaxe de la commande find
find repertoire criteres action
- Recherche les fichiers rpondant aux critres criteres dans le rpertoire repertoire et
effectue laction action dessus.
3.7.2 Les critres
-name
-type
-user
-group
-size
-atime
-mtime
-ctime
-perm
-links

Recherche
Recherche
Recherche
Recherche
Recherche
Recherche
Recherche
Recherche
Recherche
Recherche

par
par
par
par
par
par
par
par
par
par

nom de fichier.
type de fichier.
propritaire.
appartenance un groupe.
taille de fichier.
date de dernier accs.
date de dernire modification.
date de cration.
autorisations daccs.
nombre de liens au fichier.