Système d`exploitation Unix

publicité
Système d’exploitation Unix
1
Introduction
1.1
Généralité sur les systèmes d’exploitation
Un système d’exploitation (noté SE ou OS pour Operating system) est un ensemble de programmes responsables de la liaison entre les ressources matérielles d’un ordinateur et les applications informatiques de l’utilisateur (traitement de textes, vidéo, . . .). L’OS gère :
• le processeur : il le partage entre les différents programmes pour donner l’impression d’un
fonctionnement en parallèle ;
• la mémoire : il la partage entre les différentes applications. En cas d’insuffisance, il peut
créer une zone mémoire sur le disque dur ;
• les périphériques : il s’assure que les programmes puissent utiliser l’écran, l’imprimante,
le disque dur de façon standard ;
• les droits : il s’assure de la sécurité liée à l’exécution des applications en garantissant que
les ressources ne sont utilisées que par les programmes et utilisateurs possédant les droits
adéquats ;
• les fichiers : il gère la lecture et l’écriture dans le système de fichiers et les droits d’accès
aux fichiers par les utilisateurs et les applications ;
• les informations : il fournit un certain nombre d’indicateurs permettant le diagnostique
du fonctionnement de la machine.
Le système d’exploitation est composé d’un ensemble de programmes permettant de gérer les
interactions avec le matériel. On retrouve principalement :
• le noyau représentant les fonctions fondamentales du OS telles que la gestion de la mémoire,
des processus, des fichiers et des fonctionnalités de communication ;
• l’interpréteur de commande (shell) permettant la communication avec l’OS par l’intermédiaire d’un langage de commandes ;
• le système de fichiers permettant d’enregistrer les fichiers dans une arborescence.
1.2
Spécificité et fonctions d’unix
Unix est un système d’exploitation multi-utilisateur et multi-tâche.
Plusieurs utilisateurs peuvent se connecter sur une même machine, chacun dispose de l’ensemble des ressources du système. Unix comporte donc des mécanismes d’identification et de
protection permettant d’éviter toute interférence entre utilisateurs.
1
Plusieurs programmes peuvent être en cours d’exécution en même temps sur une même
machine. Un processus est une tâche en train de s’exécuter. En fait, à chaque instant, le
processeur ne traite qu’au plus un seul des processus. La gestion des processus est effectuée par
le système.
La syntaxe des commandes en console est généralement la suivante :
nom_commande [options] [arguments].
Les options commencent habituellement par le caractère "-" suivi d’une ou plusieurs lettres
clés. Ces options vont modifier le comportement de la commande. Les arguments spécifient les
objets (fichiers ou variables) sur lesquels la commande va s’appliquer. Les crochets autour des
options et des arguments signifient que ceux-ci sont optionnels.
L’aide en ligne donne les règles d’utilisation sur les fonctionnalités d’une commande. Elle
s’obtient grâce à la commande man (manual pages). Par exemple,
> man man
Si on ne connait pas la syntaxe de la commande, il est possible de faire une recherche par
mot-clé :
> man -k list
Certaines commandes acceptent plusieurs noms de fichiers en arguments. Il est intéressant
d’avoir des notations permettant de raccourcir l’écriture d’une telle liste :
• le caractère ? peut remplacer n’importe quel caractère ;
• le caractère * peut remplacer n’importe quelle chaîne de caractères, y compris la chaîne
vide ;
• [. . .] peut remplacer un caractère quelconque appartenant à la liste donnée entre crochets.
Le caractère – permet de représenter un intervalle ;
• [! . . .] peut remplacer un caractère quelconque n’appartenant pas à la liste donnée entre
crochets.
Par exemple,
• ??? représente l’ensemble des noms de fichier de longueur trois ;
• [a-z]* représente l’ensemble des noms de fichier commençant par une lettre minuscule ;
• *[!a-z, A-Z]? représente l’ensemble des noms de fichier dont l’avant-dernière lettre ne
peut être ni minuscule, ni majuscule.
2
2.1
Système et manipulations de fichiers
Organisation des fichiers
On distingue trois types de fichiers :
2
• les répertoires (directories) qui sont les ensembles de fichiers contenant leurs caractéristiques comme les droits d’accès, la taille, la date de création, . . . ;
• les fichiers ordinaires (files) qui sont des données stockées sur un disque ;
• les fichiers spéciaux qui sont les ensembles de dispositif d’entrée/sortie (terminal, lecteur,
. . .).
L’ossature du système est une structure arborescente de fichiers et de répertoires. Chaque
utilisateur peut ajouter de nouvelles branches.
/
bin
fich
dev
fich1
etc
home
···
Claire
Claude
···
rep
rep
fich12
fich2
Le nom absolu d’un fichier est formé de tous les noms de répertoires traversés depuis la
racine (root) pour l’atteindre. Les noms sont séparés par des obliques / avant. Chaque fichier
a un nom absolu unique dans le système. Par exemple,
/usr/local/bin/
/home/Claude/
sont des noms absolus.
Le nom relatif d’un fichier est formé de tous les noms de répertoires traversés depuis le
répertoire courant (working directory). Le répertoire courant est noté "·" et est identifié par
la commande pwd (path working directory). Au début de la session, le répertoire courant est
le répertoire personnel de l’utilisateur. Par exemple, si le répertoire courant est le répertoire
Claire :
> pwd
/home/Claire/
Le répertoire parent est noté "··". Il correspond à un niveau supérieur dans l’arborescence.
La commande cd (change directory) permet de changer de répertoire. L’argument de cette
commande est le nom du répertoire dans lequel on veut se déplacer. Sans argument, on revient
au répertoire personnel. Par exemple, les chemins
../Claude/rep/
../Claire/rep/
./rep/
sont des noms relatifs.
3
2.2
La
La
La
La
La
La
Manipulation des fichiers
commande
commande
commande
commande
commande
commande
2.3
mkdir (make directory) permet la création d’un répertoire.
rmdir (remove directory) permet la destruction d’un répertoire vide.
cp (copy) permet la copie d’un fichier.
mv (move) permet le déplacement/renommage d’un fichier.
rm (remove) permet la destruction d’un fichier.
rm -R (remove) permet la destruction du contenu du répertoire et de lui même.
Caractéristiques des fichiers
Chaque fichier (ou répertoire) possède un ensemble d’attributs définissant les droits d’accès à
ce fichier pour tous les utilisateurs du système. Il existe trois classes d’utilisateurs pouvant
éventuellement accéder à un fichier :
• le propriétaire du fichier (user) ;
• le groupe (group) dans lequel appartient le propriétaire ;
• les autres (others).
À sa création, un fichier appartient à son auteur. Le propriétaire du fichier peut ensuite distribuer ou restreindre les droits d’accès à ce fichier aux autres utilisateurs du système.
Pour chaque classe d’utilisateurs, il y a trois types de droits à un fichier donné :
• r : en lecture (read) ;
• w : en écriture (write) ;
• x : en exécution (execute).
Au niveau répertoire, ces droits signifient :
• r : droit de lister le contenu du répertoire ;
• w : droit de créer ou détruire un fichier s’y trouvant ;
• x : droit de traverser ce répertoire.
La commande ls permet de visualiser le contenu du répertoire. Avec l’option l, la commande
ls -l permet de visualiser les droits et avec l’option a, la commande ls -a permet de visualiser
tous les fichiers contenus dans le répertoire courant. Le premier caractère spécifie si le fichier
est un répertoire (d) ou un fichier (-). Les neuf caractères suivants identifient les droits d’accès
pour chaque classe d’utilisateurs. La présence du droit est codée par la lettre correspondante r,
w ou x, l’absence du droit est codée par le caractère - et sont structurés de la façon suivante :
r|{z}
w x r|{z}
wx
r|{z}
wx
propriétaire groupe autres
Par exemple, supposons que le répertoire courant contienne le répertoire rep qui contient les
fichiers fich, fich1, fich2, fich12 :
4
> ls -l rep
total 16
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich1
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich12
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich2
> ls -al rep
total 24
d rwx r-x r-- 1 root root 2 mai 18 08:49 .
d rwx r-x r-- 1 root root 2 mai 18 08:49 ..
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich1
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich12
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich2
> ls -l rep/fich?
total 8
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich1
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich2
> ls -l rep/fich*2
total 8
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich12
- rw- r-- r-- 1 root root 2 mai 18 08:49 fich2
La commande chmod permet de changer les droits d’accès d’un utilisateur. Seul le propriétaire
d’un fichier (ou l’administrateur) peut les modifier. La syntaxe est la suivante :
> chmod mode nom_fichier
où mode indique de quelle façon les droits d’accès doivent être modifiés. Il se décompose en
[qui] op acces
où
• [qui] indique quelles classes sont cencernées et est composé de une ou plusieurs lettres
parmi u, g et o. Si aucune classe n’est spécifiée, toutes les classes sont concernées ;
• op peut être :
+ pour ajouter des droits d’accès ;
– pour enlever des droits d’accès ;
= pour affecter des droits d’accès.
• acces est une combinaison des lettres r, w et x qui spécifient les types d’accès.
La commande chown permet de changer le propriétaire d’un fichier. La commande chgrp
permet de changer le groupe auquel le fichier est rattaché.
5
Téléchargement