Systèmes d'exploitation
Institut Supérieur du Numérique
Année Scolaire 2021/2022 Source Audrey Queudet
Université de Nantes
3/8/2022 1
Plan du cours
Introduction aux systèmes d'exploitation
Présentation générale d'UNIX
Programmation shell
Processus et parallélisme
Ordonnancement
Communication et synchronisation
Gestion de la mémoire
Gestion de E/S
3/8/2022 2
Présentation générale d'UNIX
Les origines
UNIX est né au sein des laboratoires BELL (Filiale d'AT&T)
Développé à partir de 1969 par Ken Thompson et Dennis Ritchie
Dès 1973, UNIX est réécrit à 90% en langage C
En 1975, les sources d'Unix sont diffusées dans les universités
Développement de 2 branches :
BSD développé à l'Université de Berkeley (Californie)
System V vendu par AT&T à Sun Microsystems, IBM, DEC et HP
UNIX® est une marque déposée depuis 1994
3/8/2022 3
Présentation générale d'UNIX
Caractéristiques principales
Multitâche
Multi-utilisateur
Portable
Interactif
Système à mémoire virtuelle
Un riche panel d'outils (plusieurs centaines)
3/8/2022 4
Présentation générale d'UNIX
Outils disponibles
Editeurs de texte
Développement logiciel
Communication
Documentation
Bureautique
3/8/2022 5
Présentation générale d'UNIX
Structure générale
Langages
de commandes (shell)
Outils
d’édition
Outils
Gestion Gestion
Ordonnanceur de
E/S mémoire Niveau Niveau Niveau
compil.
Noyau Exécutif SE
Gestion
du temps
Outils de
debuggage
3/8/2022 6
Présentation générale d'UNIX
Le système de fichiers UNIX
Sous UNIX, tout élément est représenté sous forme de fichier
4 types de fichiers :
Ordinaire : données, programme
Répertoire : contient d'autres données ou répertoires
Lien symbolique : pointe vers un autre fichier
Spécial : permet l'accès à un périphérique
Chaque fichier est caractérisé par son nom, sa taille, ses droits d'accès,
son propriétaire, ses dates de création, de modification...
Structure arborescente de fichiers
3/8/2022 7
Présentation générale d'UNIX
L'arborescence UNIX
racine
Liste des
périphériques
Commandes
système
Accès aux
périphériques
Utilitaires
Fichiers temporaires
Bibliothèques
système
19
3/8/2022 Utilisateurs 8
Présentation générale d'UNIX
Accès aux fichiers
Chemin absolu :
/home/queudet/programmes/progC/p1.c
/home/queudet/textes/lettre.txt
Chemin relatif au répertoire d'accueil (/home/queudet sur l'exemple) :
~/progc/p1.c
~/textes/lettres.txt
Chemin relatif au répertoire courant (programmes sur l'exemple) :
progc/p1.c
../textes/lettres.txt
Permet de remonter d'un niveau dans l'arbre
3/8/2022 9
Présentation générale d'UNIX
Utilisateurs et
groupes
Le fichier /etc/passwd contient toutes les informations relatives aux
utilisateurs (logins, mots de passe, ...).
Chacune de ses lignes possède le format spécial suivant :
nom_du_compte : mot_de_passe : no_UID : no_GID : commentaire : répertoire_home : prog
Identifiant utilisateur Programme de démarrage
(entier) après connexion
(un shell généralement)
Identifiant de groupe
(entier)
Exemples :
root:12dGe12ge35qF:0:0:root:/users/root:/bin/bash
pascal:12dGeg5AqFdhr2:500:100:Pascal:/users/pascal:/bin/tcsh
3/8/2022 10
Présentation générale d'UNIX
Les droits d'accès
3 catégories d'utilisateurs : 4 types de fichier :
Propriétaire (user) u Ordinaire -
Groupe (group) g Répertoire (directory) d
Autres (others) o Lien symbolique (link) l
Spécial c ou b
3 types de droits : Les droits d'un fichier sont
Lecture (read) r représentés par une chaîne de
10 caractères :
Ecriture (write) w
x - rxw rw- r--
Exécution (execute)
3/8/2022 11
Présentation générale d'UNIX
Les droits d'accès en octal
Droits Valeur
--- 0
--x 1
-w- 2
-wr 3
r-- 4
r-x 5
rw- 6
rwx 7
Exemples :
-rw :
drw-r—-r-- :
drwxr-x--- :
3/8/2022 12
Présentation générale d'UNIX
Les commandes de base UNIX
A) Documentation en ligne
B) Navigation dans l'arborescence
C) Visualisation de fichiers
D) Manipulation de fichiers
E) Gestion des droits d'accès
F) Processus
G) Identification des utilisateurs
H) Recherche de fichiers ou de chaînes de caractères
I) Utilitaires classiques : éditeurs, compilateurs
J) Redirections et tubes
3/8/2022 13
Présentation générale d'UNIX
A) Documentation en ligne (1)
L'accès à la documentation en ligne se fait via la commande man
Une page de manuel contient, entre autres, les rubriques suivantes :
TITLE
NAME
SYNOPSI
S
DESCRIPTIO
N OPTIONS
USAGE
EXAMPLES
SEE ALSO
3/8/2022 14
Présentation générale d'UNIX
A) Documentation en ligne (2)
Visualisation d'une page du manuel :
man [-s section] commande
Sections :
Recherche des pages qui se rapportent à un mot clé :
man -k mot_cle
3/8/2022 15
Présentation générale d'UNIX
B) Navigation dans l'arborescence
Affichage du chemin absolu du répertoire courant :
pwd
Changement de répertoire :
cd chemin
cd /home
cd textes
cd ../programmes
Création d'un répertoire :
mkdir rep_a_creer
mkdir /home/queudet/enseignements
Suppression d'un répertoire vide :
rmdir rep_a_supprimer
rmdir enseignements
3/8/2022 16
Présentation générale d'UNIX
C) Visualisation de fichiers (1)
Listage du contenu des répertoires et des informations sur les fichiers :
ls [-options]
Options : - d - l
- i - a
- x - t
- u - r
- R - F
Exemple :
ls -l textes
total 2
-rw-rw-r-- 1 Olivier etudiant 168 Dec 2 15:09 chant.txt
-rw-r--r-- 1 Olivier etudiant 81 Nov 30 14:19 lettre.txt
3/8/2022 17
Présentation générale d'UNIX
C) Visualisation de fichiers (2)
Affichage d'un ou plusieurs fichiers de type texte :
cat textes/lettre.txt
Listage des n premières lignes d'une liste de fichiers de type texte :
head -3 textes/chant.txt
Listage des n dernières lignes d'une liste de fichiers de type texte :
tail -2 textes/chant.txt
Affichage page par page d'un fichier de type texte :
more programmes/progC/description_p1.txt
3/8/2022 18
Présentation générale d'UNIX
D) Manipulation de fichiers
Copie d'un fichier vers un autre fichier :
cp chemin_source chemin_destination
cp programmes/progc/p1.c programmes/archive/prg1.c
Changement du nom ou déplacement d'un fichier :
mv chemin_source chemin_destination
mv programmes/progc/p1.c programmes/progc/programme1.c
mv programmes/progc/*.c programmes
Supression d'un ou plusieurs fichiers :
rm chemin
rm programmes/progc/p1.c
rm programmes/progc/*.c
3/8/2022 19
Présentation générale d'UNIX
E) Gestion des droits d'accès
Changement des droits d'accès d'un fichier spécifié :
chmod [-R] u|g|o +|- r|w|x chemin
chmod [-R] valeur_en_octal chemin
Exemple :
chmod go+rx programmes/progc
chmod o-w textes/*.txt
chmod 765 textes/lettre.txt
Changement du groupe d'appartenance d'un fichier ou d'un répertoire :
chggrp [-R] groupe chemin
chggrp prof /home/Olivier
3/8/2022 20
Présentation générale d'UNIX
F) Processus
Liste des processus satisfaisant un critère donné (spécifié en option) :
ps [-options]
Exemple :
ps -u dupont
ps -r
ps -elf
Destruction d'un processus :
kill -9 no_processus
kill -9 521
Lancement en arrière-plan d'un processus :
nom_processus &
prog1 &
3/8/2022 21
Présentation générale d'UNIX
G) Identification des utilisateurs
Liste des utilisateurs connectés :
who
Affichage du login sous lequel l'utilisateur est connecté :
whoami
Olivier
Affichage du no et du nom de l'utilisateur, du no et nom de ses groupes :
id
uid=501(Olivier) gid=502(etudiant) groups=502(etudiant), 503(amis)
3/8/2022 22
Présentation générale d'UNIX
H) Recherche de fichiers ou de ch. de caractères (1)
Affichage des lignes d'un ou plusieurs fichiers contenant une ch. de car. :
grep [-options] expression fichier
grep "Cher Monsieur" textes/*.txt
textes/lettre.txt:Cher Monsieur,
grep "c.*e" textes/*.txt
textes/lettre.txt:Ravi d'avoir fait votre connaissance.
grep -l sucre /home/Clara/recettes/confitures/*
abricots.txt poires.txt
Comptage du nombre de lignes, de mots et/ou de caractère d'un fichier :
wc [-options] fichier
wc textes/lettre.txt
7 10 81 textes/lettres.txt
wc -l textes/lettre.txt
7 textes/lettre.txt
3/8/2022 23
Présentation générale d'UNIX
H) Recherche de fichiers ou de ch. de caractères
(2)
Affichage des fichiers répondant à un critère spécifié en option :
find repertoire [-options] -print
Options : -name -type
-user -group
-size -atime
-mtime -ctime
-perm -links
Exemples :
find programmes -name "*.c"
./programmes/progc/p1.c
./programmes/progc/p2.c
find . -type d -name "*s" -print
./programmes/
./textes/
3/8/2022 24
Présentation générale d'UNIX
I) Utilitaires classiques : éditeurs, compilateurs
Editeur de texte en standard sous Unix :
vi
Autres éditeurs :
emacs
gedit
xedit
Compilateurs :
cc
gcc
g++
f77
pc
3/8/2022 25
Présentation générale d'UNIX
J) Redirections et tubes (1)
Redirections des entrées-sorties :
0 1 1 : entrée standard (STDIN)
commande 2 : sortie standard (STDOUT)
3 : sortie des erreurs (STDERR)
2
Redirection de l'entrée standard :
commande < chemin
grep "tmp" < test
Redirection de la sortie standard :
commande > chemin
ls > test
3/8/2022 26
Présentation générale d'UNIX
J) Redirections et tubes (2)
Redirection de la sortie d'erreur :
commande 2> chemin
ls -l 2> /dev/null
Redirection de la sortie d'erreur vers la sortie standard :
commande 2>&1 chemin
cat fichier > copie 2>&1
Redirection de la sortie d'une commande vers l'entrée d'une autre (tube):
1 1
tube 0
0
commande1 commande2
2 2
commande1 | commande2
grep "Monsieur" *.txt | wc -l
3/8/2022 27
Présentation générale d'UNIX
Interprétation des
commandes
Affichage d'un prompt
Attente de la frappe d’une ligne et analyse de la ligne
Exécution de la ou les commande(s)
101110010
1100011101
1110010110
1111000101
110001011
ls -l
cat f
Le Shell mv fi
wc -l
cp te
grep
3/8/2022 28