Présentation générale du système Linux
Le système Linux est un système multi-utilisateurs et multi-tâches. En tant que
système d'exploitation, son rôle principal est donc d'assurer aux différentes tâches et aux
différents utilisateurs une bonne répartition des ressources de l'ordinateur (mémoire,
processeur(s), espace disque, imprimante(s), programmes utilitaires...) et cela sans
intervention des utilisateurs; il prend totalement en charge ces utilisateurs et lorsque les
demandes sont trop importantes pour être satisfaites rapidement, l'utilisateur le ressent par
un certain ralentissement (qui peut être effectivement important, voire insupportable...),
mais le système (en principe) ne se bloque pas.
Linux est par ailleurs un système de développement et les utilisateurs y ont à leur
disposition un très grand nombre d'outils, pour la plupart assez simples à utiliser, leur
permettant d'écrire, de mettre au point et de documenter leurs programmes (éditeurs,
compilateurs, débogueurs, système de traitement de textes...). Les utilisateurs ont ainsi à
leur disposition une boîte à outils bien garnie, le principal problème qui se pose à eux étant
de savoir ce qu'elle contient exactement et à quoi sert chacun de ces outils !
En résumé, on peut dire que le système est composé de :
un noyau assurant la gestion de la mémoire et des entrées-sorties de bas
niveau et l'enchaînement des différentes tâches ;
un (ou plusieurs) interpréteur(s) de langage de commandes; il existe en effet
différents langages de commandes nommés Shell, le plus connu étant
le Bourne Shell (du nom de son auteur), un autre étant le C-Shell développé à
l'université de Berkeley et le plus répandu actuellement étant le Bash. Nous
verrons dans ce tutoriel un cours deBourne Shell et de Bash. Il est important
de noter que, quelle que soit la version du langage de commandes utilisée, il
s'agit d'un véritable langage de programmation possédant des instructions et
surtout des structures de contrôle de très grande puissance ;
un système de messagerie assez complet (courrier, conversation en temps
réel, journal de bord) ;
un grand nombre de programmes utilitaires dont évidemment un compilateur
de langage C, des éditeurs, des outils de traitement de textes, des logiciels de