La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge.

Présentations similaires


Présentation au sujet: "Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge."— Transcription de la présentation:

1 Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge - Mai 2014

2 Planification du cours #3 Petite révision du cours #2: Terminal de commande et syntaxe des commandes Documentation standard Structure des fichiers Démonstration de la commande ssh Théorie du cours #3: Entrée/sortie standard, redirections et tuyaux Exécution en arrière-plan Regroupement et séparation des commandes Fichiers de commandes Interpréteur de commande : démonstration dune Fork Bomb ! Exercices… 2 Jean-Philippe Roberge - Mai 2014

3 3 1 - Architecture micro-noyau: 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 dun S.E. et le développement des serveurs; Révision du cours #2 (1) Noyau: Partie fondamentale du système dexploitation, il sagit de la base, cest-à- dire lensemble des processus qui gèrent les ressources de lordinateur. Il permet au matériel et au logiciel de communiquer ensemble.

4 Jean-Philippe Roberge - Mai Comparaison entre noyau « monolithic » et micro-noyau: Révision du cours #2 (2)

5 5 Exemple du concept de micro-noyau: Jean-Philippe Roberge - Mai 2014 Révision du cours #2 (3)

6 Jean-Philippe Roberge - Mai Exécution multi-fils: un processus est divisé en plusieurs chemins dexécution simultanée; fil dexécution unité de travail interruptible et séquentielle; fil dexécution ne possède pas de contexte dexécution mais utilise celui du processus père; Révision du cours #2 (4) Mémoire utilisée, létat de la pile programme, les ports dE/S associés, létat des registres du processeur, etc. Modèle de programmation concourante

7 Jean-Philippe Roberge - Mai Traitement parallèle symétrique: réalisation utilisant lexécution multifils; 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 dexécution dans tous les processeurs libres. Nouvelle exigence «extensibilité» du S.E.; Application du concept de micro-noyau; S.E. décentralisé; Ordonnancement des fils dexécution réalisé localement par chacun des processeurs; Collaboration entre les processeurs; Une réalisation plus complexe du S.E. Révision du cours #2 (5)

8 8 4 - Système dexploitation réparti: Système dexploitation qui gère une grappe dordinateurs Complexe, doit gérer la communication et lallocation des ressources Méta-SE: Système dexploitation qui gère dautres 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 Révision du cours #2 (6)

9 Format des commandes Format des commandes Une convention bien établie. Une convention bien établie. commande [option] [paramètre] 9 Linvite affichée par linterpréteur de commande. Lhistorique des commandes lancées. Une commande peut avoir des options et paramètres. Les options sont toujours précédées dun tiret ( ). Les crochets ( [] ) signifient quils ne sont pas obligatoires. Révision du cours #2 (7)

10 Comment connaître les options et paramètres des commandes? Comment connaître les options et paramètres des commandes? Laide enligne est divisée en sections: Laide enligne est divisée en sections: 10 SectionSujets 1Commandes et programmes 2Interfaces de programmation (API) 3Fonctions des bibliothèques du langage C 4Interfaces des périphériques et du réseau 5Formats de fichiers 6Jeux et application de démonstration 7Divers (ensemble de macros, etc.) 8Commandes pour ladministration du système GPA435 Révision du cours #2 (8)

11 Contenu dun répertoire Contenu dun répertoire Utiliser la commande ls(1) (list directory content) pour voir le contenu dun répertoire Utiliser la commande ls(1) (list directory content) pour voir le contenu dun répertoire 11 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 loption --color de la commande ls. Voir man dircolors pour les couleurs utilisées. Révision du cours #2 (9)

12 Permissions des fichiers et répertoires Permissions des fichiers et répertoires 12 drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Desktop drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Documents drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Downloads -rw-r--r-- 1 twong twong 8445 Dec 17 19:56 examples.desktop drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Music drwxrwxr-x 2 twong twong 4096 Dec 18 22:52 MyShare drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Pictures drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Public drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Templates drwxr-xr-x 2 twong twong 4096 Dec 17 20:13 Videos Permissions daccès Propriétaire (créateur) Groupe Linux Le caractère « d » de la première colonne indique quil sagit dun répertoire (directory) Révision du cours #2 (10)

13 Permissions des fichiers et répertoires Permissions des fichiers et répertoires 13 Fichiers et répertoires (11) Changement des permissions daccès Changement des permissions daccès Utilisation de la commande chmod(1) (change mode) Utilisation de la commande chmod(1) (change mode) o Par valeurs octales chmod 664 exemples.desktop o Par symboles chmod u+r+w-x,g+r+w-x.o+r-w-x exemples.desktop

14 Jean-Philippe Roberge - Mai Autres concepts: sudo et su Autres commandes: echo head tail top chown ifconfig ssh date diff dmesg locate Révision cours #2 (12)

15 Jean-Philippe Roberge - Mai Cours #3

16 16 Interpréteur de commandes (1) Quest-ce quun Interpréteur de commande ( CLI: Command-Line Interpreter ) ? Un programme faisant partie des composants de base du S.E. Un programme dont la fonction est dinterpréter les commandes quun utilisateur entre dans linterface de commande (i.e. le terminal) Sous Windows: cmd.exe, maintenant largement remplacé par Powershell. Linterface graphique demeure privilégiée depuis plusieurs années! Sous UNIX / Linux: Plusieurs interpréteurs existent et lutilisation du terminal de commande est très répandue, bien que ces dernières années de nombreuses distributions ont fait naître une interface graphique bien élaborée.

17 Interpréteur de commandes (2) 17 Au niveau des systèmes UNIX / Linux, plusieurs interpréteurs ont vu le jour! Tableau tiré intégralement de

18 18 Bourne shell (sh): créé par Steve Bourne; interpréteur par défaut de nombreux système UNIX / Linux. Pourquoi utiliser le Bourne shell? plus ancien et plus répandu; très utilisé parmi les gestionnaires de systèmes et les développeurs de logiciels. Interpréteur de commandes (3) Comment un interpréteur traite-t-il généralement une ligne de commande?

19 19 Interpréteur de commandes (4) Actuellement, bash est certainement linterpréteur le plus répandu pour les systèmes Linux!

20 20 Concernant lentrée et la sortie standard: Entrée standard Elle est normalement attachée au clavier Elle possède un numéro de descripteur égal à 0 Sortie standard Elle est normalement attachée à lécran Elle possède un numéro de descripteur égal à 1 Erreur standard Elle est normalement attachée à lécran Elle possède un numéro de descripteur égal à 2 En bref: Entrée-Sortie standard (1) Tableau tiré intégralement de

21 21 Effet de la redirection: Entrée-Sortie standard (2)

22 22 Il est possible de rediriger les entrées-sorties standards à des fichiers ou à dautres programmes et commandes. Redirection de lentrée standard: cat < NomFichier Démonstration de la procédure Démonstration de la procédureCommande Redirection de lentrée standard à un fichier. Lentrée de la commande cat(1) est le fichier NomFichier Entrée-Sortie standard (3)

23 23 Redirection de la sortie standard: cat > NomFichier Redirection de lentrée et de la sortie standard: cat FichierSortie Démonstration des procédures Démonstration des procéduresCommande Redirection de la sortie standard à un fichier. La sortie de la commande cat(1) est enregistré dans le fichier NomFichier Entrée-Sortie standard (4)

24 24 Rediriger la sortie vers un fichier écrase le contenu du fichier de sortie. Utiliser la concaténation pour préserver le contenu du fichier de sortie: cat > FichierSortie Démonstration de la procédure Démonstration de la procédure La sortie de la commande cat est ajoutée à la fin du fichier FichierSortie Entrée-Sortie standard (5)

25 25 Rediriger lerreur standard implique une syntaxe un peu différente. Utilisation des numéros de descripteur. commande < FichierEntree commande <0 FichierEntree commande > FichierSortie commande 1> FichierSortie commande 2> FichierErreur Équivalentes Équivalentes Redirection de lerreur standard Entrée-Sortie standard (6)

26 26 cat sortie.txt 2> erreur.txt cat > sortie.txt 2>&1 Démonstration de la procédure Démonstration de la procédure Les messages d erreur de la commande cat seront enregistrés dans ce fichier La sortie de cat est enregistrée dans le fichier sortie.txt. L erreur standard est redirigée à la sortie standard. Donc, lerreur standard est également redirigée au fichier sortie.txt. Entrée-Sortie standard (7)

27 27 Tuyaux brancher la sortie standard dune commande à lentrée standard dune autre commande. Tuyaux (1)

28 28 ls -lR | more La sortie de la commande ls est lentrée de la commande more. cat document.txt | tr abc ABC > traduit.txt Tuyau tr (translate) remplace le caractère a par A, b par B et c par C. La sortie de tr est enregistrée dans le fichier traduit.txt Tuyaux (2)

29 29 Toutes les commandes vues jusquà présent sont exécutées en avant-plan. Monopolisent le terminal. Ne convient pas à des tâches de longue durée. Lancer les commandes en arrière-plan: commande [-options] [paramètre] & Symbole indiquant une exécution en arrière-plan dune commande Exécution en arrière-plan (1)

30 30 Exemple: cat passwd.dat | sort > sortie.txt & Attention aux entrées-sorties des commandes exécutées en arrière-plan !!! Laquelle des commandes sera-t-elle exécutée en arrière-plan ? Démonstration de la procédure Démonstration de la procédure Exécution en arrière-plan (2)

31 31 Exécution séquentielle dune ligne de commandes: cmd1 ; cmd2 ; cmd3 Exécution séquentielle dune ligne de commandes par regroupement: (cmd1 ; cmd2) ; cmd3 (cmd1 ; cmd2) & cmd3 Commandes regroupés sont exécutées dans un interpréteur enfant (subshell). Plusieurs combinaisons sont possibles Regroupement des commandes (1)

32 32 Exemple: Démonstration de la procédure Démonstration de la procédure Quelle sera la sortie de ces deux commandes ? Commandes entre parenthèses sont exécutées par un interpréteur enfant. Regroupement des commandes (2)

33 33 Explication de lexemple précédent: pwd affiche le nom du répertoire courant. (cd..; pwd; cp user.txt test.txt; ls -l test.txt) pwd revient à linterpréteur père et affiche le nom du répertoire courant. Remonter vers le répertoire parent Affiche le nom du répertoire courant Copier le fichier user.txt vers le fichier test.txt Montrer que le fichier a été copié Toutes ces commandes sont exécutées dans un interpréteur enfant Regroupement des commandes (3)

34 34 Explication de lexemple précédent (suite): Regroupement des commandes (4)

35 35 Conditions dun fichier de commande: contient des commandes et instructions légales de Bourne shell; fichier est lisible et/ou exécutable par le Bourne shell. Exécution dun fichier de commande: sh FichierCommande contient à la première ligne du fichier la directive: #!/bin/sh Démonstration de la procédure Démonstration de la procédure Fichier de commande (1)

36 36 Variables prédéfinies: Variables de linterpréteur (1)

37 37 Variables prédéfinies (suite): Variables de linterpréteur (2)

38 38 Réglage des variables: var=valeur TOTO="Bonjour les SEPSistes" Allo="$TOTO du cours GPA435" Explication: Variables de linterpréteur (3)

39 39 Éliminer une variable de lenvironnement: unset NomVariable Voir le contenu dun variable: echo $NomVariable Voir le contenu de toutes les variables denvironnement: set(1) Variables de linterpréteur (4)

40 40 Transmettre une variable à un interpréteur enfant: export(1) Exemple dexportation dune variable: Variable REPERTOIRE nest pas exportée et elle nest pas disponible dans les interpréteurs enfants. Variables de linterpréteur (5)

41 41 Exemple dexportation dune variable: Variable REPERTOIRE est exportée et elle est disponible dans les interpréteurs enfants. Fin du chapitre 5 Variables de linterpréteur (6)

42 42 Démonstration dune Fork Bomb Comment faire « planter » un système dexploitation Linux à laide de linterpréteur de commandes ? En créant un processus qui créé récursivement des processus… Cest-à-dire: Démonstration de la procédure Démonstration de la procédure

43 43 Exercices (1)

44 Références [1] Présentations PowerPoint du cours GPA435, Tony Wong. [2] Notes de cours, GPA435 [3] Levasseur, Yan, Wiki GPA435: consulté en avril 2014.http://bash.leyan.org/Accueil [4] Tanenbaum, A.S., Systèmes dexploitation. Pearson Education France, [5] Stallings, W., Operating Systems : Internals and Design Principals. Upper Saddle River, NJ : Prentice Hall, [6] Références citées dans le premier chapitre des notes de cours. 44 Jean-Philippe Roberge - Avril 2014


Télécharger ppt "Systèmes dexploitation et programmation de systèmes -GPA435- Cours #3: Interpréteur de commande Enseignant: Jean-Philippe Roberge Jean-Philippe Roberge."

Présentations similaires


Annonces Google