View
6
Download
0
Category
Preview:
Citation preview
Syst eme d’exploitation
Jean-Sebastien Coron
coron@clipper.ens.fr
Universite du Luxembourg
Système d’exploitation
� Enseignement :� Professeur: Jean-Sébastien Coron.
� But du cours :� Approfondir la connaissance des systèmes
d’exploitation.� Continuer à se familiariser avec UNIX.
� Environnement de programmation :� PC sous Windows avec Cygwin (environnement
linux).� Compilateur gcc.
03/10/05 2/49 Syst eme d’exploitation
Système d’exploitation
� Deux catégories de logiciels.� Les programmes systèmes qui s’occupent du
fonctionnement de l’ordinateur.� Les programmes d’applications qui rendent
service aux utilisateurs.X Lecture du courrier, traitement de texte, jeux.
� Système d’exploitation: programme fondamentaldes programmes systèmes.� Contrôle les ressources systèmes.� Fournit les bases des programmes d’application.
03/10/05 3/49 Syst eme d’exploitation
Deux fonctions
� Machine virtuelle.� Masquer les éléments fastidieux du matériel pour
fournir une interface simple à utiliser.� Permettre à plusieurs programme de fonctionner
en même temps, chaque programme ayant sapropre machine virtuelle. Le systèmed’exploitation permet de maintenir cette illusion.
� Gestionnaire de ressource.� Ordonnancer et controler l’allocation des
ressources.� Processeur, mémoire, périphériques.
03/10/05 4/49 Syst eme d’exploitation
Introduction à UNIX
� UNIX est un système d’exploitation multi-tache etmulti-utilisateur.� Permet à un ordinateur mono ou
multi-processeurs de faire exécutersimultanément plusieurs programmes par un ouplusieurs utilisateurs.
� Caractéristiques :� Fichiers.� Processus.� Droits d’accès.
03/10/05 5/49 Syst eme d’exploitation
Caractéristique
� Fichier:� Unité élémentaire de gestion des ressources.
Utilisé pour le stockage des données surdisque-dur et pour la gestion des entrées/sorties.
� Processus� Programme possédant son propre espace
d’adressage mémoire. Partage des ressourcesentre les processus.
� Droits d’accès:� Chaque ressource admet un ensemble de droits
d’accés.
03/10/05 6/49 Syst eme d’exploitation
Linux
� Système d’exploitation de type UNIX pour PC, créépar Linus Torvalds et un grand nombre dedéveloppeurs bénévoles
� Logiciel libre.
� Composants:� Noyau: coeur du système, fournit aux logiciels
une interface pour utiliser le matériel.� Interface de commande Bash, compilateur GCC,
éditeur Emacs.� Interface graphique: système X window.
03/10/05 7/49 Syst eme d’exploitation
Caractéristique du noyau
� Multi-tache et multi-utilisateur.� Plusieurs utilisateurs peuvent travailler en même
temps. Chaque utilisateur peut exécuter plusieurstaches en même temps.
� Tache: programme s’exécutant dans unenvironnement spécifique.
� Certaines tachent peuvent communiquer entreelles.
� Système de fichier arborescent.� Arborescence unique de fichier, même avec
plusieurs disques.
03/10/05 8/49 Syst eme d’exploitation
Cygwin
� Cygwin fournit un environnement proche de Linux,sous Windows.� Gratuitement disponible à www.cygwin.com.� Evite d’installer et configurer Linux sur une
machine.
� Lancer Cygwin.� Cliquer sur le raccourci Cygwin dans le bureau.� Taper startx.
03/10/05 9/49 Syst eme d’exploitation
Syntaxe d’une commande UNIX
� Commande [option] [argument]� Une commande peut comprendre des options qui
modifient son comportement.� Elle peut comprendre des arguments (par
exemple nom de fichier).� Exemple: ls -l fichier donne des
informations plus longues sur fichier.
� Format de [option]: -l [arg]� L’option peut aussi avoir un argument, qui est
facultatif.
03/10/05 10/49 Syst eme d’exploitation
Structure des fichiers UNIX
� Organisé en une arborescence avec racine unique:le répertoire racine /.
� Spécifier une location:� Chemin absolu: /home/enseign/cours/� Chemin relatif à partir du répertoire courant.X "." Répertoire courant.X ".." Répertoire parent.X Exemple: pour accéder à
/home/enseign/cours/premier depuis/home/enseign/exo, on utilise../cours/premier.
03/10/05 11/49 Syst eme d’exploitation
Manipulation de fichiers
� pwd, cd, ls, ls -l, ls -a -l.
� Informations sur un fichier:� drwxrwxrwx 2 Administ None 4096 May 9 10:52 www
� d: type de fichier. d=directory, -=fichier, l=lien.� rwxrwxrwx: permissions.� 2: liens sur ce fichier.� Administ: propriétaire.� None: groupe.� 4096: taille du fichier.� May 9 10:52: date de dernière modification.� www: nom du fichier ou répertoire.
03/10/05 12/49 Syst eme d’exploitation
Autres commandes
� mkdir: création d’un répertoire.
� rmdir: suppression d’un répertoire.
� cp source destination: copie d’un fichier.
� mv source destination: renommer ou déplacerun fichier.
� rm: supprimer un fichier.
� cat: affiche le contenu d’un fichier.
� more, less: affiche le contenu d’un fichier avec despauses.
03/10/05 13/49 Syst eme d’exploitation
Spécifier plusieurs fichiers
� On utilise des méta-caractères:� ? : remplace un seul caractère.� * : remplace zéro, un ou plusieurs caractères.� [ ] : remplace un des caractères dans [].
� Exemple:� * : tous les fichiers.� *.* : tous les fichiers avec un ".".� ?are? : tous les fichiers de 5 caractères avecare au milieu
� [m-z]* : tous les fichiers commançant par unelettre entre m et z.
03/10/05 14/49 Syst eme d’exploitation
Exemple
� Afficher tous les fichiers du répertoire courant:� $ ls *fich1.c fich2.c prog.c toto.txt
� Afficher tous les fichiers qui se terminent par .c.� $ ls *.cfich1.c fich2.c prog.c
� Afficher tous les fichiers qui commencent par fich� $ ls fich*fich1.c fich2.c
03/10/05 15/49 Syst eme d’exploitation
Les permissions de fichier
� Chaque fichier UNIX a trois types de permission quidéterminent ce que l’on peut faire avec.
� Lecture:� Fichier: l’utilisateur peut lire le contenu du fichier� Répertoire: l’utilisateur peut avoir la liste des
fichiers dans le répertoire.
� Ecriture:� Fichier: l’utilisateur peut modifier le contenu du
fichier.� Répertoire: l’utilisateur peut créer ou supprimer
des fichiers du répertoire.
03/10/05 16/49 Syst eme d’exploitation
Les permissions de fichier
� Exécution:� Fichier: l’utilisateur peut exécuter le fichier.� Répertoire: l’utilisateur peut se déplacer dans le
répertoire.
� 3 catégories d’utilisateur.� L’utilisateur qui possède le fichier.� Le groupe auquel appartient le fichier.� Tous les autres utilisateurs.
03/10/05 17/49 Syst eme d’exploitation
Les permissions de fichier
� Sructure:� rwxrwxrwx pour utilisateur, groupe, autre.
� Exemple:� -rw-r----- 1 dupond User 9 Oct 14 10:00 toto
� Le fichier toto appartient à l’utilisateur dupond etau group User.
� L’utilisateur dupond peut lire et modifier le fichier.� Le group User peut lire le fichier mais pas le
modifier.� Les autres utilisateurs ne peuvent ni lire ni
modifier le fichier.
03/10/05 18/49 Syst eme d’exploitation
Commandes de permissions
� Seul le propriétaire d’un fichier ou l’administrateurpeuvent modifier les permissions.
� La commande chmod permet de modifier lespermissions d’un fichier.� chmod options files.
� chown permet de changer le propriétaire d’unfichier.
� chgrp permet de changer le groupe auquelappartient un fichier.
03/10/05 19/49 Syst eme d’exploitation
Processus
� Un processus est un programme qui s’exécute.� Ex: quand on lance un utilitaire système ou un
programme d’application, le shell créé unnouveau processus.
� Identifiés par un numéro unique appelé PID.
03/10/05 20/49 Syst eme d’exploitation
Redirection entrées/sorties
� Par défaut, une commande écrit dans la sortiestandard (l’écran) et prend en entrée l’entréestandard (le clavier).
� On peut rediriger la sortie d’une commande dans unfichier.� Exemple: ls -l > liste. Stocke dans le
fichier liste la liste des fichiers.
� Pour écrire à la fin d’un fichier, on utilise >>
� ls >> liste.
03/10/05 21/49 Syst eme d’exploitation
Redirection entrées/sorties
� On peut rediriger l’entrée d’une commande à partird’un fichier:� cat < input: la commande lit le fichier input
et l’imprime, au lieu de lire le clavier.
� On peut rediriger l’entrée et la sortie en mêmetemps:� cat < input > output
03/10/05 22/49 Syst eme d’exploitation
Les pipes
� On peut rediriger la sortie d’un processus versl’entrée d’un autre avec l’opérateur pipe ’|’.� Les processus s’exécutent en parallèles.
� Permet de combiner plusieurs commandes pourobtenir de fonctions plus élaborées.� cat hello.txt | sort | uniq. Afficher les
lignes de hello.txt triées en éliminant les lignesidentiques.
� ls | sort -r. Affiche les fichier d’un répertoiretrié à l’envers.
03/10/05 23/49 Syst eme d’exploitation
Contrôle des processus
� Le shell permet de contrôler les processus quis’exécutent.
� Un processus s’exécute soit en foreground, soit enbackground.
� Foreground.� Le processus reçoit les commandes du clavier et
renvoie sa sortie à l’écran.� Un seul processus en foreground par shell.� Peut être suspendu avec Ctrl-Z.� Relancé en foreground par fg, en background
par bg.� Définitivement interrompu en tapant Ctrl-C.
03/10/05 24/49 Syst eme d’exploitation
Contrôle des processus
� Exécution d’un processus en background:� On utilise le caractère &.$ find -name hello.txt &[1] 2812$
� Cherche un fichier nommé hello.txt dans lerépertoire courant.
� Le processus s’exécute en tache de fond.� 1 représente le numéro du processus s’exécutant
en background. 2812 représente son PID.
� jobs permet d’avoir la liste de tous les processusen background.
03/10/05 25/49 Syst eme d’exploitation
Affichage des processus
� La commande ps permet d’avoir la liste desprocessus qui s’exécutent sur la machine.$ ps
PID TTY TIME CMD2653 con 00:01:03 bash3672 0 00:00:05 find3687 0 00:00:00 ps
� Pour stopper un process, on utilise la commandekill.� kill 3672 stoppe l’exécution de la commandefind.
03/10/05 26/49 Syst eme d’exploitation
Les variables shell
� Une variable est une donnée identifiée par un nom.
� On accède au contenu d’une variable en ajoutant $.$ var=’hello world’
$ echo $var
hello world
� Pour qu’une variable soit visible en dehors du shell,il faut l’exporter vers l’environnement.� export var.� Exemple: la variable PAGER est utilisée par man
pour déterminer comment afficher le texte.X export PAGER=cat: tout s’affiche à la fois.X export PAGER=less: page par page.
03/10/05 27/49 Syst eme d’exploitation
Les scripts shell
� Un script shell est un fichier texte contenant descommandes du shell.
� Permet l’automatisation des taches.
03/10/05 28/49 Syst eme d’exploitation
Un script simple
� Soit le script suivant dans le fichier simple
#!/bin/sh# commentaireecho "Le nombre d’argument est $#"echo "Les arguments sont $*"echo "Le premier est $1"echo "Le numéro du process est $$"echo "Entrez un nombre:"read nombreecho "Le nombre entré est $nombre"
� Pour exécuter le script, il faut rendre le fichiersimple exécutable (chmod).
03/10/05 29/49 Syst eme d’exploitation
Evaluation des variables
� Le shell substitue les valeurs des variables dans untexte avant son évaluation.
� Pour modifier l’évaluation, on peut utiliser "" ou ”.
� Les guillemets "":� Permet de grouper des mots, sans supprimer le
remplacement des variables.� x=hello worldworld: command not found.
� x="hello world" est correct.� y="phrase=$x"; echo $yphrase=hello world.
03/10/05 30/49 Syst eme d’exploitation
Les quotes ’ ’
� Les quotes ’ ’� Groupent les mots et suppriment toute évaluation.� z=’phrase=$x’;echo $zphrase=$x
03/10/05 31/49 Syst eme d’exploitation
Evaluation des commandes
� Les back-quotes (‘) permettent de stocker le résultatd’une commande dans une variable.� $ x=‘ls‘$ echo $xfich1 fich2
� Equivalent: $ x=$(ls)
03/10/05 32/49 Syst eme d’exploitation
Découpage des chaines
� Les caractères ## permettent d’éliminer la plusgrande chaîne en correspondance avec le motif, enpartant du début.� $ x=’babar’$ echo ${x##*ba}r
� $ y=’hello.txt’$ echo ${y##*.}txt
� Le caractère # élimine la plus courte.� $ x=’babar’$ echo ${x##*ba}bar
03/10/05 33/49 Syst eme d’exploitation
Découpage des chaînes
� % élimine la plus courte correspondance en partantde la fin, et %% élimine la plus longue.� $ y=’hello.tar.gz’echo ${y%.*}hello.tar
� $ y=’hello.tar.gz’echo ${y%%.*}hello
03/10/05 34/49 Syst eme d’exploitation
Découpage des chaînes
� ${string:position}: extrait la sous-chaîne destring à partir de $position.� $ y=’bonjour’echo ${y:3}jour
� ${string:position:length}: extrait $lengthcaractères de la sous-chaîne de string à partir de$position.� $ y=’bonjour’echo ${y:3:2}jo
03/10/05 35/49 Syst eme d’exploitation
La commande cut
� La commande cut
� Permet de sélectionner certaines parties deslignes d’un fichier ou de l’entrée standard (siaucun fichier n’est précisé).
� cut [-c] [-f] list [-n] [-d delim][-s] [file]
� Options:� -c list: spécifie les caractères à sélectionner.X -c2-5 sélectionne les caratères 2 à 5 de
chaque ligne.
03/10/05 36/49 Syst eme d’exploitation
La commande cut
� Options:� -f list: sélectionne pour chaque ligne les
champs spécifiés, les champs étant délimités parun caractère délimiteur.
X -f1,5 sélectionne les champs 1 et 5.� -d delim: spécifie le caractère délimiteur.� -s: supprime les lignes sans caractère délimiteur.
� list:� Liste de nombres séparés par une virgule, avec -
pour indiquer un intervalle.� 1,2,3,5 ou 1-3,5
03/10/05 37/49 Syst eme d’exploitation
Exemples
� Exemples:� $ echo "hello" | cut -c 2-4ell
� $ echo "he ll o wo" | cut -f2,3 -d’ ’ll o
03/10/05 38/49 Syst eme d’exploitation
Execution conditionnelle
� Il est possible d’exécuter une suite d’instruction sousune certaine condition.� if [ test ]then
commande-si-vraielse
commande-si-fauxfi
� Le test peut être une condition sur un fichier, ou unecomparaison de chaine ou de valeur.� Ne pas oublier les espaces dans if [ test ]then
03/10/05 39/49 Syst eme d’exploitation
Conditions sur les fichiers
� [ -s file ]: vrai si le fichier existe et est nonvide.
� [ -f file ]: vrai si c’est un fichier ordinaire.
� [ -d file ]: vrai si c’est un répertoire.
� [ -r file ]: vrai si le fichier est libre en lecture.
� [ -w file ]: vrai si le fichier est libre en écriture.
� [ -x file ]: vrai si le fichier est exécutable.
03/10/05 40/49 Syst eme d’exploitation
Example
� Afficher le contenu d’un fichier s’il existe.� #/bin/bashif [ -f $1 ]then
cat $1fi
� Créer un répertoire toto s’il n’existe pas déjà.� #/bin/bashif [ ! -d toto ]then
mkdir totofi
03/10/05 41/49 Syst eme d’exploitation
Comparison de valeurs et chaines
� Entiers� [ $X -eq $y ]: vrai si X=Y.� [ $X -ne $Y ]: vrai si X<>Y.� [ $X -lt $Y ]: vrai si X<Y.� [ $X -le $Y ]: vrai si X<=Y.
� Chaîne:� [ "$A" = "$B" ]: vrai si chaine A = chaine B.� [ "$A" != "$B" ]: vrai si chaine A <> chaine
B.
03/10/05 42/49 Syst eme d’exploitation
Exemple
� Script pos déterminant si un nombre est positif.� #/bin/bashif [ $1 -gt 0 ]thenecho "$1 est positif"
� $ pos 22 est positif
03/10/05 43/49 Syst eme d’exploitation
Exemple
� Script quitter demandant si l’utisateur veut quitter.� #/bin/bashecho "Voulez vous quitter ?"read repif [ "$rep" = y ]then
echo "exiting..."exit 0
fi
� $ quitterVoulez-vous quitter ?yexiting...$03/10/05 44/49 Syst eme d’exploitation
Exemple
� Script fichtxt déterminant si un fichier al’extension .txt� #!/bin/bashif [ "${1##*.}" = "txt" ]then
echo $1 est un fichier .txtelse
echo $1 n’est pas un fichier .txtfi
� $ fichtxt toto.txttoto.txt est un fichier .txt
03/10/05 45/49 Syst eme d’exploitation
Combinaison de tests
� Expressions:� [ $E -a $F ]: vrai si les expressions E et F
sont vraies.� [ $E -o $F ]: vrai si E ou F est vraie.
� Example: script demandant une valeur en 0 et 100.� #/bin/bashif [ \( $1 -gt 100 \) -o \( $1 -lt 0\) ]then
echo "out of range"fi
03/10/05 46/49 Syst eme d’exploitation
Boucle for
� La boucle for permet d’exécuter une suited’instruction avec une variable parcourant une suitede valeurs.� for variable in listdo
statementdone
� La liste peut être un ensemble de fichier.� for x in *.txtdo
statementdone
03/10/05 47/49 Syst eme d’exploitation
Boucle for
� Exemple:� Le script:for x in chien chat canarddo
echo "x=$x"done
� Affiche:x=chienx=chatx=canard
03/10/05 48/49 Syst eme d’exploitation
Traitement de fichier
� La boucle for permet d’appliquer la même suited’instruction à un ensemble de fichiers:� for fichier in *do
if [ -d "$fichier" ]then
echo "$fichier: rpertoire"fi
done
� Affiche la liste des répertoires dans le répertoirecourant.
03/10/05 49/49 Syst eme d’exploitation
Recommended