Système unix informatique

publicité
Système
unix
informatique
Patrick Magnaud
Département Informatique
IUT A Paul Sabatier
Mise en forme : Antony Aldana
Ce cours est rédigé selon mes notes de cours
Cours Système
2° Année
I.U.T. Informatique
Chapitre 1. Survol de Unix
1. Survol de Unix
En informatique, plusieurs concepts, façons de faire ou algorithmes s'expliquent bien par l'histoire qui
entoure le sujet concerné. Unix ne fait pas exception à la règle et c'est pour cette raison que la première
section de ce chapitre présente un résumé des évènements qui entourent sa création et son développement.
On ne peut y lire que l'essentiel qui constitue une base pour la compréhension. Également, ce chapitre
répond à des questions dont les réponses sont souvent ignorées même par des utilisateurs déjà habiles avec
ce système d'exploitation. Il présente aussi la philosophie suivie par les gens qui ont développé des utilitaires
pour Unix.
1.1 L'histoire de Unix
Unix est né en 1969 dans les laboratoires d'AT&T Bell à Murray Hill au New Jersey. Avant sa création,
principalement par Ken Thompson et Dennis Ritchie, les ordinateurs de l'époque exécutaient encore les
programmes l'un après l'autre (« batch mode ») à l'aide de cartes perforées appelées « IBM punch cards ».
Les trois améliorations majeures qu'apportait le système d'exploitation Unix étaient l'interactivité, l'échange
des données et le multi-usagers. Unix n'était pas le seul système interactif de l'époque. Il y avait également
CTSS (« Computer Time Sharing System ») du MIT (Massachusetts Institute of Technology), CMAS («
Cambridge Multi Access System ») et MULTICS (« MULTIplexed Information Computing Service ») dont
on parle plus loin. Plusieurs fonctionnalités de Unix découlent de ces systèmes.
1.1.1 Hier
Au début en 1965, AT&T, General Electric et le projet MAC du MIT se joignent dans un effort commun
pour créer le système MULTICS. Le but de ce projet était de permettre l'accès simultané et le partage de
données à un grand nombre de personnes. Quelques années plus tard, AT&T se retire du projet à cause de
plusieurs buts encore non atteints et d'un pronostic sombre en ce qui concerne l'avenir de MULTICS. En
effet, le système était supposé desservir jusqu'à 1000 usagers mais pouvait à peine suffir à la demande d'un
seul.
En 1969, Thompson, Ritchie et d'autres personnes d'AT&T, privés d'un environnement de travail adéquat,
ont entrepris le design d'un nouveau système de fichiers. Ce système donnera lieu, après quelques
raffinements, au premier système de fichiers Unix. Ken Thompson a ensuite écrit un certain nombre de
programmes qui simulaient l'accès d'un tel système de fichiers. Pour vraiment évaluer la performance du
nouveau design, Thompson et Ritchie l'ont implanté sur un ordinateur PDP-7. Ils ont ensuite écrit un noyau
(« kernel ») simple ainsi qu'un petit ensemble d'utilitaires pour pouvoir l'utiliser et le tester. Rapidement, le
nouveau système pouvait se supporter lui-même sans l'environnement de travail GECOS (« General Electric
Comprehensive Operating System ») sous lequel se faisait le développement. Le nouveau design a été
baptisé « Unix » par Brian Kernigham. Il s'agit de UNICS (« UNIplexed information Computing System »)
qui est devenu Unix.
En 1971, le temps était venu d'évaluer le potentiel de Unix. Il a été porté sur un PDP-11 et AT&T l'a
employé pour des projets internes. Après un succès rapide, Thompson a décidé d'écrire un compilateur
Fortran pour Unix. Cependant, à cause de certaines influences de l'époque, il a changé d'idée et a inventé le
nouveau langage interprétatif B. Ritchie qui n'était pas en faveur de ce langage à cause de son type
[Tapez un texte]
interprétatif, a développé en quelques jours un nouveau langage et son compilateur. Ce nouveau langage
permettait d'obtenir du code exécutable directement à partir du code source. C'était la naissance du « C ». En
1973, le système d'exploitation Unix est réécrit en C. Cette étape qui semblait anodine à ce moment est
parmi celles qui ont contribués le plus à l'acceptation universelle de Unix.
À l'époque, un décret datant de 1956 du gouvernement des États-Unis empêchait AT&T de publiciser,
commercialiser ou supporter le nouveau système d'exploitation. Ce décret empêchait la compagnie de faire
autre chose que de la téléphonie et du télégraphe. C'est alors qu'AT&T décide de fournir Unix à toutes les
universités qui en faisaient la demande pour des fins éducationnelles.
Étant donné sa popularité qui n'a cessé de croître, Thompson et Ritchie décident d'écrire un article sur le
système exploitation Unix. Cet article a été publié dans la revue américaine « communications of the ACM »
en juillet 1974. Le titre était « The UNIX Time-Sharing System ».
En 1977, « Interactive System Corporation » devient la première compagnie à vendre des applications pour
Unix. Ces compagnies sont appelées VAR (Value Added Resellers). Cette même année, Unix est porté sur
plusieurs plateformes autres que PDP-11. Par la suite, la simplicité et la clarté du système ont encouragé
plusieurs développeurs qui l'ont modifié pour créer plusieurs variantes.
De 1977 à 1982, Bell Lab combine plusieurs de ces variantes (provenant de partout) pour créer « Unix
System III ». Plus tard, AT&T ajoute plusieurs améliorations et utilitaires et appelle le nouveau Unix, «
System V ».
Enfin, en 1983, AT&T annonce officiellement le support de « System V ». Une bataille pour faire modifier
le décret du gouvernement américain de 1956 avait porté ses fruits.
Au même moment, des chercheurs de l'Université de Californie à Berkeley créent une variante de Unix pour
leurs ordinateurs VAX et lui donnent le nom de BSD (« Berkeley Software Distribution »). La grande
majorité des distributions Unix d'aujourd'hui viennent avec un « Kernel » de type System V ou BSD. Une
des exceptions est Linux (Unix pour PC) qui est une combinaison du meilleur des deux et qui ne contient
pas de code source originaire d'AT&T.
1.1.2 Aujourd'hui
Plusieurs manufacturiers ont porté Unix pour leurs machines et lui ont donné un nom particulier, par
exemple, SunOS pour machines SUN, HP-UX pour HP, AIX pour IBM, etc. La très grande majorité de ces
Unix commerciaux descend du code source original d'AT&T et nécessite l'achat d'une licence. Même ceux
qui se sont inspirés du code source de BSD nécessitent la même licence car le code de l'université de
Californie descend du même Unix inventé par Thompson et Ritchie.
En 1993, Novell a acheté Unix (le code source et le nom commercial) directement d'AT&T. Novell a ensuite
légué le nom “Unix” à X/Open qui est un consortium de compagnies impliquées dans le développement de
Unix sous plusieurs variantes.
À la fin de 1995, SCO (« Santa Cruz Operations ») et HP se sont emparés du code source, mais Novell
demeure toujours présent dans le développement.
La vitesse à laquelle Unix s'est développé et répandu est phénoménale. Ceci est dû en grande partie au fait
que le monde entier s'est joint à l'effort collectif. La majorité des utilitaires et améliorations diverses
proviennent d'utilisateurs, d'universités et de compagnies manufacturières de matériel. AT&T ne pouvait pas
contrôler ce qui se passait et a été forcé d'intégrer toutes les améliorations qui étaient déjà répandues à
l'extérieur de leur portes. « System V Release 4 » est un bon exemple d'intégration puisqu'il regroupe «
System V » et BSD.
[Tapez un texte]
En 1994, on évaluait à plus de trois millions le nombre de systèmes Unix en opération.
1.2 Qu'est-ce qu'un système d'exploitation Unix?
Pour qu'il puisse porter le nom de Unix, un système d'exploitation doit détenir une licence de X/Open.
Cependant, il ne suffit pas de pouvoir se payer une telle licence car il faut également respecter les normes
suivantes:
IEEE Portable Operating System's Interface (POSIX) 1003.1
AT&T System V Interface Definition SVIDIII
X/Open XPG-4 interface specification
La conformité du système est vérifiée avec les Spec1170 qui est un ensemble de plus de mille API («
Application Programming Interface ») respectant les normes citées plus haut.
1.3 Pourquoi Unix est si populaire?
Voici une liste non exhaustive des raisons pour lesquelles Unix est populaire dans le monde de
l'informatique. Plusieurs d'entre elles pourraient ne pas sembler très évidentes à première vue pour le lecteur
mais elles le seront davantage à mesure que la lecture, l'étude et la pratique guideront ce dernier.
1.Le système est facile à porter et à comprendre parce qu'il est écrit en langage de haut niveau (C).
2.Il y a une multitude de primitives qui permettent la construction de programmes complexes à l'aide
de plus simples.
3.Il utilise un système de fichiers hiérarchiques dont l'implantation permet une maintenance facile et
consistante.
4.Il utilise un format consistant pour tous ces fichiers donnant plus de flexibilité lors de l'écriture des
programmes.
5.L'interface des périphériques est aussi simple et consistant.
6.Il est multi-usagers.
7.Le système permet la protection des ressources grâce à un système de sécurité et de permissions.
8.L'architecture est cachée facilitant l'écriture de programmes portables avec peu ou pas de
modifications.
9.Tous les processus et leurs permissions sont contrôlés par le « kernel ». Le phénomene de virus
n'existe presque pas sur Unix.
10.Il tire avantage de la puissance que les produits matériels de plus en plus sophistiqués peuvent
fournir.
11.Avec le coût du matériel qui ne cesse de diminuer, les manufacturiers ne peuvent plus se
permettre de développer leur système propriétaire s'il veulent rester compétitifs.
12.Unix est un environnement de travail idéal pour le développement de logiciels.
13.Le multitâche fonctionne selon un algorithme qui tient compte de la priorité des processus et qui
utilise la réquisition au besoin.
1.4 La philosophie de Unix
Les gens qui ont développé des utilitaires sur Unix se sont entendus sur une certaine philosophie de
conception. Cette section vous présente trois items de cette philosophie pour vous permettre de mieux
comprendre certaines façons de faire que les programmeurs utilisent.
1.Écrire des programmes qui font une seule chose mais qui la font bien.
2.Écrire des programmes qui travaillent bien ensemble.
3.Écrire des programmes qui manipulent des chaînes de caractères parce que c'est une interface
universelle.
[Tapez un texte]
Ceci explique le comportement de certains programmes; cette philosophie permet une synergie qui est
présente entre plusieurs utilitaires. Par exemple, un utilitaire produira des chaînes de caractères qui seront
faciles à comprendre par un autre. Il ne produira pas de titres ni d'en-têtes pour éviter les confusions. De
plus, il fera en sorte de faire sa seule tâche parfaitement pour qu'on puisse s'y fier. Ceci clarifie le point « 2.
» de la section précédente.
[Tapez un texte]
Téléchargement