hiérarchie de processus,
processus
recouvrement
● un programme: un fichier sur disque
● un processus (processus fils) est toujours
créé par un autre processus (processus
● un processus: un programme en cours père):
d'exécution – fork: création d'une copie du processus père
– le code exécutable du programme – exec: recouvrement par le processus fils
– les données de l'instance en train de s'exécuter bash fork bash
PID=708 PID=917
PPID=432 PPID=708
● programme réentrant:
– deux instances du même programme partagent
exec
le même code exécutable
bash bash
– elles ont par contre chacune leurs données PID=708 ls
PID=708
PPID=432 PID=917
PPID=708
● processus système (daemon)/utilisateur PPID=708
Hiérarchie de processus pstree
● tout processus a un processus parent sauf le
processus initial
● processus initial : init (pid 1)
● arrêter la machine: demander à init d'arrêter
tous ses processus fils
caractéristiques des processus commande ps
● statiques ● 2 syntaxes (Linux):
– PID – syntaxe Systeme V: option précédées de -
– PPID – syntaxe BSD: options NON précédées de -
– propriétaire réel (UID, GID)
– quelques options SysV:
– terminal d'attache pour les entreés-sorties
● -e ou -A: tous les processus
● dynamique
–
● -a: tous les processus associés à un terminal
propriétaire effectif (EUID, EGID)
– priorité
● -H: représentation hiérarchique (forêt)
– nice
● -f: format complet;-l: format long (encore plus détaillé)
– consommation cpu/mémoire ● -o: pour modifier le format de sortie (cf manuel)
– dossier de travail ● -g, -p, -t, -u: n'affiche que les processus des groupe
(-g), processus (-p), terminaux (-t) ou utilisateurs (-u)
listés.
commande ps: exemple Etat d'un processus
● R: exécution
● Z: zombi: il est mort mais son père ne le sait
pas
● D: le processus ne peut être interrompu
● S: suspendu
● T: terminé
gestion de processus & shell Signaux
● commande & : lancement de commande en ● permettent au système de communiquer
tâche de fond avec les processus
● bg: reprise de commande en tâche de fond ● signaux utiles
● fg: reprise de commande en avant plan – STOP: suspendre
– CONT: reprendre
● jobs: liste des commandes lancées
– HUP (1): souvent: relecture configuration
● Ctrl-C: arrêt (SIGTERM) du processus
– KILL(9): tuer sans possibilité de traitement
● Ctrl-Z: suspension (SIGSTOP) du processus – INT(2): équivalent à Ctrl-C: interruption gérable.
permet au processus de gérer son interruption
● kill -signal PID
priorité des processus code de retour
● l'exécution des divers processus est gérée ● valeur à laquelle le processus père peut
par un ordonnanceur (scheduler) accèder
● une priorité est définie dynamiquement ● 0: terminaison normale
● but: que chaque processus puisse avancer
son exécution tout en respectant des
● autre valeur: situation anormale
priorités
● nice/renice: permet d'influer sur la priorité
des processus
– de 0 à 19 pour un utilisateur
– de -20 à 19 pour root
– plus le chiffre est élevé, moins le processus est
prioritaire
systèmes de fichiers acl POSIX
● différents systèmes de fichiers: ● dans une version ultérieure de ce document
– exemples ● cas particuliers:
– journalisation – linux debian
– création d'un système de fichier – FreeBSD
– exemple sous linux
● partition
– associée à un système de fichier et un point de
montage
– de swap
● gestionnaire de volume logique
– développer LVM sous Linux
Systèmes de gestion de fichiers
SGF (suite)
(SGF)
● SGF: mode d'organisation et de stockage ● Les SGF unix fournissent un sous-ensemble
des données sur disque; commun de fonctionnalités: celui dont nous
● Exemples: FAT32, NTFS, ext2fs, ext3fs, parlerons.
reiserfs, UFS, ... ● Chaque SGF peut fournir plus que ce sous-
● Les SGF ont des propriétés et fournissent ensemble
des services variés ● Fichier unix: fichier disque mais aussi
● Exemple: ressource du système (pilote de
périphérique, terminal, mémoire, ...)
– les SGF Unix (ext2fs, UFS, ...) : droits sur les
– /dev/hda1 : partition 1 du disque 1 (Linux)
fichiers.
– /dev/kmem: mémoire virtuelle du noyau
– FAT32: pas de droits d'accès aux fichiers
Fichiers SGF : inode
contenu d'un dossier: Inode
●(4257, fichier)
●(15065,fichier2)
●
●uid, gid,rwxr-xr-x
taille, nb liens, [acm]time
● Inode: attributs + localisation des blocs
●(20435, dossier2)
●adresse des blocs données
Inode
contenant les données du fichier
●uid, gid,rwxr-xr-x ● Inode:
●taille, nb liens, [acm]time
●adresse des blocs données – Id. du disque logique où est le fichier,
– numéro du fichier sur ce disque
Inode – Type de fichier et droits d'accès
●uid, gid,rwxr-xr-x
– Nombre de liens physiques
●taille, nb liens, [acm]time
●adresse des blocs données
– Propriétaire, groupe propriétaire
– Taille
– Dates :
● De dernier accès (y compris en lecture): atime
●Contenu de fichier Contenu de fichier2 Contenu de dossier2 ● Date de dernière modification des données: mtime
bla bla bla bla ●(1234, fichier3)
bla bla bla bla ●(...) ● Date de dernier modification de l'inode: ctime
bli bli bli bli
Dossier/répertoire Inodes/Nom: conséquences
● Deux grandes classes de fichiers : ● Créer/détruire un fichier: ajouter/retirer un
– Fichier ayant un contenu sur disque : fichiers couple dans le dossier
réguliers, dossiers, liens symboliques, tubes
● opération nécessitant un droit au niveau du
– Ressources : Fichiers spéciaux (pilotes de
dossier pas du fichier
périphériques, ràf, ...)
● Le système travaille avec des No d'inode,
l'utilisateur avec les noms de fichiers :
● Dossiers: listes de couples (nom, No inode) – Ce sont les dossiers qui permettent de faire le lien
● Un couple est appelé « lien physique » entre les deux
– On trouve le coupe (nom, inode) du dossier où est le
(hardlink)
fichier
● Du point de vue de l'utilisateur, un dossier – Pour trouver ce dossier, on applique le même
contient des fichiers (fichiers réguliers, principe (pour Unix, un dossier est aussi un fichier)
– voir plus loin Arborescences/algo de recherche
dossiers, ...).
Fichiers: résumé: Droits d'accès aux fichiers
● 3 types d'accès: lecture (R), écriture (W) et
● ce que l'utilisateur perçoit comme un fichier exécution (X)
identifié par un nom peut se décomposer en trois Objet/Droit R (lecture)
fichier régulier lire le contenu
W (écriture)
modifier le fichier
X (exécuter)
exécuter le fichier
notions sous unix : modifier le contenu du utiliser le dossier
lister le contenu du dossier (y compris dans un chemin ou s'y
– un inode: informations (taille, dates, uid, gid, droits) dossier dossier destruction de fichier) positionnner
et localisation des données sur disque
– le contenu du fichier: les données qui y sont stockées
● 3 classes d'utilisateurs: le propriétaire du
fichier, le Groupe du propriétaire du fichier,
– un lien physique: associe un nom à un inode. Un
même inode peut avoir plusieurs lien.
les Autres utilisateurs.
type fichier Propriétaire Groupe du proprio Autres utilisateurs
- R W X R - X R - X
● informations dans l'inode, affichage avec
« ls », changement avec chmod, chgrp et
chown
Droits d'accès (2): suid, sgid,
Commandes de base: chmod
sticky bit
● 3 autres « droits » spéciaux:
● chmod [-R] mode fichier ...
– bit SUID: le programme s'exécute avec les droits
de son propriétaire (au lieu de ceux de ● -R: fichier est un dossier, chmod agit
l'utilisateur qui le lance) récursivement sur fichier et sur son contenu
– bit SGID: le programme s'exécute avec les droits ● mode:
du groupe propriétaires du fichier
– forme numérique: 644
– sticky bit :
● pour u: 400 (r), 200 (w) et 100 (x)
● sur un fichier exécutable : (obsolète) maintient le
fichier en mémoire après l'exécution pour diminuer le
● pour g: 40 (r), 20 (w) et 10 (x)
temps de la prochaine invocation ● pour o: 4 (r), 2 (w) et 1 (x)
● sur un dossier: seul le propriétaire du fichier a le droit – forme symbolique: [ugo][+-=][rwxXstguo]
de le supprimer. Exemple: /tmp/
chmod: exemples commande de base: umask
● chmod ràf ● définit les droits d'accès par défaut d'un
fichier
● les droits sont le complément du paramètre
d'umask: on laisse tout sauf les droits
précisés
● Exemple:
– umask 002 : mode par défaut: RWXRWXR-X (tout sauf
002)
– umask 026: mode par défaut: RWXR-X--X (tout sauf
026)
– umask a=rx,gu+w: mode par défaut: RWXRWXR-X
– umask -S : affiche le l'état courant sous forme
symbolique : u=rwx,g=rwx,o=rw dans notre exemple.
Commandes de base: chown,
chown/chgrp: exemples
chgrp
● chown -R [-H | -L | -P] proprio[:groupe] fichier
● chgrp -R [-H | -L | -P] groupe fichier ...
Commandes de base: ls Commandes de base: cat
Commande de base: stat Exemples
● Stat fichier (noter ctime, mtime et atime)
● Cat fichier
● Stat fichier (atime a changé)
● Chmod fichier
● Stat fichier (ctime a changé)
● Modif fichier
● Stat fichier (mtime a changé)
Arborescence arborescence
● Sous unix, on a une arborescence unique /
2
(donc pas de C:\, D:\, ...comme sous
windows)
usr home var
● Le disque système contient la racine absolue 1432 2 728
/
● toute l'arborescence est sous cette racine
absolue bin local petit spool log
4562 3721 708 1823 1127
● Les systèmes de fichiers des autres
partitions s'intègrent dans l'arborescence en
prenant la place d'un dossier existant
● la racine d'un système de fichier a 2 comme stat
7812
find
634
numéro d'inode
monter un système de fichier
algo de recherche
● commande mount/umount
● /etc/fstab
● /usr/bin/stat
– des associations système de fichier/point de
● algo de localication:
– examiner le contenu du dossier d'inode 2 pour
montage
–
trouver le No d'inode du dossier usr : 1432 par
notamment: les partitions à monter au démarrage
exemple.
du système
– examiner le contenu de dossier d'inode 1432
– l'ordre des lignes est important pour mount, umount pour trouver le No d'inode du dossier bin. 4562
et fsck par exemple
– syntaxe: periph pointDeMontage typeSGF options – examiner le contenu de dossier d'inode 4562
fsfreq fspassNo pour trouver le No d'inode du fichier stat. 7812
– demo: exemple de fstab par exemple
● fsck, df, du – exécuter le fichier d'inode 7812
Chemin Commandes de base:
● /usr/bin/stat: chemin absolu du fichier stat ● pwd : indique le dossier courant
● chemin absolu: chemin depuis la racine ● cd : changer de dossier courant
absolue ● mkdir: pour créer un dossier
● notion de dossier courant ● rmdir: détruit les dossiers vides
● chemin relatif: chemin depuis le dossier
courant
commande de base: cp Commandes de base: cp
● copie des données d'un fichier (source) dans
lien
Inode Données un autre (cible) :
(1234, fichier1)
– la cible n'existe pas : création d'un nouvel inode
cp et recopie des données du fichier
– la cible existe: inode destination inchangée,
lien recopie des données du fichier dans la cible
(2317, fichier2) Inode Données
cp fichier1 fichier2
cp (2) cp et liens physiques
● gnu cp: en standard sous Linux, installable
facilement ailleurs lien
Inode Données
(1234, fichier1)
● fournit des options non standard mais
pratiques cp
lien
● ràf (2317, fichier2)
Inode Données
lien
(2317, fichier3)
cp fichier1 fichier2
Commandes de base: rm ● rm :exemples
● suppression d'un lien d'un fichier ou plusieurs
fichiers: rm [-fiRr] fichier1 ...
● options:
-i: demande de confirmation pour tout fichier à
supprimer (aff sur stderr et lecture sur stdin)
-f: supprime les messages d'erreur lorsqu'un
fichier n'existe pas et supprime la demande
d'acquittement si l'utilisateur de rm n'a pas les
droits d'écriture sur le fichier à supprimer
-R ou -r: supprime récursivement le contenu d'un
dossier avant d'appliquer rmdir au dossier.
Commandes de base: mv mv: exemples
● mv [-fi] source destination ● mv [-fi] source destination
– renomme un lien. Source et fichier sont des – renomme un lien. Source et fichier sont des
fichiers réguliers fichiers réguliers
● mv [-fi] source1 ... destination ● mv [-fi] source1 ... destination
– renomme les sources en les déplaçant dans le – renomme les sources en les déplaçant dans le
dossier destination dossier destination
● la commande fonctionne aussi si sources et ● la commande fonctionne aussi si sources et
destinations sont dans des systèmes de destinations sont dans des systèmes de
fichiers différents. fichiers différents.
● la seconde forme est utilisée si la destination ● la seconde forme est utilisée si la destination
est un dossier existant est un dossier existant
Commandes de base: ln
● ln fichier nouveau_lien_physique
● ln -s fichier lien_symbolique
● options:
– -s: crée un lien symbolique
– -f: force la création même si la destination existe
déjà
– --: fin des options (pour permettre le traitement
d'un fichier dont le nom commence par « « - »