55
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #2: Systèmes d’exploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge - Mai 2014

Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Embed Size (px)

Citation preview

Page 1: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Systèmes d’exploitation et programmation de systèmes

-GPA435-

Cours #2: Systèmes d’exploitation UNIX / Linux

Enseignant: Jean-Philippe Roberge

Jean-Philippe Roberge - Mai 2014

Page 2: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Planification du cours #2

Petite révision du cours #1: Évolution des systèmes d’exploitation (S.E.)

Historique des S.E. Structure des S.E. modernes Tendance des S.E. modernes (aujourd’hui)

Vos intérêts et attentes Théorie du cours #2 - Systèmes d’exploitation UNIX /

Linux Terminal de commande et syntaxe des commandes Documentation standard Structure des fichiers Quelques (petits) exercices 2

Jean-Philippe Roberge - Mai 2014

Page 3: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 20143

Introduction à la matière (1)

Système d’exploitation:

Une suite de programmes qui gère l’utilisation des ressources d’un ordinateur (ou système ordiné) et qui fournit des services aux applications.

Famille de systèmes d’exploitation:

Unix, Linux, Windows NT, Mac OS

Exemples de S.E.:

Ubuntu 10.04, Mac OS X v10.5, Windows Vista…

Systèmes d’exploitation mobiles:

Android Vx.x (Noyau Linux), iOS Vx.x, Windows Phone 7, etc…

http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Operating_system_placement.svg/165px-Operating_system_placement.svg.png

Page 4: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 20144

Évolution de S.E. (1)

1-Traitement en série: Un programme à la fois, généralement écrit en langage machine. Inefficace car l’ordinateur est monopolisé par un seul programmeur.

2-Traitement par lots: Concept de « moniteur »: un programme qui veille sur les

programmes (jobs) des utilisateurs. Chaque utilisateur soumet leur tâche à l’opérateur de

l’ordinateur: cartes perforées, rubans magnétiques; regroupement des tâches; exécution séquentielle des regroupements.

Par contre, une tâche peut monopoliser longtemps le processeur. Attendre la fin des opérations E/S; Les rubans magnétiques avaient un temps d’accès très long.

Pour augmenter le rendement de l’ordinateur récupérer ce temps perdu!

Page 5: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 20145

Évolution de S.E. (5)

3-Traitement par lots multiprogrammé: Multiprogrammation exécuter une autre tâche dans les portions de

temps où le processeur est inactif. (Plus d’un programmes) Exige cependant la coopération du matériel:

Coopération du matériel interruptions matérielles. Création d’un module MM (Memory Management). Création d’un module d’ordonnancement des tâches.

4-Traitement en temps partagé: Exemple: le CTSS (Compatible Time-Sharing System) de MIT Idée de base le blocage et le redémarrage périodique des tâches à

l’aide d’une interruption cadencée par une source stable. Tour à tour, le moniteur passe le contrôle à chacune des tâches en

mémoire. Chaque tâche bénéficie alors du même temps d'utilisation du processeur.

Permet à plusieurs utilisateurs de démarrer des tâches sur un même ordinateur, au moyen de terminaux, et réduit le temps de réponse interactive.

Page 6: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 20146

Évolution de S.E. (9) 5- Systèmes multi-tâches et multi-utilisateurs:

Environnement multiprogrammé + l’interactivité des systèmes en temps partagé. Multitâche multiprogrammation & Multi-utilisateur temps

partagé. MULTICS (MULTiplexed Information and Computer Service) du MIT,

Bell, General Electric en 1969. MULTICS avait introduit plusieurs innovations: découplage entre le S.E. et le matériel mémoire virtuelle: Pagination de la mémoire; liaison dynamique. système de fichiers hiérarchique. MULTICS avait introduit le concept de

processus: 1) programme exécutable; 2) données associées au

programme; 3) contexte d’exécution du

programme.

Page 7: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Structure des systèmes d’exploitation modernes (1)

Jean-Philippe Roberge - Mai 20147

D’abord, cette structure est organisé en couches hiérarchiques:

M atériel

P ro cessus p rim itif s

M ém o ire seco n d aire

M ém o ire v irtuelle

C o m m un icatio n in ter- p ro cessus

Systèm e d e fi ch iers

G estio n d es p érip h ériques

G estio n d es p ro cessus u tilisateurs

I n terp réteur d e co m m an d es

R o utin es d e gestio n d es o b jets

D isques reliés lo calem en t

P ip es, m ém o ire p artagée, etc.

T erm in al, im p rim an te, etc.

ex : liste d es p ro cessus, etc.

Nous allons approfondir ces couches dans les transparents qui suivent…

Page 8: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Structure des systèmes d’exploitation modernes (2)

Jean-Philippe Roberge - Mai 20148

1 -Composants matériels (Processeur, mémoire, périphériques, écran, etc…):

Processeurs instructions privilégiées;

adressage segmenté;

système de signaux.

2- Mémoire virtuelle:

Donner l’illusion au programme, qu’il travaille avec de la mémoire contigüe.

Protection contre la corruption des données

Interruption logicielle

Page 9: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 20149

Structure des systèmes d’exploitation modernes (3)

3- Système de fichiers

organisation cohérente de la mémoire secondaire;

système de fichiers hiérarchique arbre inversé;

sous-répertoires sont des enfants d’un répertoire racine;

système de fichiers hiérarchique un répertoire peut contenir d’autres répertoires.

R ép erto ire racin e

So us- rép erto ireR ép erto ire co uran t

So us- rép erto ire sp écial(L ien v irtuel)

chemin absoluchemin absoluchemin relatifchemin relatifparcours non linéaireparcours non linéaire

Pi Pn

Page 10: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 201410

Structure des systèmes d’exploitation modernes (6)

4- Communication inter-processus

Trois points importants:

Page 11: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

C onsom m ateurP roducteur

T uyau

L a lecture en lèv eles d o n n ées d utuyau . L a lectured 'un tuyau v id em et en atten te lep ro cessusim p liqué

L 'écriture p laceles d o n n ées

d an s le tuyau .L 'écriture à untuyau p lein m et

en atten te lep ro cessusim p liqué

P ro to co le F I F O

11

mémoire partagée; tuyaux (pipes); messages.

Structure des systèmes d’exploitation modernes (8)

Une plage de mémoire (physique ou virtuelle) partagée entre plusieurs processus

Structure de données FIFO. Leurs accès sont gérés par le S.E.

Sans liens de communication permanents. Les messages sont déposés dans la queue de message des processus. Peuvent donc réaliser des protocoles autres que le FIFO.

4a - Transfert des données entre processus:

Jean-Philippe Roberge - Mai 2014

Page 12: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

12

4b Synchronisation des processus: fonctions attendre() et signal(); variables sémaphores; instructions atomiques.

Fonctions de synchronisation qui modifient une variable sémaphore

Variable entière n’admettant que trois opérations: i) initialisation à une valeur non négative; ii) incrémentation de sa valeur; iii) décrémentation de sa valeur. Opérations réalisées par des instructions atomiques.

Des instructions exécutées en séquence sans interruption par aucune autre instruction du processeur.

Structure des systèmes d’exploitation modernes (9)

Jean-Philippe Roberge - Mai 2014

Page 13: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

13

5 - Modèle des processus:

N o uv eau P rêt E x écutio n So rtie

B lo qué

T em p s écou lé

R ép a rti tion

E n a tten te

libérat

ionA d m ission R etra i t

Processus créé mais pas encore exécutable

Processus prêt pour l’exécution

Processus en exécution dans le processeur

Processus en suspension: attendant l’arrivée d’un événement ou la fin d’une opération

Arrêt du processus: fin de son exécution ou causé par une condition d’erreur

Structure des systèmes d’exploitation modernes (11)

Jean-Philippe Roberge - Mai 2014

Page 14: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

14

6 - Interpréteur de commandes

Un processus utilisateur;

Permet l’exécution de programmes;

Manipulation des fichiers;

Accéder aux périphériques de l’ordinateur;

Automatisation des procédures par fichiers de commandes;

Langages de programmation « shell ».

Jean-Philippe Roberge - Mai 2014

Structure des systèmes d’exploitation modernes (12)

Page 15: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 201415

Cours #2

Page 16: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

16

Tendances des S.E. modernes (1)

Tendances des systèmes d’exploitation modernes:

Architecture micro-noyau (microkernel);

Exécution multifilaire (multithreading);

Traitement parallèle symétrique (symmetric multiprocessing);

Système d’exploitation pour processeurs multi-cœurs.

Jean-Philippe Roberge - Mai 2014

Page 17: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

17

1 - Architecture micro-noyau:

changement important dans l’organisation interne du S.E.;

Réduire le noyau: seulement quelques processus importants sont assignés au noyau;

les autres services processus utilisateurs appelés « serveurs »;

séparation explicite entre le noyau d’un S.E. et le développement des serveurs;

Jean-Philippe Roberge - Mai 2014

Tendances des S.E. modernes (2)

Noyau: Partie fondamentale du système d’exploitation, il s’agit de la base, c’est-à-dire l’ensemble des processus qui gèrent les ressources de l’ordinateur. Il permet au matériel et au logiciel de communiquer ensemble.

Page 18: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 201418

Comparaison entre noyau « monolithic » et micro-noyau:

Tendances des S.E. modernes (3)

Page 19: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

19

Exemple du concept de micro-noyau:

M icro - n o yauO rd in ateur A

Serv eur d u systèm ed e fi ch iers

(O rd in ateur B )

Serv eur d u systèm ed e fi ch iers

(O rd in ateur A )

M icro - n o yauO rd in ateur B

Serv eur d 'in terfacegrap h iq ue

(O rd in ateur A )

Serv eur d 'in terfacegrap h iq ue

(O rd in ateur B )

Jean-Philippe Roberge - Mai 2014

Tendances des S.E. modernes (4)

Page 20: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

20

2 - Exécution multi-fils:

un processus est divisé en plusieurs chemins d’exécution simultanée;

fil d’exécution unité de travail interruptible et séquentielle;

fil d’exécution ne possède pas de contexte d’exécution mais utilise celui du processus père;

Mémoire utilisée, l’état de la pile programme, les ports d’E/S associés, l’état des registres du processeur, etc.

Modèle de programmation concourante

Jean-Philippe Roberge - Mai 2014

Tendances des S.E. modernes (5)

Page 21: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

21

2 - Exécution multi-fils (suite) : un processus est une collection de fils d’exécution; fil d’exécution principal père de tous les fils d’exécution

créés;

F il p rin cip al

F il # 1 F il # 3

F il # 2 F il # 4 F il # 5

F il # 6

F il # 7

F in d e l'ex écu tio n d u fi l d 'ex écu tio n

Syn ch ro n isatio n d es fi ls d 'ex écu tio n

P ro cessus

Jean-Philippe Roberge - Mai 2014

Tendances des S.E. modernes (6)

Page 22: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

22

3 - Traitement parallèle symétrique: réalisation utilisant l’exécution multifilière; système à n processeurs (n 256); mémoire commune accessible par tous les processeurs; tous les processeurs sont gérés de la même façon et jouent le même

rôle; ordonnancement des fils d’exécution dans tous les processeurs libres.

Jean-Philippe Roberge - Mai 2014

Tendances des S.E. modernes (7)

Page 23: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

23

3 - Traitement parallèle symétrique (suite) :

Nouvelle exigence «extensibilité» du S.E.;

Application du concept de micro-noyau;

S.E. décentralisé;

Ordonnancement des fils d’exécution réalisé localement par chacun des processeurs;

Collaboration entre les processeurs;

Une réalisation plus complexe du S.E.

Jean-Philippe Roberge - Mai 2014

Tendances des S.E. modernes (8)

Page 24: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

24

4 - Système d’exploitation réparti:

Système d’exploitation qui gère une grappe d’ordinateurs

Complexe, doit gérer la communication et l’allocation des ressources

Méta-SE: Système d’exploitation qui gère d’autres SE, sur des machines locales

5 - Conception orientée des SE: Profiter des avantages de la programmation orienté-objet

Concept d’héritage et de spécialisation

Jean-Philippe Roberge - Mai 2014

Tendances des S.E. modernes (9)

Page 25: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 201425

En parlant d’une grappe d’ordinateurs: http://www.directioninformatique.com/luniversite-mcgill-presente-son-superordinateur-en-grappe/11638

Tendances des S.E. modernes (10)

Page 26: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Génie de la production automatiséeGénie de la production automatisée

GPA435 Système d’exploitation et GPA435 Système d’exploitation et programmation de systèmeprogrammation de système

Systèmes d’exploitation LinuxSystèmes d’exploitation Linux20142014

Page 27: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Systèmes d’exploitation Linux (1)Systèmes d’exploitation Linux (1)

• Commandes LINUXCommandes LINUX• Des programmes écrits en C;Des programmes écrits en C;• Des fonctions internes à l’interpréteur de Des fonctions internes à l’interpréteur de

commandes.commandes.

• Pourquoi les apprendre?Pourquoi les apprendre?• Elles représentent un système logique Elles représentent un système logique

rigoureux;rigoureux;• Elles exigent une démarche systématique tout Elles exigent une démarche systématique tout

comme la maîtrise d’une langue;comme la maîtrise d’une langue;• À travers elles, nous solutionnerons des À travers elles, nous solutionnerons des

problèmes en ingénierie d’une façon logique et problèmes en ingénierie d’une façon logique et systématique.systématique.

27

Page 28: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Terminal LinuxTerminal Linux• Habitat pour l’interpréteur de commande.Habitat pour l’interpréteur de commande.

28

L’invite affichée par l’interpréteur de

commande.

Représentation graphique d’un

terminal.

Terminal de commande (1)Terminal de commande (1)

Page 29: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Format des commandesFormat des commandes• Une convention bien établie.Une convention bien établie.

twong@tony-ubuntu-12:~$ commande [—option] twong@tony-ubuntu-12:~$ commande [—option] [paramètre][paramètre]

29

L’invite affichée par l’interpréteur de commande.

L’historique des commandes

lancées.

Une commande peut avoir des options et paramètres. Les options sont toujours précédées d’un tiret (—). Les crochets ([]) signifient qu’ils ne sont pas obligatoires.

Syntaxe des commandes (1)Syntaxe des commandes (1)

Page 30: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Comment connaître les options et Comment connaître les options et paramètres des commandes?paramètres des commandes?• L’aide enligne est divisée en sections:L’aide enligne est divisée en sections:

30

Section Sujets

1 Commandes et programmes

2 Interfaces de programmation (API)

3 Fonctions des bibliothèques du langage C

4 Interfaces des périphériques et du réseau

5 Formats de fichiers

6 Jeux et application de démonstration

7 Divers (ensemble de macros, etc.)

8 Commandes pour l’administration du système

GPA435GPA435

Documentation standard (1)Documentation standard (1)

http://www.linuxmanpages.com/

Page 31: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Certains noms de commande Certains noms de commande apparaissent dans plus d’une sectionapparaissent dans plus d’une section• Par exemple la commande Par exemple la commande rmdirrmdir (remove (remove

directory) apparaît dans la section 1 et dans la directory) apparaît dans la section 1 et dans la section 2 de l’aide enligne;section 2 de l’aide enligne;o rmdirrmdir de la section 1 est une commande de de la section 1 est une commande de

l’interpréteur de commande;l’interpréteur de commande;o rmdirrmdir de la section 2 est une fonction de l’interface de la section 2 est une fonction de l’interface

de programmation du système LINUX.de programmation du système LINUX.• Pour pouvoir faire la distinction, on écrira Pour pouvoir faire la distinction, on écrira

parfois:parfois:o rmdir(1)rmdir(1) pour indiquer la commande rmdir expliquée pour indiquer la commande rmdir expliquée

dans section 1;dans section 1;o rmdir(2)rmdir(2) pour indiquer la fonction de programmation pour indiquer la fonction de programmation

rmdir expliquée dans la section 2.rmdir expliquée dans la section 2. 31

Documentation standard (2)Documentation standard (2)

Page 32: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Utiliser l’aide enligne via Utiliser l’aide enligne via manman• manman est elle-même une commande! est elle-même une commande!• Il existe une page d’aide enligne sur Il existe une page d’aide enligne sur man;man;• manman possède donc des options et des possède donc des options et des

paramètresparamètres

man [—option] [paramètre] nom_commandeman [—option] [paramètre] nom_commande

Quelques options:Quelques options:o——s num_sections num_section

num_section est le numéro de section (1 à 8)num_section est le numéro de section (1 à 8)o——M cheminM chemin

Indique le chemin du répertoire contenant les pages Indique le chemin du répertoire contenant les pages d’aide enligned’aide enligne

32

Démonstration de la Démonstration de la commandecommande

Analo

gie

: le

mot

« d

icti

onn

air

e »

est

exp

liqu

é d

ans

un

dic

tion

nair

eDocumentation standard (3)Documentation standard (3)

Page 33: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

ExemplesExemples• Changement de mot de passe par la commande Changement de mot de passe par la commande passwdpasswd..

33

passwd —q

L’option —q signifie silencieux (quiet). On demande à la commande passwd de réduire au minimum son affichage à l’écran.

Syntaxe des commandes (2)Syntaxe des commandes (2)

Page 34: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

ExemplesExemples• Effacer l’écran du terminal par la commande Effacer l’écran du terminal par la commande clearclear..

34

clear

Cette commande n’a pas d’option. Note: clear n’efface pas vraiment l’écran du terminal. Elle ne fait que défiler vers le haut les lignes affichées en dehors de la région visible de l’écran.

Démonstration de la Démonstration de la commandecommande

Syntaxe des commandes (3)Syntaxe des commandes (3)

Page 35: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Les fichiers sont des éléments Les fichiers sont des éléments importants de tout système importants de tout système informatiqueinformatique

Linux étend le concept des fichiers aux Linux étend le concept des fichiers aux éléments périphériques d’un éléments périphériques d’un ordinateurordinateur• Linux traite les imprimantes, les ports USB, les Linux traite les imprimantes, les ports USB, les

ports réseaux, les caméras WEB, etc. comme ports réseaux, les caméras WEB, etc. comme des fichiers.des fichiers.

Caractéristiques d’un fichierCaractéristiques d’un fichier• Il possède un nomIl possède un nom

o Linux distingue les caractères majuscules et Linux distingue les caractères majuscules et minuscules. Ainsi, minuscules. Ainsi, MonDoc.texteMonDoc.texte et et mondoc.textemondoc.texte représentent deux fichiers différents.représentent deux fichiers différents.

35

Fichiers et répertoires (1)Fichiers et répertoires (1)

Page 36: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Caractéristiques d’un fichierCaractéristiques d’un fichier• Il possède un chemin de répertoireIl possède un chemin de répertoire

o Un fichier est toujours entreposé sur un support Un fichier est toujours entreposé sur un support (disque, clé USB, mémoire flash, etc.);(disque, clé USB, mémoire flash, etc.);

o L’emplacement d’un fichier est son chemin de L’emplacement d’un fichier est son chemin de répertoire;répertoire;

o En voici quelques example:En voici quelques example:/usr/bin/passwd/usr/bin/passwd/bin/ls/bin/ls/etc/rc0.d/S90halt/etc/rc0.d/S90halt

o Remarques:Remarques:Il n’existe pas d’unité de disque comme préfix (pas de Il n’existe pas d’unité de disque comme préfix (pas de c:c:, , d:d:, , e:e:, etc.), etc.)Les répertoires menant vers le fichier sont séparés par Les répertoires menant vers le fichier sont séparés par la barre oblique « / »la barre oblique « / »Le répertoire de base (racine) est représenté par « / »Le répertoire de base (racine) est représenté par « / »

36

Fichiers et répertoires (2)Fichiers et répertoires (2)

Page 37: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Caractéristiques d’un fichierCaractéristiques d’un fichier• Il possède un chemin de répertoireIl possède un chemin de répertoire

o Enfin, l’organisation des répertoires peut être Enfin, l’organisation des répertoires peut être schématisée graphiquement:schématisée graphiquement:

/usr/bin/passwd/usr/bin/passwd/bin/ls/bin/ls/etc/rc0.d/S90halt/etc/rc0.d/S90halt

37

Fichiers et répertoires (3)Fichiers et répertoires (3)

Page 38: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Caractéristiques d’un fichierCaractéristiques d’un fichier• Il possède des permissions d’accèsIl possède des permissions d’accès

o Un fichier peut être Un fichier peut être lulu, , écritécrit et et exécutéexécuté;;o Un fichier peut posséder une combinaison de ces Un fichier peut posséder une combinaison de ces

permissions;permissions;o On attribue ces permissions en fonction de nos On attribue ces permissions en fonction de nos

besoins.besoins.o Par exemple:Par exemple:

Un document text peut avoir les permissions de lecture Un document text peut avoir les permissions de lecture (read) et écriture (write);(read) et écriture (write);La permission d’exécution (execute) à un document La permission d’exécution (execute) à un document text est possible – il peut être un document contenant text est possible – il peut être un document contenant des commandes Linux; des commandes Linux; Le fichier représentant un port USB peut avoir les Le fichier représentant un port USB peut avoir les permissions de lecture et écriture;permissions de lecture et écriture;Il est superflu et illogique d’attribuer la permission Il est superflu et illogique d’attribuer la permission d’exécution à un fichier représentant un port USB.d’exécution à un fichier représentant un port USB.

38

Fichiers et répertoires (4)Fichiers et répertoires (4)

Page 39: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

ParParcours des chemins de répertoirecours des chemins de répertoire• Utiliser la commande Utiliser la commande cd(1)cd(1) (change directory) (change directory)• DeuxDeux types de chemins types de chemins

o AbsoluAbsoluIl faut donner le chemin complet incluant tous les Il faut donner le chemin complet incluant tous les répertoires menant vers le répertoire de destination.répertoires menant vers le répertoire de destination.

o RelatifRelatifÀ partir du répertoire courant donner la portion du chemin À partir du répertoire courant donner la portion du chemin menant vers le répertoire de destination.menant vers le répertoire de destination.

39

Démonstration de la Démonstration de la procédureprocédure

Fichiers et répertoires (5)Fichiers et répertoires (5)

Page 40: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Contenu d’un répertoireContenu d’un répertoire• Utiliser la commande Utiliser la commande ls(1)ls(1) (list directory (list directory

content) pour voir le contenu d’un répertoirecontent) pour voir le contenu d’un répertoire

40

La signification des couleurs• Bleu: répertoire• Bleu pâle: lien (raccourci)• Vert: fichier exécutable ou répertoire standard• Rose: fichier image

Note: Ces couleurs sont générées par l’option --color de la commande ls. Voir man dircolors pour les couleurs

utilisées.

Fichiers et répertoires (6)Fichiers et répertoires (6)

Page 41: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Contenu d’un répertoireContenu d’un répertoire• ls –lls –l (format détaillé)(format détaillé), , ls –Rls –R (fouille récursive)(fouille récursive), , ls -ls -lRlR

41 Démonstration de la Démonstration de la commandecommande

Fichiers et répertoires (7)Fichiers et répertoires (7)

Page 42: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Permissions des fichiers et répertoiresPermissions des fichiers et répertoires

42

drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Desktopdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Documentsdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Downloads-rw-r--r-- 1 twong twong 8445 Dec 17 19:56 examples.desktopdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Musicdrwxrwxr-x 2 twong twong 4096 Dec 18 22:52 MySharedrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Picturesdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Publicdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Templatesdrwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Videos

Permissions d’accès

Propriétaire (créateur)

Groupe LinuxLe c

ara

ctère

« d

 » d

e la p

rem

ière

co

lon

ne indiq

ue q

u’il s’

agit

d’u

n

répert

oir

e (

dir

ect

ory

)Fichiers et répertoires (8)Fichiers et répertoires (8)

Page 43: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Permissions des fichiers et répertoiresPermissions des fichiers et répertoires

43

rw-r--r-- 1 twong twong 8445 Dec 17 19:56 examples.desktop

Quelles sont les permissions de ce fichier pour les trois types d’utilisateur?

Fichiers et répertoires (9)Fichiers et répertoires (9)

Page 44: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Changement des permissions d’accèsChangement des permissions d’accès• Utilisation de la commande Utilisation de la commande chmod(1)chmod(1) (change (change

mode)mode)o Par valeurs octalesPar valeurs octales

chmod 664 exemples.desktopchmod 664 exemples.desktop

o Par symbolesPar symbolesou (propriétaire), g (groupe Linux), o (autres), a (all, u u (propriétaire), g (groupe Linux), o (autres), a (all, u et g et o)et g et o)

chmod u+r+w-x,g+r+w-x.o+r-w-x exemples.desktopchmod u+r+w-x,g+r+w-x.o+r-w-x exemples.desktop

44

Démonstration de la Démonstration de la commandecommande

Fichiers et répertoires (10)Fichiers et répertoires (10)

Page 45: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Création et destruction de répertoiresCréation et destruction de répertoires• Utilisation de la commande Utilisation de la commande mkdir(1)mkdir(1) (make (make

directory)directory)o L’option L’option —p—p permettre la création de tous les permettre la création de tous les

répertoires contenu dans le chemin de répertoire.répertoires contenu dans le chemin de répertoire.

• Utilisation de la commande Utilisation de la commande rmdir(1)rmdir(1) (remove (remove directory)directory)

45

Démonstration de la Démonstration de la commandecommande

Fichiers et répertoires (11)Fichiers et répertoires (11)

Page 46: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Affichage du contenu des fichiersAffichage du contenu des fichiers• Utilisation de la commande Utilisation de la commande cat(1)cat(1)

(concaténation)(concaténation)o Afficher, sans interruption, le contenu des fichiers Afficher, sans interruption, le contenu des fichiers

spécifiés en paramètres.spécifiés en paramètres.

• Utilisation de la commande Utilisation de la commande more(1)more(1) • Afficher, page par page, le contenu des fichiers spécifiés Afficher, page par page, le contenu des fichiers spécifiés

en paramètres.en paramètres.

46

Démonstration de la Démonstration de la commandecommande

Fichiers et répertoires (12)Fichiers et répertoires (12)

Page 47: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Manipulation des fichiersManipulation des fichiers• Utilisation de la commande Utilisation de la commande cp(1)cp(1) (copy) (copy)

o Copier le contenu des fichiers (ou répertoires)Copier le contenu des fichiers (ou répertoires)

• Utilisation de la commande Utilisation de la commande mv(1)mv(1) (move) (move)o Déplacer (renommer) des fichiersDéplacer (renommer) des fichiers

• Utilisation de la commande Utilisation de la commande rm(1)rm(1) (remove) (remove)o Effacer des fichiersEffacer des fichiers

• Utilisation de la commande Utilisation de la commande touch(1)touch(1) (touch) (touch)o Créer un fichier de taille zéro;Créer un fichier de taille zéro;o Mettre à jour la date de modification d’un fichier.Mettre à jour la date de modification d’un fichier.

47

Fichiers et répertoires (13)Fichiers et répertoires (13)

Page 48: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Connaître le nom des utilisateurs Connaître le nom des utilisateurs connectés à un poste Linuxconnectés à un poste Linux• who(1)who(1)• who am iwho am i

Connaître le nom et la version du Connaître le nom et la version du système d’exploitationsystème d’exploitation• uname –auname –a

Connaître l’espace disque du systèmeConnaître l’espace disque du système• df(1)df(1)

Connaître l’espace disque utilisé par Connaître l’espace disque utilisé par différents fichiersdifférents fichiers• du(1)du(1)

48

Informations utiles (1)Informations utiles (1)

Page 49: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Connaître le nom du répertoire courantConnaître le nom du répertoire courant• pwd(1)pwd(1)

Connaître la structure du système de Connaître la structure du système de stockagestockage• lsblklsblk

49

Ce système possède:20 Go de disque rigide1 CD-ROM

Informations utiles (2)Informations utiles (2)

Page 50: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Connaître les commandes lancéesConnaître les commandes lancées• history(1)history(1)

• Exécuter une commande déjExécuter une commande déjà lancéeà lancée!5!5

50

Exécuter la 5e commande de la liste historique

Informations utiles (3)Informations utiles (3)

Page 51: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Jean-Philippe Roberge - Mai 201451

Informations utiles (4)

Page 52: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Fin de la présentation du Fin de la présentation du chapitre 4 – début des chapitre 4 – début des exercices en classesexercices en classes

Page 53: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

53

Exercices (1)Exercices (1)

Page 54: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

54

Exercices (2)Exercices (2)

Page 55: Systèmes dexploitation et programmation de systèmes -GPA435- Cours #2: Systèmes dexploitation UNIX / Linux Enseignant: Jean-Philippe Roberge Jean-Philippe

Références

[1] Présentations PowerPoint du cours GPA435, Tony Wong.

[2] Notes de cours, GPA435

[3] Levasseur, Yan, Wiki GPA435: http://bash.leyan.org/Accueil , consulté en avril 2014.

[4] Tanenbaum, A.S., Systèmes d’exploitation. Pearson Education France, 2008.

[5] Stallings, W., Operating Systems : Internals and Design Principals. Upper Saddle River, NJ : Prentice Hall, 1998.

[6] Références citées dans le premier chapitre des notes de cours.

55 Jean-Philippe Roberge - Avril 2014