Académique Documents
Professionnel Documents
Culture Documents
Dr K. GUEYE
Introduction aux systèmes d’exploitation
Pourquoi un cours sur le système d'exploitation Linux ?
Répondre complètement à cette question n'est pas simple. De manière pratique, le système
d'exploitation est le logiciel le plus important de la machine, puisqu'il fournit :
Tout programme est concerné : il est important d'appréhender la façon dont fonctionne
un système d'exploitation pour améliorer l'efficacité de ses propres programmes ;
Tout programmeur est susceptible de rencontrer les mêmes problèmes de mise en œuvre
dans son propre domaine : pas la peine de réinventer la roue.
C'est un sujet intéressant en soi, dont l'objectif est la recherche de l'efficacité, nécessitant
une étude théorique approfondie mais dont l'objectif est la fourniture de solutions
réalisables en pratique : c'est une excellente approche du métier d'ingénieur !
Dr. Kéba GUEYE
Introduction aux systèmes d’exploitation
Qu'est-ce qu'un système d'exploitation?
Problématique
Pour que les programmes puissent s'exécuter de façon portable et efficace, il faut
pouvoir gérer simultanément :
la multiplicité des différentes ressources ;
la complexité des composants de chacune d'elles, qui requiert la prise en compte de nombreux détails
embêtants, sources de bogues.
Ne sont pas des systèmes d'exploitation :
l'interprète de commandes ;
le système de fenêtrage ;
les utilitaires (cp, chmod, uptime, . . . ) ;
le compilateur (ni sa bibliothèque) ;
l'éditeur. . .
Dr. Kéba GUEYE
Introduction aux systèmes d’exploitation
Qu'est-ce qu'un système d'exploitation?
Problématique
En fait, tous ces programmes s'exécutent dans un mode non privilégié, car ils n'ont pas
besoin d'un accès privilégié au matériel. En revanche, le système d'exploitation
fonctionne typiquement en mode privilégié, pour pouvoir accéder a toutes les
fonctionnalités du processeur. Ainsi, le système d'exploitation est protégé par le matériel
contre les erreurs de manipulation (mais il existe des systèmes d'exploitation s'exécutant
sur du matériel non protégé, comme par exemple le DOS sur les anciens IBM PC).
Shells graphiques :
Entrées sous plusieurs formes : texte, souris, touch, . . .
Sorties aux formats quelconque : fenêtres, . . .
Utilisations comme ordinateur personnel (bureautique, . . . )
Autres appelations : GUI, Gestionnaire de Bureau
L'emploi du mot Shell sous Unix, sans autre précision, fait généralement référence aux Shells orientés texte (pour des raisons
historiques. . . )
Exemple : ls -l /home/sra/
ls est la commande (que faire ?)
-l est une option (comment faire ?)
/home/sra/ est le paramètre transmis à la commande (sur quoi faire ?)
Ls -l
Dans cet exemple, la valeur de l'umask était de 022. Le premier fichier créé a donc été
défini avec des droits mis à 644 (666-022).
Une fois l'umask modifié à 200, les droits du fichier suivant sont à 466 (666-200)
Dans cet exemple, la compression est assez conséquente : le fichier résultant est environ trois fois plus petit que l’original.
Ou
Cependant, il est possible de faire encore plus simple. tar comporte une série d’options qui
servent à créer une archive et la compresser à la volée.
La gestion des processus de Linux vous permet, par exemple, d’héberger des sites
web, d’envoyer et de recevoir du courrier pour plusieurs domaines, de faire
tourner un serveur de messagerie instantanée en même temps qu’une webradio, le
tout sur une seule et même machine. Chaque programme que vous démarrez
devient un processus. Si vous démarrez le même programme plusieurs fois, il en
résultera une série de processus.
Elle vous retourne un petit bilan qui ressemble au résultat ci-après. Ne vous
inquiétez pas si les numéros ne sont pas les mêmes que sur ma machine. C’est
normal
Dr. Kéba GUEYE
Introduction aux systèmes d’exploitation
Gérer les processus
Linux, un système multitâche
Surveiller un processus : ps
La commande ps présente en quelque sorte un cliché instantané des processus en
cours. Invoquée sans autre argument, elle se limite aux processus de la console
active.
Ce qui nou sintéresse ici, ce sont les deux colonnes PID et CMD. PID (Process
IDentifier) est un nombre unique qui identifie un processus sans ambiguïté. Quant
à la colonne CMD (Command), elle correspond à la commande qui a déclenché le
processus.
La sortie de ps aux est assez longue. Même sur une installation minimale, le système lance
près de 90 processus, dont trois appartiennent à l’utilisateur connecté.
Dr. Kéba GUEYE
Introduction aux systèmes d’exploitation
Gérer les processus
Linux, un système multitâche
Compter les processus
Vous vous demandez peut-être comment j’ai fait pour compter tous ces processus.
C’est l’occasion de vous rappeler la philosophie Unix : combiner des outils qui ne
font qu’une seule chose. Pour avoir la liste complète de tous les processus en cours
sur la machine, je dois utiliser la commande suivante :
Le nombre de processus correspond à peu de choses près au nombre de lignes
renvoyées par la commande précédente. La ligne d’en-têtes des colonnes ne
correspond pas à un processus ;supprimons-la de l’affichage en utilisant l’option-v
(ou --invert-match) de grep :
Non, nous n’allons pas examiner les soixante-quatre options en détail. Nous avons juste compris que
kill permettait d’envoyer toute une série de signaux à des processus et nous allons en tester quelques-
uns
Dr. Kéba GUEYE
Introduction aux systèmes d’exploitation
Gérer les processus
Linux, un système multitâche
Arrêter et relancer un processus
Fermez la deuxième console et affichez l’ensemble de vos processus en cours, en
notant leur PID :
En règle générale, les archives de code source fournissent des informations succinctes dans
une série de fichiers README, INSTALL, NEWS, etc. Jetez un œil dans les fichiers
README.md, INSTALL.md et NEWS.md pour avoir une idée de ce qu’ils contiennent.
Une fois que vous avez tapé un peu de texte, utilisez les touches Ctrl+K etX pour
enregistrer les modifications et quitter l’éditeur. Félicitations, vous venez de
compiler votre première application depuis son code source !
Pour tester TCPdump, je lance la commande suivante depuis une session à distance et j’observe ce qui
se passe :