Académique Documents
Professionnel Documents
Culture Documents
NSI 02
Savoir comment fonctionne un processus lorsqu’une commande est lancée sous Linux
En 1964, le MIT, les Laboratoires Bell et General Electrics (alors fabricant de transistors) lancent un projet
fou qu’ils appellent MAC (Mathematic And Computer). A cette époque, les systèmes d’exploitation n’existaient
pas. Le projet MAC a pour ambition de construire un système multi-utilisateur et multi-tache qui faciliterait
l’utilisation du matériel informatique par les utilisateurs (composés essentiellement de scientifiques à cette
époque). Ce système a été baptisé MULTICS (Multiplexed Information and Computing Service). General Electrics
devait s’occuper de construire la machine physique, et les Laboratoires Bell devaient s’occuper du code.
Le projet trop ambitieux tombe à l’eau dès la fin des année 60. Deux ingénieurs des laboratoires Bell labs
(Ken Thompson et Dennis Ritchie) qui ont travaillé sur ce projet se lancent en solitaire (avec quelques autres
collègues) sur leur propre projet bien moins ambitieux : créer un système conversationnel plus simple pour un
seul utilisateur qu’ils baptisent UNICS (Uniplexed Information and Computing Service). Ils commencent par
écrire ce système en langage assembleur. Ils progressent tellement vite qu’ils réussissent à créer un système
multi-utilisateur, codé dans un second temps dans un langage qu’ils ont inventé (le langage B) qu’ils ont
tellement transformé qu’il l’ont rebaptisé le langage C. Ce système final multi-utilisateur est rebaptisé à son
tour Unics, puis UNIX.
Ritchie et Thompson recevront le prix Turing en 1983 pour ces travaux.
En 1988, l’Institute of Electronical and Electronics Engineer (IEEE) définit la famille de norme POSIX afin de
standardiser des interfaces de programmation et des logiciels destinés à fonctionner sur le système
d’exploitation UNIX (et ses variantes).
Naissance de Linux
2.1. Arborescence du système de
. : répertoire dans lequel on est, appelé « répertoire courant
»
.. : répertoire père du répertoire dans lequel on
est
/ : racine de l’arborescence de fichier
Exemples :
1. Quel est le chemin absolu pour accéder au fichier fiche.ods ?
2. Quel est le chemin relatif pour accéder au fiche.ods depuis le répertoire elsa ?
3. Quel est le chemin relatif pour accéder au fiche.ods depuis le répertoire max ?
Remarques :
• le chemin absolu du répertoire « Home » de l’utilisateur Dupont du SE peut s’écrire de 3 façons
différentes : /home/dupont ou ~ ou $HOME.
• ainsi, un chemin absolu commencera toujours pas « / » ou « ~ » ou « $HOME ».
• dans un chemin relatif, on part automatiquement du répertoire courant. Ainsi, pour les deux derniers
exemples, on peut mettre ./ devant, cela ne change rien. Le caractère « . » indique le répertoire courant.
2.2. Quelques commandes de base (1ère et 2e feuille d’exercices)
Sous Linux, on peut utiliser les système d’exploitation grâce à l’interface graphique (utilisation de la souris
obligatoire) OU par la console (ou terminal) qui contient un processus appelé « Interpréteur de commandes»
ou « Shell ». Nous allons voir différentes commandes à connaître et maîtriser pour pouvoir dialoguer avec le
shell.
Voici les commandes qu’on utilisera dans la 1ère feuille d’exercices (par ordre d’apparition) :
uname affiche les caractéristiques du système d’exploitation
man permet d'obtenir la documentation d'une commande. Par exemple, "man ls" vous donnera la
documentation de la commande "ls"
ls liste le contenu du répertoire courant si on ajoute -s : permet de voir plus
en détail le contenu du répertoire courant si on rajoute -a : permet de voir
également les fichiers cachés
tree permet de voir l’arborescence des fichiers et répertoires en format texte
pwd permet de connaître le répertoire courant (Path Working Directory)
mkdir permet de créer un répertoire dans le répertoire courant. La commande est de la forme "mkdir
nom_du_repertoire" =>éviter les accents et les espaces dans les noms de répertoire ou de fichier !
cd permet de changer le répertoire courant. Il suffit d'indiquer le chemin (relatif ou absolu) qui permet
d'atteindre le nouveau répertoire
cp permet de copier un fichier. La commande est de la forme "cp
/repertoire_source/nom_fichier_a_copier /repertoire_destination/nom_fichier"
Remarque 1 : le nom du fichier "destination" n'est pas obligatoirement le même que le nom du fichier
"source". Dans ce cas, il faut préciser le nouveau nom à la fin du chemin du répertoire destinataire
(on peut avoir "cp fic.txt info/fiche.txt")
Remarque 2 : on peut copier un fichier dans le répertoire courant en changeant de nom (exemple :
"cp fic.txt fiche.txt")
rm permet de supprimer un fichier ou un répertoire. La commande est de la forme "rm
nom_du_repertoire_ou_nom_du_fichier"
si on ajoute -r après rm, cela permet de supprimer tout un répertoire non vide (y compris ses sous
répertoires)
• Un canal d’entrée standard (stdin - n°0) : qui permet au processus de récupérer généralement ce qui a
été entré au clavier.
• Un canal de sortie standard (stdout - n°1) : qui est par défaut connecté à l’écran et qui permet au
processus d’écrire des messages
• Un canal de sortie d’erreur (stderr - n°2) : qui sert au processus à indiquer un message d’erreur en
l’écrivant en général sur l’écran
2.3.2. Redirection
Si on ne veut pas que l’entrée (ou la sortie) standard soit connectée sur le périphérique par défaut, on peut
la rediriger :
Pour un fichier, on peut donner ou non les droits rwx à 4 types d’utilisateurs différents :
• au propriétaire du fichier (u de user). Par défaut, celui qui crée un fichier est le propriétaire.
• au groupe attaché au fichier (g de groupe). Par défaut, c’est le groupe principal auquel appartient le
créateur du fichier.
• tous les autres utilisateurs sauf les 2 précédents (o de other)
• tout le monde (a de all)
Pour visualiser les droits d’accès d’un fichier, dans la console taper la commande ls -l. La liste de tous les
fichiers (répertoires etc.) apparaît, avec en premier le détails des droits d’accès.
• 1er caractère : le premier caractère sert à donner la nature de l’entité : - pour un fichier ; d pour un
répertoire ...
• 3 caractères suivants : 3 types de droits donnés ou non au propriétaire du fichier (r ou – puis w ou – puis
x ou –) : ici le propriétaire a tous les droits.
• 3 caractères suivants : 3 types de droits donnés ou non au groupe attaché au fichier (même chose) : ici
le groupe a le droit de lecture et celui d’exécution
• 3 caractères suivants : 3 types de droits donnés aux « autres » (même chose) : ici ils ont seulement le
droit de lecture.
Remarque : seul le propriétaire peut changer les droits de son fichier (et l’utilisateur root , appelé aussi
l’administrateur du système d’exploitation )