Introduction aux Systèmes d`Exploitation

publicité
19/09/2011
Introduction aux
Systèmes d’Exploitation
christophe Renaud
1ère année cycle d’ingénieur
Version 1.0 du 19/09/2011
Objectifs du cours
Comprendre la notion de système d’exploitation
Son utilité
Ses fonctionnalités
Être capable d’utiliser les fonctionnalités de base d’un
système Linux
Commandes principales
Langage de scripts
1
19/09/2011
Plan du cours
Introduction
Notion de système de gestion de fichier
Interpréteur de commandes
Introduction
Ordinateur = ensemble de dispositifs physiques
Processeur
Mémoire
Carte mère
Périphériques
Écrans
Disques durs
Imprimantes
…
Problème :
Comment faire fonctionner (correctement) tous ces dispositifs
physiques ?
Comment rendre leur utilisation simple à l’utilisateur ?
2
19/09/2011
Définition
Système d’exploitation =
Ensemble des programmes qui se chargent de tous les
problèmes relatifs à l’exploitation des fonctionnalités d’un
ordinateur.
2 rôles distincts :
Interface entre la machine et l’utilisateur
Interface entre la machine et les programmes d’application
Notion de machine virtuelle
Le système cache toutes les difficultés d’utilisation du matériel
L’utilisateur ne voit qu’un vue simplifiée de la machine
Schématisation
Couche
applicative
Couche
système
Navigateur
web
Calculatrice
Interpréteurs de
commandes
éditeurs
Jeu vidéo
Interface
graphique
Système d’exploitation (« noyau »)
Langage machine (assembleur)
Couche
matérielle
Micro-programmes
Dispositifs physiques
3
19/09/2011
Actuellement
Exemples de système d’exploitation
Windows
Unix
Mac/OS
Android
…
Où trouve-t-on les S.E. ?
Ordinateurs
Téléphones portables
Assistant personnels
Cartes à puce
…
Historique (1)
1ère génération : 1940 – 1955
Apparition des premiers ordinateurs
Basés sur des tubes à vide, des relais et des connecteurs
Apparition du terme « bug »
Le programmeur utilise seul toute la machinerie
Eniac (1946 - 17468 tubes à vide)
Colossus (1943 - 2000 tubes à vide)
4
19/09/2011
Historique (2)
2nde génération : 1955 – 1965
Apparition des transistors
Amélioration de la fiabilité
Possibilité de commercialisation
Systèmes de traitement par lots (« batch »)
Le programmeur fournit son programme à un opérateur sur
bande magnétique ou sur cartes perforées
Les programmes sont regroupés et soumis les uns après les
autres par l’opérateur
L’opérateur récupère les résultats sur bande ou sur cartes
perforées et les distribue aux programmeurs
Historique (3)
3ème génération : 1965 – 1980
Apparition des circuits intégrés
Réduction du rapport coût/performance
Standardisation
Systèmes à base de SPOOL (Simultaneous Peripheral
Operation On-Line)
Les programmes sont stockés sur disque dur au fur et à mesure de leur
arrivée
Un seul programme traité à la fois
Développement de la multiprogrammation
Plusieurs programmes traités en même temps
Développement de systèmes à temps partagé
Les utilisateurs accèdent en même temps à la machine
Multics (entièrement écrit en langage C)
5
19/09/2011
Historique (4)
4ème génération : 1980 - ???
Développement des circuits LSI et VLSI
Apparition des ordinateurs personnels
Développement des systèmes actuels reprenant les grands
principes des systèmes utilisés sur les mini-ordinateurs
Développement des réseaux locaux et d’internet
Développement des systèmes distribués
Définitions
Multiprogrammation :
Plusieurs programmes sont exécutés en même temps sur la
machine
Objectif : optimiser l’utilisation du processeur
Les entrées-sorties (lecture/écriture en mémoire, sur disque, etc. sont
beaucoup plus longues à exécuter que les instructions classiques du
processeur)
Implique un partage des ressources qui doit être géré par le
système
Temps partagé :
Plusieurs utilisateurs utilisent simultanément la machine
Connexion depuis leur propre terminal
Implique un contrôle des ressources en fonction des utilisateurs
6
19/09/2011
Les classes de S.E.
Mono-utilisateur :
Un seul utilisateur
Généralement pas de notion d’usager ni de mécanisme de
protection des données
Exemple : MS-DOS, Windows 3.1
Multi-utilisateurs :
Plusieurs utilisateurs
Multi-tâches
Implémentent des mécanismes de protection
Exemples : Linux, Mac-OS
Systèmes temps-réel
Contrôle de processus complexes en milieu industriels
Systèmes distribués
Gèrent un réseau de machines distantes
L’utilisateur de voit qu’une seule machine
Plan du cours
Introduction
Notion de système de gestion de fichier
Interpréteur de commandes
7
19/09/2011
Notion de
Système de Gestion des Fichiers
Tâche la plus visible du SE
Organiser les données de l’utilisateur
Organiser les données du système
Être indépendant du périphérique de stockage
Définitions :
Fichier : ensemble de données ayant un lien logique,
mémorisées sous un nom unique
Exemple : les pixels d’une image, les caractères constituant le texte
d’un rapport, etc.
Dossier (répertoire) : ensemble de fichiers ayant un lien logique
entre eux et mémorisés au même endroit
Objectif : faciliter la recherche des données par l’utilisateur
Remarque : un dossier peut contenir d’autres dossiers
Organisation du SGF
Représentation la plus commune : arborescence
Dossier
« racine »
Point d’entrée sur le périphérique
Un dossier peut contenir simultanément
d’autres dossiers et des fichiers
8
19/09/2011
Exemple : arborescence windows
C:
Program
Files
Program
Data
Programs
Temp
Windows
Users
Toto
Titi
Desktop
Images
Tata
Downloads
Arborescence LINUX (extrait)
/
bin
boot
dev
Programmes
de démarrage
du système
Contient les exécutables
de diverses commandes
utiles et des interpréteurs
de commande
Dossier racine
etc
Fichiers de
configuration
Fichiers correspondants
aux périphériques connectés
ou connectables au système
home
usr
tmp
Fichiers temporaires
Effacés au redémarrage
du système
Fichiers des
différents
utilisateurs
Exécutables
Bibliothèques
Documentations
9
19/09/2011
L’arborescence étudiant
/
…
…
…
home
…
…
EILCO
toto
Répertoire « racine »
de l’étudiant toto
Format des noms de fichier
Dépendent du système d’exploitation
Format, Caractères autorisés
MS-DOS
LINUX
8 caractères . 3 caractères
Longueur d’un nom de fichier quelconque
Pas d’espace, ni de caractères non alphanumériques
Tous les caractères sont autorisés, sauf le /
Majuscules et minuscules non différenciées
Différentiation des majuscules et des minuscules
Extension significative
- Applications : .bin, .com, .exe
Extension non significative
Les fichiers commençant par . sont des fichiers
cachés (par défaut)
Conseil sous linux (lisibilité)
Éviter les espaces et les caractères spéciaux
Noms de fichiers en minuscule
Noms des dossiers personnels commençant par une majuscule
Conserver l’extension pour les formats standards (portabilité)
10
19/09/2011
Notion de droits
Principe :
Différentier les utilisateurs en fonction de leurs prérogatives
Objectifs :
Sécuriser les données des utilisateurs
Sécuriser les données systèmes
Fondamental dans le cas d’un système multi-utilisateurs
Sous Windows :
Deux types d’utilisateurs :
Administrateur :
Possède le droit de modifier le système (installation de logiciels par exemple)
Non administrateur :
Ne peut modifier que ses propre données
Gestion des droits sous Linux (1)
3 types d’utilisateurs :
User : le propriétaire d’un fichier ou d’un dossier
Group : chaque utilisateur appartient à un groupe, créé par
l’administrateur du système
Other : tous les autres utilisateurs du système
3 types de droits :
Lecture (r) :
le contenu du fichier peut être lu ou copié ;
Le contenu du répertoire peut être visualisé
Écriture (w) :
Modification autorisée pour le fichier
Création ou suppression de fichiers possible dans un dossier
Exécution (x) :
Le fichier peut être exécuté (c’est une application ou un script)
Le dossier peut être accédé (on peut s’y déplacer)
11
19/09/2011
Gestion des droits sous Linux (2)
Chaque fichier / dossier dispose donc de 9 droits distincts :
user
r
w
group
x
r
w
other
x
r
w
x
-
-
-
Exemple
r
w
-
r
-
-
Fichier non exécutable éditable par son propriétaire et
consultable uniquement par les membres du groupe
Remarque : existence d’un utilisateur « root » qui a tous les
droits (administrateur du système)
Point de vue utilisateur
Manipulation du SGF via :
une interface graphique
un ensemble de commandes
qui dépendent du système d’exploitation
L’utilisation de commandes nécessite de pouvoir préciser un
chemin dans l’arborescence
Syntaxe spécifique au système
L’utilisation de commandes nécessite de disposer d’un
programme permettant d’interpréter et d’exécuter ces
commandes
Interpréteur de commandes
12
19/09/2011
Chemins d’accès (linux)
Deux types de chemins :
Chemins absolus : on part à chaque fois de la racine du SGF
Chemins relatifs : on part de l’endroit où l’on se trouve
Règle générale : séparer chaque étape (dossier) du
chemin par le caractère /
/
Exemple : accès à essai.c depuis home
home
Chemin absolu : /home/EILCO/toto/essai.c
Chemin relatif : ./EILCO/toto/essai.c
EILCO
Caractère . = partir du dossier courant
toto
titi
tp
essai.c
Exemple : accès à essai.c depuis tp dans titi
Chemin absolu : /home/EILCO/toto/essai.c
Chemin relatif : ../../toto/essai.c
Caractère .. = remonter d’un dossier
Plan du cours
Introduction
Notion de système de gestion de fichier
Interpréteur de commandes
13
19/09/2011
Interpréteur de commande
Programme permettant d’envoyer des instructions
au système
Utilisation de commandes spécialisées, qui dépendent du
système d’exploitation
Exemple : afficher le contenu d’un dossier
Windows : dir nom_dossier
Linux
: ls nom_dossier
Intérêts :
Historiquement : pas d’interface graphique
Commandes complexes : interfaces graphiques peu
adaptées
Efficacité : souvent plus rapide d’utiliser une commande
que l’interface graphique
Interpréteurs sous Unix/Linux
shell
Appelés « shell »
Plusieurs versions :
utilisateur
noyau
Shell unix les plus courants
Nom / commande
sh
csh
signification
Bourne shell
Bourne again shell
bash
C shell
tcsh
Tenex c shell
Chaque utilisateur dispose d’un interpréteur de commande
Version fixée par l’administrateur système
Ici : bash
14
19/09/2011
Lancement
Sans interface graphique :
À la connexion, l’utilisateur se trouve directement sur son
interpréteur de commandes
Avec interface graphique :
Lancer un terminal
« prompt »
Nom_utilisateur @ nom_machine : dossier_courant $
Remarque : ~ correspond au dossier racine de l’utilisateur
Commandes de base
Syntaxe générale :
Nom_commande [options] [paramètres]
Exemple : afficher le contenu du dossier courant
(dossier courant = dossier dans lequel on se trouve)
Commande ls
renaud@gylfie:~$ ls
eia02.png essai.zip hires.pdf Photos presentation.ppt
dossier
fichier
renaud@gylfie:~$ ls -l
total 75664
-rwxrwxrwx 1 renaud prof
3906 2011-05-31 18:32 eia02.png
-rwxrwxrwx 1 renaud prof 72511695 2010-06-20 18:18 essai.zip
-rwxrwxrwx 1 renaud prof 2514741 2006-04-10 16:14 hires.pdf
drwx------ 1 renaud prof
392 2011-09-18 20:01 Photos
-rwxrwxrwx 1 renaud prof 2444288 2011-03-15 12:58 presentation.ppt
droits
propriétaire
groupe Taille en octets
Date et heure de
dernière modification
15
19/09/2011
Les pages de manuel
Sous linux, chaque commande est documentée dans une
page de manuel
La commande « man » permet d’afficher la page
correspondant à la commande recherchée
Syntaxe :
man nom_commande
Exemple : man ls
LS(1)
User Commands
LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.
Mandatory arguments to long options are mandatory for short options
too.
-a, --all
do not ignore entries starting with .
…..
Les métacaractères
Le « shell » interprète certains caractères comme ayant une
définition spéciale :
* : une chaîne de caractères quelconques, de longueur
quelconque (y compris nulle)
? : 1 caractère quelconque
[x-x’] : tout caractère compris entre le caractère x et le caractère x’
[0-9] : 1 chiffre
[a-z] : 1 lettre minuscule
[a-z,A-Z] : 1 lettre
Exemples :
ls f* : lister tous les fichiers dont le nom commence par un f
ls *.jpg : lister tous les fichiers se terminant par .jpg
ls *d* : lister tous les fichiers dont le nom contient la lettre d
16
19/09/2011
Manipulation des fichiers
cat : affichage du contenu du fichier dans le
terminal
cat nom_fichier
more : idem, mais page par page
more nom_fichier
cp : copie d’un fichier dans un autre
cp fichier nouveau_fichier
mv :
Renommage d’un fichier
mv nom_fichier nouveau_nom_fichier
Déplacement d’un fichier dans un autre dossier
mv nom_fichier nom_dossier
Manipulation des dossiers
mkdir : création d’un dossier (vide)
mkdir nom_dossier
rmdir : suppression d’un dossier
rmdir nom_dossier
(le dossier doit être vide)
rmdir –R nom_dossier (effacement récursif)
cp : copie d’un dossier dans un autre
cp nom_dossier1 nom_dossier2 (1er niveau)
cp –R nom_dossier1 nom_dossier2 (copie récursive)
mv : renommage d’un dossier
mv nom_dossier1 nom_dossier2
17
19/09/2011
Gestion des droits (1)
La commande chmod permet de modifier les droits des
fichiers et dossiers (qui appartiennent à l’utilisateur qui lance
la commande)
Syntaxe :
chmod [options] [mode] fichier(s)
Option principale :
-R : agit récursivement sur les dossiers présents dans la liste des
fichiers fournis en paramètre
Mode :
Précise le mode qui doit être appliqué au(x) fichier(s)
Utilise une notation symbolique
ugoa
Les droits à affecter s’appliquent
sur le champ utilisateur (u),
sur le champ groupe (g),
sur le champ autre (o) ou
sur tous les champs (a).
+-=
rwx
La liste contient les droits
qui doivent être modifiés
L’opérateur précise si on
ajoute le(s) droit(s) qui sui(ven)t (+),
si on retire le(s) droit(s) qui sui(ven)t ou
si on donne explicitement la valeur des
différents droits
Gestion des droits (2)
user
Exemples :
group
other
chmod o=rwx nom_fichier
r
w
x
chmod o=r
nom_fichier
r
-
-
chmod g+rw
nom_fichier
chmod a-w
nom_fichier
r
-
w
-
-
18
19/09/2011
Gestion des droits (3)
Notation octale :
Chaque triplet rwx se voit attribué une puissance de 2
user
22 21
group
20 22 21
other
20 22 21
20
Valeurs de 0 à 7
Mise à 1 de la position : le droit est activé
Mise à 0 de la position : le droit n’est pas activé
On fait la somme des poids binaires pour chaque triplet
1
1
1
1
0
1
1
0
0
22
21
20
22
21
20
22
21
20
7
5
chmod 754
nom_fichier
4
Mécanismes de redirection
Sous Unix / linux, toutes les entrées / sorties sont vues
comme des fichiers
Fichiers, dossiers
Périphériques (écrans, clavier, imprimantes, disques, etc.)
3 E/S standard existent au démarrage :
Entrée standard : par défaut, le clavier
Sortie standard : par défaut l’écran
Sortie standard d’erreur : par défaut l’écran
Possibilité de rediriger ces E/S via quelques opérateurs :
Redirection vers un fichier
: >
Concaténation vers un fichier : >>
Lecture dans un fichier
:<
Redirection vers une autre commande : |
19
19/09/2011
Mécanismes de redirection (2)
Redirection vers un fichier
Syntaxe : commande > nom_fichier
Les résultats affichés par la commande sont écrits dans le
fichier dont le nom est donné
Si le fichier existait avant le lancement de la commande, son
ancien contenu est effacé ; sinon le fichier est créé
Exemple : ls > resls.txt
Redirection avec concaténation vers un fichier
Syntaxe : commande >> nom_fichier
Les résultats affichés par la commande sont écrits à la fin du
fichier dont le nom est donné
Si le fichier n’existait pas avant le lancement de la commande,
il est créé
Exemple : ls >> resls.txt
Mécanismes de redirection (3)
Lecture des entrées dans un fichier
Syntaxe : commande < nom_fichier
La commande récupère les données dont elle a besoin dans le
fichier donné
Ne fonctionne que si la commande est susceptible de
demander des données à l’utilisateur par l’intermédiaire du
clavier …
Cf travaux pratiques
Redirection vers une autre commande
Syntaxe : commande1 | commande2
Toutes les données affichées en sortie par la commande 1 sont
envoyées à la commande 2 qui les prend comme entrée
Cf travaux pratques
20
19/09/2011
Notion de liens
21
Téléchargement