Introduction au Système Linux
Introduction au Système Linux
1. Historique
2. Présentation de Linux
3. Structure de Linux
4. Le Principes de fonctionnement de Linux Été 1969 : Ken Thompson, aux BELL Laboratories, écrit la version
5. Le Shell Linux expérimentale d’Linux : système de fichiers exploité dans un
environnement mono−utilisateur, multi−tâche, le tout étant écrit en
6. Éléments d'administration de Linux
assembleur.
7. Les qualités du système Linux
8. Caractéristiques générales du noyau
1ère justification officielle : traitement de texte pour secrétariat.
9. Système de Gestion de Fichiers Puis : étude des principes de programmation, de réseaux et de
10. Processus dans Linux langages.
11. Implémentation des processus sous Linux
12. La gestion de la mémoire sous Linux
13. Entrées/Sorties dans Linux
2009/2010 Systèmes d'Exploitation Evolués 3 2009/2010 Systèmes d'Exploitation Evolués 4
1
1. Historique (2) 1. Historique (3)
2. Présentation de Linux
1. Historique (4)
Comment est maintenu le projet Linux ?
LINUX est une implantation libre des spécifications POSIX avec des
extensions System V (AT&T) et BSD (Berkeley),
2
2. Présentation de Linux 2. Présentation de Linux
Développement du noyau Linux Mode de numérotation
3
2. Présentation de Linux
3. Structure de Linux (1)
Distributions Linux
Une distribution est un noyau auquel des logiciels ont été ajoutés
Possibilités de créer des distributions dédiées à un usage Le noyau gère les tâches de base du système :
particulier
L'initialisation du système
La gestion des ressources
La gestion des processus
La gestion des fichiers
La gestion des Entrées/Sorties
4
3. Structure de Linux (4) 4. Le Principes de fonctionnement de Linux
X-Window
Shell
Noyau (Kernel)
BIOS
Périphériques
5
4. Le Principes de fonctionnement de Linux 4. Le Principes de fonctionnement de Linux
Processus init Services et démons
Lancement du système : boot -> init -> services Lancement du système : boot -> init -> services
6
4. Le Principes de fonctionnement de Linux
Les Scripts de lancement des services 5. Le Shell Linux(1)
- Connexion de pgms ensembles à travers les tubes (pipes) - Automatiser des traitements massifs ou un même programme
- A un langage simple pour écrire des scripts, doit être lancé des dizaines de fois.
7
5. Le Shell Linux(4) 6. Éléments d'administration de Linux
8
6. Éléments d'administration de Linux 6. Éléments d'administration de Linux
Notion de «fichier Spécial» Appellation des périphériques
Périphériques IDE
Principe :
Sous Unix tout est fichier
=> tous les périphériques
- disques
- clavier IDE 0 Master Slave
- souris /dev/hda /dev/hdb
- carte son
- ports d'E/S
- sockets réseau
- mémoire ...
IDE 1 Master Slave
…sont représentés par un fichier spécial dans le répertoire /dev /dev/hdc /dev/hdd
9
6. Éléments d'administration de Linux 6. Éléments d'administration de Linux
Partitionnement des disques Partitionnement/Filesystem
Arborescence du système
10
6. Éléments d'administration de Linux 6. Éléments d'administration de Linux
Filesystem Montage des périphériques
Dos FAT16
L'opération de montage des périphériques :
Windows 95 FAT16 DOS et Windows utilisent la notion d'unité logique pour fournir un
Windows 95 OSR2 FAT16, FAT32 accès
aux ressources de stockage
Windows 98 FAT16, FAT32
( A: -> floppy, C: -> disque dur, ... E: -> lecteur CD)
Windows NT4 FAT, NTFS version4
Tous les Unix utilisent la notion de montage :
Windows 2000/XP FAT, FAT16, FAT32, NTFS (versions 4 et 5)
– un périphérique est associé à un point de montage (répertoire) par une
Linux Ext2, Ext3, ReiserFS Linux Swap, FAT,NTFS «opération de montage» (commande mount)
– la commande mount peut être utilisée « à la main »
MacOS HFS, MFS
exemple :
SGI IRIX XFS mount /dev/hda1 /
FreeBSD UFS
mount /dev/sda1 /mnt/removable
Sun Solaris UFS -tous les périphériques montés bénéficient du « cache disque »
IBM AIX JFS
11
8) Caractéristiques générales du
noyau (1) 8) Caractéristiques générales du noyau (2)
12
9. Système de Gestion de Fichiers (2) 9. Système de Gestion de Fichiers (3)
- fichiers -
-rw-r--r--
user
others
2009/2010 Systèmes d'Exploitation Evolués 49 2009/2010 Systèmes d'Exploitation Evolués 50
13
9. Système de Gestion de Fichiers (6) 9. Système de Gestion de Fichiers (7)
Boot bloc
Attributs Bloc
utilisé au chargement du système. d’indirection
simple
Super Bloc
Bloc
Adresses d’indirection
il contient toutes les informations générales sur le blocs double
disque logique.
Bloc
Inode list d’indirection
triple
14
9. Système de Gestion de Fichiers (10) 9. Système de Gestion de Fichiers (11)
Les 10 premières adresses sont des adresses qui pointent blocs directs : 10 blocs,
directement sur les blocs de données du fichier
bloc indirect_1 : 256 blocs,
Les autres sont des adresses indirectes vers des blocs de bloc indirect_2 : 256 2 blocs,
données contenant des adresses bloc indirect_3 : 256 3 blocs.
15
10. Processus dans Linux (2) 10. Processus dans Linux (3)
1: le processus créé par fork a acquis les ressources nécessaires à son
exécution
2 : le processus vient d'être élu par l'ordonnanceur Un processus comporte du code machine exécutable, une zone
3 : le processus revient d'un appel système ou d'une interruption mémoire (données allouées par le processus) et une pile (pour les
4 : le processus a réalisé un appel système ou une interruption est variables locales des fonctions et la gestion des sous-programmes)
survenue
5 : le processus se met en attente d'un événement (libération de
ressource, terminaison de processus par wait). Il ne consomme pas de
temps UC
6 : l'événement attendu par le processus s'est produit
7 : conséquence d'un signal particulier
8 : réveil du processus par le signal de continuation SIGCONT
9 : le processus s'achève par exit, mais son père n'a pas pris
connaissance de sa terminaison. Il ne consomme pas de temps UC et ne
mobilise que la ressource table des processus
10. Processus dans Linux (4) 10. Processus dans Linux (5)
La zone de données contient les variables globales ou Le nombre des emplacements dans cette table des processus
statiques du programme ainsi que les allocations
dynamiques de mémoire. est limité pour chaque système et pour chaque utilisateur.
16
10. Processus dans Linux (6)
10. Processus dans Linux (8) 10. Processus dans Linux (9)
Création de processus
Création de processus
Sous Linux la création de processus est réalisée par
Pour chaque commande lancée (sauf les commandes l’appel système :
internes), le shell crée automatiquement un nouveau
int fork(void)
processus.
Tous les processus sauf le processus d’identification 1
Il y a donc 2 processus. Le premier, appelé processus (init) sont crées par un appel fork
père, exécute le programme Shell, et le deuxième, appelé Le processus qui appelle le fork est appelé processus
processus fils, exécute la commande. père Le nouveau processus est appelé processus fils
17
10. Processus dans Linux (10) 10. Processus dans Linux (11)
Création de processus
18
10. Processus dans Linux (14) 10. Processus dans Linux (15)
10. Processus dans Linux (16) 10. Processus dans Linux (17)
19
10. Processus dans Linux (18) 10. Processus dans Linux (19)
Arborescence de processus
• Infos retournées par ps: temps CPU utilisé
[user01:~] ps
PID TT STAT TIME COMMAND
3899 p1 S 0:00.08 -zsh
numéro de 4743 p1 S+ 0:00.14 emacs
processus 4180 std S 0:00.04 -zsh commande
exécutée
état du
processus: R actif
T bloqué
terminal
P en attente de page
associé
D en attente de disque
Pour visualiser les processus que vous avez lancé, tapez la S endormi
Commande : ps IW swappé
2009/2010 Systèmes d'Exploitation Evolués 77 2009/2010 Systèmes d'Exploitation Evolués
Z tué 78
10. Processus dans Linux (20) 10. Processus dans Linux (21)
Les processus Linux communiquent avec deux mécanismes : Le système assure la synchronisation de l’ensemble dans le
sens où :
1. En passant des messages à travers les tubes
(pipelines) il bloque le processus lecteur du tube lorsque le tube
est vide en attendant qu’il se remplisse (s’il y a encore
des processus écrivains);
20
10. Processus dans Linux (22) 10. Processus dans Linux (23)
21
10. Processus dans Linux (26) 10. Processus dans Linux (27)
11. Implémentation des processus sous Linux (1) 11. Implémentation des processus sous Linux (2)
La structure utilisateur : swappée ou paginée quand le Si le segment de page est partagé, le pointeur adresse la
table partagée.
processus associés n’est pas en mémoire (pour
économiser la mémoire). Si le processus n’est pas en mémoire, on trouve des
informations permettant d’en retrouver les éléments sur
disque
2009/2010 Systèmes d'Exploitation Evolués 87 2009/2010 Systèmes d'Exploitation Evolués 88
22
11. Implémentation des processus sous Linux (3) 11. Implémentation des processus sous Linux (4)
11. Implémentation des processus sous Linux (5) 11. Implémentation des processus sous Linux (6)
23
11. Implémentation des processus sous Linux (7) 11. Implémentation des processus sous Linux (8)
12. La gestion de la mémoire sous Linux (1) 12. La gestion de la mémoire sous Linux (2)
Tout processus Linux est associé à un espace d’adressage en Pour partager un programme (éditeur de texte) entre
trois zones : plusieurs utilisateurs, quelques version Linux ont la notion de
segment de texte partagé (shared text segment)
Le segment de texte : instructions exécutables du
programme (lecture seule) Data (Le segment de données ) et stack ne sont jamais
partagées
Le segment de données (initialisées ou non initialisées
BBS) : variables, vecteurs, etc. peut être changé, peut
changer de taille (appel bib. C : malloc)
24
12. La gestion de la mémoire sous Linux (3) 12. La gestion de la mémoire sous Linux (4)
12. La gestion de la mémoire sous Linux (5) 12. La gestion de la mémoire sous Linux (6)
Fonctionnement du Swapper
Fonction de pagination
Swapper : swap in (toutes les 4-5 secs) + swap out (à la Toutes les 250 msec. le daemon (démon) est activé
demande)
Algorithme :
Changement de comportement quand :
nombre de cadres libres ≥ lotsfree? (paramètre du système,
plus de processus swappés typiquement le ¼ de la mémoire)
si oui : sleep
trop de processus en mémoire (Thrashing : S'il y a trop de
défauts de page, un processus peut passer plus de temps en attente de pagination
sinon : transférer des pages sur le disque
qu'en exécution )
but : avoir des pages libres constamment
min. de 2 sec. en mémoire avant de swapper un processus
Algorithme de traitement de défaut basé : sur “seconde
chance” (ou “Clock Algorithm”)
25
12. La gestion de la mémoire sous Linux (7) 12. La gestion de la mémoire sous Linux (8)
garde 2 aiguilles,
les 2 passes prennent trop de temps
au début, met à 0 le bit d’usage du cadre pointé par l’aiguille en avant,
Les cadres sont examinés selon une liste circulaire (contour de l’horloge) : puis vérifie le bit d’usager du cadre pointée par l’aiguille en arrière,
passage 1 : lorsqu’une page est pointée par l’aiguille de l’horloge, son bit avance les deux aiguilles
d’usage est mis à 0 (cleared)
passage 2 : une page non accédée aura toujours son bit d’usage 0 et donc
sera libérée (mise sur la liste des cadres libres sans être effacée)
2009/2010 Systèmes d'Exploitation Evolués 101 2009/2010 Systèmes d'Exploitation Evolués 102
12. La gestion de la mémoire sous Linux (10) 12. La gestion de la mémoire sous Linux (11)
2009/2010 Systèmes d'Exploitation Evolués 103 2009/2010 Systèmes d'Exploitation Evolués 104
26
13. Entrées/Sorties dans Linux (1)
27