Cours
Cours
Cours
moustapha.diaby@adoptimax.com
http:
//www.diabymoustapha.adoptimax.com
ESATIC
Systèmes d’exploitations des ordinateurs
A. Généralités
B. Unix
1. Généralités
2. Système de Gestion des Fichiers
3. Les processus
4. Langage de commandes
Système d’exploitation des ordinateurs
Module Système – Semestre 1
Esatic, UP informatique
Année 2014-2015
Moustapha Diaby
(moustapha.diaby@adoptimax.com –
http://www.diabymoustapha.adoptimax.com)
Partie A
Département Informatique
Ordinateur
Un ordinateur contient :
☞ un (ou des) processeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . calcul
☞ des horloges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . temporisation
☞ des terminaux . . . . . . . . . . . . . . . . . . . interaction ordinateur/utilisateur
☞ une mémoire principale . . . . . . . . . . . . . . . . . . . . stockage non-durable
☞ une mémoire secondaire (disques, flash, etc.) . . . . stockage durable
☞ des interfaces de connexion à des réseaux
☞ des périphériques d’entrées/sorties
Il sert uniquement à :
1. Faire des calculs
2. Stocker les résultats de ces calculs
① MACHINE VIRTUELLE
masquer les élements fastidieux liés au matériel, comme la gestion
de la mémoire, la gestion des périphériques (déplacement de la tête
de lecture d’un disque, etc.), les horloges, etc.
② GESTIONNAIRE DE RESSOURCES
ordonnancer et contrôler l’allocation des ressources (processeurs,
mémoire, entrées/sorties, etc.) entre les différents programmes qui
y font appel.
Le rôle de gestionnaire des ressources est crucial pour les systèmes d’ex-
ploitations manipulant plusieurs tâches en même temps (multi-tâches).
☞ de leur couplage
☞ MONO/MULTI TÂCHES :
capacité du système à pouvoir (ou pas) exécuter plusieurs processus
simultanément
☞ MONO/MULTI UTILISATEURS :
capacité à pouvoir (ou pas) gérer un panel d’utilisateurs utilisant
simultanément les mêmes ressources matérielles
UNIX
Département Informatique
Cours n˚ B.1
☞ Toutes les interfaces avec les périphériques sont unifiées (via le sys-
tème de gestion des fichiers)
☞ multi-utilisateurs
☞ multi-tâches
☞ Programmes utilisateurs
☞ Programmes systèmes
☞ Noyau du système
☞ Matériel (hardware)
Dans les deux derniers cas d’erreurs l’utilisation du manuel en ligne (via
man) permettra d’obtenir plus de détails sur le fonctionnement de la com-
mande.
a. ou presque...
Toutes les versions d’UNIX ont une hiérarchie unique, dont le sommet est
nommé «/» (slash).
La liste des répertoires est composée de répertoires séparés les uns des
autres par le caractère «/»
Les fichiers dont le nom commence par un point «.» sont appelés fichiers
cachés (par exemple par défaut la commande ls ne les montre pas).
Type Caractères
fichier régulier -
répertoire d
lien (symbolique) l
tube p
socket s
spécial c ou b
Un lien symbolique (soft link) est un fichier (de type lien) qui contient
le chemin et le nom d’un autre fichier.
Les accès à un lien ne sont rien d’autre que des redirections vers un autre
fichier : les commandes qui manipulent un fichier lien manipule en fait le
fichier dont le chemin est stocké dans le lien.
{epicea08-beaufils-/tmp} ls -ali
total 12
24801 drwxrwxrwt 5 root root 4096 Nov 27 00:58 .
2 drwxr-xr-x 21 root root 4096 Feb 19 2000 ..
24802 -rw-rw-r-- 3 beaufils ens 13 Nov 27 00:57 toto
{epicea08-beaufils-/tmp} ls -li
total 12
24804 drwxrwxr-x 2 beaufils ens 4096 Nov 27 00:59 tata
24803 lrwxrwxrwx 1 beaufils ens 4 Nov 27 00:58 titi -> tutu
28402 -rw-rw-r-- 3 beaufils ens 13 Nov 27 00:57 toto
24802 -rw-rw-r-- 3 beaufils ens 13 Nov 27 00:57 tutu
Système de gestion des fichiers B.2 – 21
Hiérarchie standard UNIX
/bin Commandes utilisateurs essentielles
/dev Fichiers de périphériques
/etc Fichiers de configuration spécifique à la machine
/home Répertoires des utilisateurs
/lib Librairies partagées
/sbin Commandes d’administration essentielles
/tmp Fichiers temporaires
/usr Seconde hiérarchie
/var Données variables
/usr/X11R6 X Window System, version 11 release 6
/usr/bin La plupart des commandes utilisateurs
/usr/include Fichier d’entêtes pour les programmes C
/usr/lib Librairies
/usr/local Hiérarchie locale
/usr/sbin Commandes d’administrations non-vitales
/usr/share Données indépendantes de l’architecture
/usr/src Code source
Le mode d’un fichier peut alors être spécifié par un nombre en base 8, dont
les chiffres représentent, de gauche à droite, les droits d’accès pour :
① le propriétaire du fichier
② les membres du groupe du fichier
les autres
③ Système de utilisateurs
gestion des fichiers B.2 – 29
745 représente les droits rwx r-- r-x
Lorsqu’un programme crée un fichier, il spécifie les droits d’accès qu’il de-
mande pour ce fichier.
Dans tous les cas elle utilise des masques sous forme numérique octale.
Les processus
Un programme est une suite d’instructions que le système doit faire ac-
complir au processeur pour résoudre un problème particulier. Ces instruc-
tions sont rangées dans un fichier.
PROGRAMME 6= PROCESSUS
m m
Recette de cuisine 6= Préparation d’un plat
Le processus est l’activité de notre cordon bleu qui lit la recette, trouve les
ingrédients nécessaires et fait cuire le gâteau.
Le processeur passe donc d’un processus (la cuisine) à un autre plus prio-
ritaire (les soins médicaux), chacun d’eux ayant un programme propre (la
recette et le livre des soins).
➥ pseudo parallèlisme
☞ Une même activité pourrait avoir été fait dans différents endroits
(soins dans la cuisine plutôt que dans la salle de bains par exemple).
☞ Une même activité aurait pu être faite sur d’autres objets (œufs du
voisins par exemple).
Un processus est une zone mémoire de taille fixe qui permet de stocker :
☞ les informations sur le processus lui même
☞ le code : les instructions à exécuter (dans le langage du processeur)
☞ la zone de données : les variables manipulées par le code
☞ la pile d’exécution : les paramètres d’appels des fonctions
Si le père ne fait rien tant que son fils n’a pas terminé son programme on
dit que le fils est en avant plan (foreground), ou mode synchrone :
Par défaut le shell exécute les commandes comme des processus en mode
synchrone.
☞ Pour lancer une commande en tâche de fond, il faut faire suivre cette
commande par le caractère esperluète «&» :
$ commande &
[1] 31343
$
... résultat de la commande
Le Bourne shell (sh) affiche un numéro de tâche (job) entre crochets
puis le PID du processus créé avant de rendre la main à l’utilisateur.
En shell, il est possible de modifier les fichiers identifiés par les descrip-
teurs :
☞ Redirection de la sortie standard avec le caractère plus grand «>» :
➙ commande > fichier
Si le fichier n’existe pas, il est crée par le shell et s’il existe déjà
le shell détruit son contenu pour le remplacer par la sortie de la
commande
➙ commande >> fichier
Si le fichier n’existe pas, il est crée par le shell et s’il existe déjà
la sortie de la commande est ajoutée à la fin du fichier.
☞ Redirection de l’entrée standard avec le caractère plus petit petit «<» :
➙ commande < fichier
La commande lit ses données dans le fichier.
➥ Il est possible de mettre autant de redirections que voulues sur une ligne
de commandes.
Les processus B.3 – 18
bash-2.08$ ls > resultat
des programmes qui lisent des données sur l’entrée standard, les modi-
fient et envoient le résultat sur la sortie standard
bash-2.08$ ls -l /media/
total 16
drwxr-xr-x 2 root root 4096 2002-12-30 19:28 cdrom
drwxr-xr-x 2 root root 4096 2002-12-30 19:28 floppy
drwxr-xr-x 2 root root 4096 2003-05-16 08:08 usb
drwxr-xr-x 2 root root 4096 2003-11-12 01:43 zip
Un script est une commande comme une autre sur laquelle on peut faire
redirections, tubes, etc.
Comme toute commande un script peut être appelé avec des paramètres :
– pour modifier son comportement
– pour spécifier les données qu’il doit manipuler
2. Substitution de commandes
☞ Variables classiques :
elles ne sont définies que dans le contexte d’exécution du processus
dans lequel elles sont déclarées.
<nom >=<valeur >
☞ Variables d’environnement :
elles sont définies dans le contexte d’exécution du processus dans
lequel elles sont déclarées et dans tous les contextes d’exécution des
processus que celui-ci peut créer (processus fils)
<nom >=<valeur >
export <nom >
${<nom >}
☞ le shell substitue la variable par la dernière valeur qui lui a été affecté
☞ les accolades «{» et «}» sont optionnelles, elles sont cependant sou-
vent utilisées pour délimiter le nom de la variable
variables description
$HOME Le chemin absolu du répertoire principal de l’utilisateur.
$PATH Liste des répertoires dans lesquels le shell recherche les
commandes à exécuter. Les répertoires sont séparés par des
deux-points «:».
$? Le code de retour de la dernière commande exécutée.
$$ Le PID du processus exécutant le shell en cours.
$PPID Le PID du processus père du processus $$.
$! Le PID du dernier processus exécuté en tâche de fond.
$PWD Le répertoire de travail en cours.
$PS1 Le message d’invite (prompt) principal du shell.
$PS2 L’invite secondaire du shell.
echo 2 + 3 = ‘expr 2 + 3‘
⇓
echo 2 + 3 = 5
⇓
2 + 3 = 5
☞ «[» <liste > «]» remplace n’importe quel caractère de <liste >
– «^» placé en début de liste signifie que l’on veut remplacer n’im-
porte quel caractère non présent dans la liste
[a-z]*[0-9] Tous les fichiers dont le nom commence par une minuscule
et se termine par un chiffre
[^a-z]* Tous les fichiers dont le nom ne commence pas par une
minuscule
???* Tous les fichiers dont le nom est composé d’au moins 3 ca-
ractères.
2. Sinon
(a) Recherche répertoire et fichier
– si la commande contient au moins un caractère «/»
extraction du répertoire et du nom de fichier
– sinon pour tous les répertoires définis dans la variable $PATH
recherche d’un fichier correspondant à la commande
commandes description
cd change le répertoire courant
echo envoie ses arguments sur la sortie standard
pwd envoie le nom du répertoire courant sur la sortie standard
. ou source lit et exécute les commandes d’un fichier
exec remplace le code par une autre commande
exit termine le processus courant
read affecte une variable en lisant l’entrée standard
if cmd - si
then
cmdsif
elif cmd - sinon - si
cmdselif
else
cmdselse
fi
while cmd - tq
do
cmdswhile
done