Vous êtes sur la page 1sur 58

Groupe : 1ere Année LRI

Enseignante:
Guesmi Marwa

Année universitaire : 2022-2023


Le système d’exploitation (SE, en anglais Operating
System ou OS) est un de programmes
responsable ensemble de entre
la les ressources
s ordinateur et les
liaison
matérielles
informatiquesd’un applications
de l’utilisateur (traitement de texte,
jeu vidéo…).

Les systèmes d'exploitation 2


Les systèmes d'exploitation 3
Multi-utilisteurs : Plusieurs utilisateurs peuvent se
connecter et travailler en même temps sur la même
machine.
Chaque utilisateur a son environnement personnel.

Multi-tâches : Un même utilisateur peut lancer


plusieurs travaux simultanément.

Interactif : Il est possible de dialoguer avec l'ordinateur.


Possibilité aussi de lancer des processus (tâches) en
arrière plan et en mode différé (batch).
Les systèmes d'exploitation 4
/dev contient les fichiers associés aux
Un système de fichiers hiérarchisé périphériques :
Ex : lp : imprimante
ttyn terminal n° n
hkn disque dur n° n
mtn bande
magnétiques n° n

/etc contient
les
fichiers
d'administration

/bin contient les


commandes Unix

/usr commandes et
bibliothèques supplémentaires

/users répertoire des utilisateurs


Les systèmes d'exploitation 5
Un mécanisme de protection
◦ Identification des utilisateurs par mot de passe
◦ Un super-utilisateur (root) : administrateur du système (droits,
gestionnaire du système, gestion des utilisateurs, gestion des
groupes …)
◦ Protection des fichiers

Les systèmes d'exploitation 6


L'accès aux fichiers est déterminé par trois bits de permission: r w x (Read, Write,
eXecute) applicables à trois classes d'utilisateurs : u g o le propriétaire, le groupe et les
autres (Users, Group, Others).

Mode symbolique
chmod <qui><permission><opération><fichier>
<qui> valant :
u: utilisateur g: groupe o:autres et
<permission> : a :tous
+ : pour autoriser
<opération> : - : pour interdire
r : lecture w: x : exécution
écriture
Exemples
chmod g+w exemple.txt → les membres du peuvent écrire dans le
groupe fichier
«exemple.txt »
chmod og-rwx exemple.txt → protection en lecture, écriture et
exécution

Les systèmes d'exploitation 7


Mode octal
chmod <permission><fichier>
◦ permission : UGO (User, Group, Others : chiffre octal codant
les bits r w x)

Exemple
chmod 740 exemple.txt → rend le fichier accessible
en lecture au groupe et inaccessible aux autres

Les systèmes d'exploitation 8


Utilisateur  Le matériel peut
disque
représenter
dur, lecteur de
disquette…
Script Application
 Le noyau gère les tâches
Shell
de base du système
 L'initialisation du système
Noyau
 La gestion des processus
 La gestion de la mémoire
Matériel
 La gestion des fichiers
 La gestion des Entrées/Sorties

Les systèmes d'exploitation 9


Utilisateur  L’utilisateur communique
avec le noyau
par l'intermédiaire d'un
Script Application SHELL.
 Le shell est l’interpréteur
Shell
commandes de l'utilisateur
de
(ou prises d’un fichier), avant
Noyau
transmission au noyau (le
gestionnaire de processus et le
Matériel
système de gestion de fichiers).

Les systèmes d'exploitation 10


 Laplupart des programmes
d’application communiquent avec le
Utilisateur
noyau sans passer par le
 shell.
Un script shell (shell-script) est un
fichier texte qui contient une suite de
Script Application commandes.
 Faire appel au shell explicitement : $
Shell bash premier.sh
 Pour les droits d'exécution sur le fichier
Noyau : $ chmod u+x premier.sh.

Matériel

Les systèmes d'exploitation 11


Les systèmes d'exploitation 12
Un fichier dans UNIX est une séquence d'octets, le noyau
n'impose aucune structure spécifique aux fichiers.

Le rôle d'un fichier est de conserver et de traiter de l'information.

Différents types de fichiers :


Ordinaires : fichiers physiques enregistrés sur le disque dur
Répertoires : contiennent des noms de fichiers et/ou d’autres répertoires
Spéciaux :
 les périphériques: pour communiquer avec un périphérique, on lit ou on écrit dans un fichier
spécial représentant ce périphérique.
 les tubes: permettent la communications entre processus. on les utilise parfois pour enchaîner
des commandes: une commande écrit dans le tube, une autre y lit.

Liens : fichiers permettant d'associer plusieurs noms (liens) à un seul et même fichier
 Les liens symboliques représentant des pointeurs virtuels (raccourcis) vers des fichiers réels.
 Les liens physiques (liens durs) représentent un nom alternatif pour un fichier.

Les systèmes d'exploitation 13


Un fichier est localisable de façon exacte et unique par son chemin
Chemin : succession des répertoires à
parcourir pour accéder au fichier (navigation dans
l'arbre).

Répertoire parent
Le répertoire parent est celui hiérarchiquement immédiatement supérieure à
celui courant. Il est noté deux points ..

Répertoire courant
Le répertoire courant est celui dans lequel on se trouve à un instant donné
durant la navigation dans le système de fichiers. Il est noté point .

Les systèmes d'exploitation 14


Chemin absolu
Le chemin absolu désigne la succession des répertoires à parcourir depuis
la racine pour accéder au fichier spécifié.
Exemple : /home/h-etie00/tpC/tp3.c pour accéder au fichier tp3.c
du
système de fichier où qu'on se trouve dans le système.

Chemin relatif
Le chemin relatif désigne la succession des répertoires à parcourir depuis
le répertoire courant pour accéder au fichier spécifié.
Exemple : ../monprog.c pour accéder au fichier monprog.c lorsqu'on se
trouve dans le répertoire père tpC.
La présence du répertoire parent dans ce chemin relatif permet de
remonter dans l'arbre.
Les systèmes d'exploitation 15
A la connexion, l'utilisateur est
automatiquement positionné dans son répertoire de
connexion .
Ex : /users/etudiants
Pour se déplacer dans la hiérarchie :
cd <nom_répertoire>

Les systèmes d'exploitation 16


Opérations de base sur les répertoires :
exemples
ls [options] <nom_répertoire> : afficher le
contenu d'un répertoire
l’option -l permet d'obtenir l'ensemble des informations
relatives à chaque fichier du répertoire : type de fichier, droits
d'accès, nom du propriétaire, nombre de liens, taille, nom, date
de création ...
mkdir <nom_répertoire> : créer un répertoire.
rmdir <nom_répertoire> : supprimer un
répertoire vide.
rm -R <nom_répertoire> : supprimer tout le répertoire.
17
Les systèmes d'exploitation
Opérations de base sur les fichiers :
exemples
cat <nom_fichier> : visualisation du contenu
d’un fichier
mv <source> <destination> : renommage
et déplacement d'un fichier
touch : créer un fichier
wc : donne le nombre de caractères (-c), de mots (-
w) ou de lignes (-l)
sort : trier par ordre alphabétique les lignes d'un fichier.
grep : recherche d'un motif dans un fichier
Head/tail : afficher les premières / dernières
Les systèmes d'exploitation 18
Les systèmes d'exploitation 19

Processus = objet dynamique qui représente
un programme en cours d’exécution et son contexte.

• Caractéristiques:
– identification (pid)
– identification du proc. parent (ppid)
– propriétaire
– priorité
– ...

• Pour voir les processus en cours: ps

Les systèmes d'exploitation 20


Chaque processus possède 3 flux standards qu'il utilise pour
communiquer en général avec l'utilisateur :

 l'entrée standard nommée stdin (identifiant 0) : il s'agit par défaut


du clavier,
 la sortie standard nommée stdout (identifiant 1) : il s'agit par défaut
de l'écran,
 la sortie d'erreur standard nommée stderr (identifiant 2) : il s'agit par
défaut de l'écran.

Les systèmes d'exploitation 21


Entrée/sorties standard d'un
processus

Les systèmes d'exploitation 22


Rediriger la sortie standard
Quand on exécute une commande, le shell affiche le résultat sur la
console de sortie par défaut. On peut rediriger cette sortie vers un
fichier en utilisant le signe >.
Exemple : ls > resultat_ls
=> Si le fichier existe déjà, il est écrasé.

Concaténation
Au lieu de créer un fichier, il est possible d'ajouter les sorties d'un
processus à un fichier existant en utilisant le double signe >>.
Exemple : ls >>resultat
=> Si le fichier résultat existe déjà, les affichages sont concaténés.

Les systèmes d'exploitation 23


Syntaxe complète
En fait, les signes > peuvent être précédés de l'identifiant du flux à
rediriger. Pour la sortie standard, on peut donc utiliser les
syntaxes suivantes :
ls 1> resultat
ls 1>> resultat
Rediriger la sortie d'erreur standard
La redirection du flux de sortie d'erreur standard utilise les mêmes
signes, mais précédés de l'identifiant du flux 2.
Exemples
ls 2> erreurs_ls
ls 2>> erreurs_ls

Les systèmes d'exploitation 24


Redirection de la sortie standard vers un
fichier

Les systèmes d'exploitation 25


Redirection vers des fichiers

Les systèmes d'exploitation 26


Rediriger l'entrée standard
Rediriger l'entrée standard permet d'entrer des données
provenant d'un fichier au lieu du clavier.
Exemple
cat < mon_fichier.txt

Les systèmes d'exploitation 27


Rediriger un flux vers un autre
Il est possible de rediriger un flux vers la sortie standard ou la sortie
d'erreur en donnant l'identifiant du flux précédé du caractère & à la
place du nom de fichier.
Exemple
ls 1>stdout_stderr.txt 2>&1
 Le fichier stdout_stderr.txt contient ce qui a été affiché à la fois sur
le flux de sortie standard et le flux de sortie d'erreur.
2>&1
# Redirige stderr vers stdout.
# Les messages d'erreur sont envoyés à la même place que la sortie standard.

i>&j
# Redirige le descripteur de fichier i vers j.
# Toute sortie vers le fichier pointé par i est envoyée au fichier pointé par
j.

Les systèmes d'exploitation 28


Échange des deux flux de sortie
L'échange des deux flux de sortie s'effectue en utilisant
la syntaxe pour rediriger un flux vers un autre à trois
reprises, en utilisant un identifiant de flux fictif comme
intermédiaire (3).
Exemple :
ls 2>&3 1>&2 3>&1

Les systèmes d'exploitation 29


< redirige l’entrée standard
> redirige la sortie standard
>> concatène la sortie standard
2> redirige la sortie d’erreur
&> redirige la sortie standard et la sortie d’erreur

Exemples:
 ls . > liste : crée/écrase le fichier liste et y dirige la sortie de ‘ls‘
 date >> liste : ajoute à la fin du fichier liste la sortie de ‘date‘
 wc -l < liste : envoie comme entrée à la commande
‘wc‘ le
fichier liste
Les systèmes d'exploitation 30
Tube: | => pour connecter 2 commandes
La sortie standard de la commande à gauche du symbole sera
utilisée comme entrée standard de la commande de droite
Redirige la sortie d'une commande vers l'entrée d'une autre
commande :
une chaîne de redirection entre deux processus
ne passe pas par un fichier, mais par une zone mémoire du
système.

Les systèmes d'exploitation 31


Exemple : combien de fichiers dans le répertoire
◦ sans
courant ? pipe:
ls > temp ;
wc -l < temp ;
rm temp
◦ avec un pipe:
ls | wc -l

Connaître le nombre de fichiers du répertoire /usr/bin : ls -1 /usr/bin | wc -l


Explications : L'option -1 de la commande ls affiche un fichier ou répertoire par ligne.
La commande wc (word count) avec l'option -l (line) compte le nombre de lignes.

Afficher la taille des fichiers et répertoires, et les trier du plus grand au plus
petit : du | sort -rn

Les systèmes d'exploitation 32


Même résultat, mais affiché page par
page
 du :| sort -rn | more

Les systèmes d'exploitation 33


Expliquer en quelques lignes le déroulement de cette syntaxe : ls |
wc
La commande ls | wc correspond en réalité à réaliser les 4 étapes
qui
suivent. • 1- Le processus shell (ici, bash) créé un
fichier temporaire (ici, tube)qui sera mis à la
disposition des deux processus ls et wc ; ce
qui est équivalent à écrire : touch tube

• 2- Le processus ls s’exécute et son résultat est


redirigé vers ce tube, ce qui est équivalent à
écrire : ls > tube

• 3- Le processus wc récupère ces résultats,


donc ses données à partir de ce même tube ;
ce qui est équivalent à écrire : wc < tube

• 4- Le processus bash détruit le fichier


temporaire lorsque les processus ls et wc
cessent leur activité ; ce qui est équivalent à
écrire : rm -f tube

Systèmes d'exploitation 34
Certaines commandes
Unix
Permettant de traiter un flux de données textuelles leur
parvenant sur leur entrée standard, et restituant le résultat de
leur opération sur la sortie standard

Le but principal est d'apporter un traitement particulier dans la


chaine des traitements que constitue un script.

Les systèmes d'exploitation 35


tee : permet une dérivation à l’intérieur d’un tube vers un
fichier
 ls | tee f1 | sort > f2
La sortie de la commande ls sera copiée dans f1 et dirigée dans
la commande sort
On obtient un fichier « f1 » contenant la liste de votre répertoire et un autre
fichier « f2 » contenant cette même liste triée

cat : affiche le contenu des fichiers passés en paramètres (par défaut, stdin)
 affichage simple : cat fichier
concaténation de fichiers : cat fichier 1 ... fichier n
Les fichiers fichier i sont envoyés dans l'ordre et sans séparation vers stdout.

36 Les systèmes d'exploitation


more : affiche page par page les fichiers passés en paramètres (par
défaut,
stdin)
 $ more .profile : utilisation de more comme une commande simple
$ cat .profile | more : le résultat de la commande cat est dirigé dans la
commande more qui l’affiche à l’écran page par page.

37 Les systèmes d'exploitation


 Un script shell permet d'automatiser une série d'opérations. Il se
présente sous la forme d'un fichier contenant une ou plusieurs
commandes qui seront exécutées de manière séquentielle.

 La toute première ligne du fichier doit contenir le nom de


l’interpréteur à utiliser. Cette ligne doit commencer par #!
(SHEBANG!) suivi de l’exécutable à utiliser pour lancer le shell.

 Pour un script bash , on aura donc en début de fichier en général :


#! /bin/bash
# commentaire de debut du script
commandes bash

Les systèmes d'exploitation 38


Soit le script monscript
suivant :
#!/bin/bash
# commentaire
echo "Le numéro du process est $$"
echo "Entrez un nombre:"
read nombre
echo "Le nombre entré est $nombre"

Pour exécuter le script, il faut :


◦ rendre le fichier exécutable : chmod u+x
monscript
◦ lancer la commande : $ ./monscript
Les systèmes d'exploitation 39
Il est possible d’exécuter une suite d’instruction sous
une certaine condition.
if [ test ] then
commande-si-vrai
else
commande-si-faux
fi

Le test peut être une condition sur un


fichier, ou une comparaison de chaine ou
de valeur
40 Les systèmes d'exploitation
Les systèmes d'exploitation 41
Afficher le contenu d’un fichier s’il
existe.#!/bin/bash
if [ -f $1 ] then
cat $1
fi

Créer un répertoire toto s’il n’existe pas


déjà.
#!/bin/bash
if [ ! –d toto ]
then mkdir
toto
fi
42 Les systèmes d'exploitation
 Entiers

Les systèmes d'exploitation 43


 Script pos déterminant si un nombre est positif.
#!/bin/bash
if [ $1 -gt 0 ] then
echo "$1 est positif"
fi

=> $ pos 2
2 est positif

44 Les systèmes d'exploitation


 Chaîne:
 [ "$A" = "$B" ]: vrai si chaine A = chaineB.
 [ "$A" != "$B" ]: vrai si chaine A <>
chaineB

45 Les systèmes d'exploitation


 Script quitter demandant si l’utilisateur veut
quitter.
#!/bin/bash
echo "Voulez-vous quitter ?"
read rep
if [ "$rep" = y]
then echo
"exiting..." exit 0
fi

=> $ quitter
Voulez-vous quitter ?
y
exiting...
$

46 Les systèmes d'exploitation


 La boucle for permet d’exécuter une suite d’instruction
avec une variable parcourant une suite de valeurs.
for variable in list do
statement
done

Exemple : La liste peut être un ensemble de


fichiers For x in *.txt do
statement
done

47 Les systèmes d'exploitation


 La commande while permet une boucle conditionnelle «
tant que».
 Tant que la condition est réalisée, le bloc de commande est
exécuté. On sort si la condition n'est plus valable.
while condition do
commandes
done
 Ou

While bloc
d’instructions
formant la
condition do
command
48 es Les systèmes d'exploitation
 La commande until permet une boucle conditionnelle «
jusqu'à ». Dès que la condition est réalisée, on sort de la
boucle.
until condition do
commandes
done
 ou
Until bloc d’instructions formant la condition do
commandes
done

49 Les systèmes d'exploitation


Les systèmes d'exploitation 50
 * :toute chaîne de caractères
 ? :un caractère quelconque

[...] : liste de caractères par ordre alphabétique
si séparés par -
 [!...] : liste de caractères à exclure

Exemples :
 a[!a-z]s
 a[a-z 0-9A-Z]s

Les systèmes d'exploitation


Exemples :
 echo * : Tous les fichiers sauf ceux dont le nom commence
par un point

 echo *c : Tous les fichiers dont le nom se termine par un


‘c’

 echo .* : Tous les fichiers dont le nom commence par


un point

 echo [0-9]* : Tous les fichiers dont le nom commence par un


chiffre
Les systèmes d'exploitation
Une variable d’environnement est un espace mémoire
possédant un nom et une valeur, qui peut être utilisée par
plusieurs processus, et correspondant à une commande ou
un service.

Ces variables d’environnement permettent à des


programmes d’utiliser ces informations en même temps.

Pour connaître l’ensemble des variables d’environnement


d’un système, on utilise la commande « env » :

Les systèmes d'exploitation


PWD: stocke le répertoire courant
USER - LOGNAME: stocke le nom de l'utilisateur courant / connecté
HOME: stocke le répertoire personnel de l'utilisateur
PATH: stocke les chemins d'accès aux exécutables
TERM: stocke le type de terminal (xterm ...)
SHELL: stocke le shell utilisé pour la connexion
PRINTER: stocke l'imprimante par défaut
DISPLAY: stocke l'adresse du terminal X
LD_LIBRARY_PATH: stocke les répertoires lesquels sont stockées le bibliothèques
dans dynamiques
PS1: stocke la chaîne de caractère de l'invite du shell
LANGUAGE: stocke la langue du système
LANG: stocke la langue utilisée par les programmes pour communiquer avec l'utilisateur
HOSTNAME: stocke le nom du serveur
$$: stocke le numéro, PID du processus en cours
$!: stocke le numéro, PID du processus lancé en arrière plan en dernier

Les systèmes d'exploitation


1)Créer un fichier de nom -i et le
supprimer
2) Alias permettant de lister page par page et dans
l'ordre alphabétique l'ensemble des variables d'environnement.
3) Créer dans un répertoire rep1 les fichiers suivants : fich1, fich2,
fich1a, ficha1, .fich1, .fich2, toto, afich.
4) Lister les fichiers :
1. dont les noms commencent par fich,
2. dont les noms commencent par fich suivi d'un seul caractère,
3. dont les noms commencent par fich suivi d'un chiffre,
4. dont les noms commencent par .,
5. dont les noms ne commencent pas par f,
6. dont les noms contiennent fich.

Les systèmes d'exploitation


1. Créer un fichier de nom -i et le
supprimer
 cat >-i
 rm ./-i

2.Alias permettant de lister page par page et dans l'ordre


alphabétique l'ensemble des variables
d'environnement.
 alias env= 'env|sort|more'

Les systèmes d'exploitation


3. Créer dans un répertoire rep1 les fichiers suivants :
fich1, fich2, fich1a, ficha1, .fich1, .fich2, toto, afich.
 mkdir rep1;
 cd rep1;
 touch fich1 fich2 fich1a ficha1 .fich1 .fich2 toto afich

Les systèmes d'exploitation


4. Lister les fichiers :
1/ dont les noms commencent par fich,
 ls fich*
2/ dont les noms commencent par fich suivi d'un seul
caractère
 ls fich?
3/ dont les noms commencent par fich suivi d'un chiffre,
 ls fich[0-9]
4/ dont les noms commencent par .,
 ls .??* (ne pas prendre . Et ..)
5/ dont les noms ne commencent pas par f,
 ls [!f]*
6/ dont les noms contiennent fich.
 ls *fich*

Les systèmes d'exploitation

Vous aimerez peut-être aussi