Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

UNIX


Principaux systèmes
d'exploitation
BSD
FreeBSD - NetBSD
OpenBSD - PicoBSD
GNU/Linux (Liste)
Debian - Fedora
Gentoo - Knoppix
Mandrake - Slackware
SuSE
Microsoft Windows
95 - 98 - Me
NT - 2000 - XP - 2003
Autres
Mac OS - Mac OS X
OS/2 - QNX
Solaris - UNIX
AmigaOS - BeOS

UNIX est un système d'exploitation, à usage principalement professionel, dit ouvert (open systems), multitâche et, multi-utilisateurs, créé en 1969. Il a donné naissance à toute une famille de systèmes, dont les plus populaires en 2004 sont GNU/Linux, *BSD et Mac OS X.

Sommaire

Stations de travail et serveurs UNIX

Aujourd'hui (2004), il ne subsiste que quelques grands constructeurs de stations de travail et de serveurs développant des dérivés d'UNIX. Ces UNIX ont généralement été conçus par des constructeurs spécifiques.

Microsoft a possédé quelque temps les droits d'une version d'UNIX qui se nommait XENIX.

La philosophie des constructeurs de stations et serveurs UNIX a été au départ de développer un système d'exploitation pour pouvoir vendre leurs machines, en y ajoutant si possible un petit « plus » pour se démarquer de la concurrence. C'était oublier que les parcs UNIX sont le plus souvent hétérogènes et que toute différence d'une machine à l'autre, même créée avec la meilleure intention du monde, constitue un risque réel de contre-productivité.

Beaucoup de ces constructeurs proposent désormais, pour cette raison, le système GNU/Linux avec leurs serveurs. Toutefois, si le noyau linux est bien défini, le système Linux change sensiblement d'une distribution à l'autre, ce qui laisse le problème de la compatibilité.

Ce problème se posait déjà jadis avec l'opposition entre UNIX System V et UNIX BSD, en particulier sur des gestions sensiblement différentes des impressions et des signaux.

Le système UNIX

Le système UNIX est un système d'exploitation multi-utilisateurs et multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs utilisateurs.

La genèse d'UNIX

En 1969, Ken Thompson développa sous GECOS une première version entièrement en assembleur, pour un DEC PDP-7 (Programmed Data Processor), d'un système d'exploitation mono-utilisateur dont certaines idées sont inspirées de Multics, d'où son nom UNICS (UNiplexed Information and Computing Service), un jeu de mots attribué à Brian Kernighan. Par la suite, le nom fut contracté en UNIX.

En 1971, conscient de la difficulté que représente la maintenance d'un système écrit en assembleur, Ken Thompson songea à réécrire UNIX en FORTRAN ou bien en B, un langage qu'il a conçu en s'inspirant du langage BCPL. Cependant, les tentatives échouèrent. Dennis Ritchie, qui s'était entre-temps joint au projet de Thompson, mit au point le successeur du B, le langage C. En 1973, UNIX fut réécrit à 80% en C, et baptisé UNIX Time-Sharing System (UTS).

L'expansion

En 1975, à partir de la version 6 du système, UNIX fut diffusé hors des laboratoires Bell. Et lorsque le système passa à la version 7 en 1979, l'évolution s'accompagna de nombreuses modifications notables telles que l'extension à 2 Go de la taille maximale des fichiers, l'ajout de plusieurs utilitaires, et surtout la portabilité du système. C'est à cette époque que le premier grand portage d'UNIX, la version 32/V, fut réalisé, sur un VAX 11/780.

Un décret datant de 1956 empêchait l'entreprise AT&T, dont dépendait Bell Labs, de commercialiser autre chose que des équipements téléphoniques ou télégraphiques. C'est la raison pour laquelle la décision fut prise en 1973 de distribuer le système UNIX complet avec son code source dans les universités à des fins éducatives, moyennant l'acquisition d'une licence pour un prix modique.

Dès la fin de l'année 1977, des chercheurs de l'Université de Californie apportèrent de nombreuses améliorations au système UNIX fourni par AT&T, et le distribuèrent sous le nom de Berkeley Software Distribution (ou BSD). Ainsi BSD fut par exemple le premier système UNIX à exploiter pleinement le mécanisme de mémoire virtuelle paginée du VAX 11/780.

Trois branches de développement des sources virent le jour :

On notera que ces branches se sont mutuellement empruntées du code et/ou des concepts. Ainsi :

Les UNIX propriétaires

Dès 1977, AT&T mit les sources d'UNIX à la disposition des autres entreprises, si bien qu'un grand nombre de dérivés d'UNIX furent développés :

En 1982, AT&T annonça le support de son produit, la version System III, qui constitue de ce fait sa première version commerciale d'UNIX. En 1983 suivit la version System V.

Minix et Linux

En 1985, un professeur américain domicilié aux Pays-Bas, Andrew S. Tanenbaum, développa un système d'exploitation minimal, baptisé Minix, afin d'enseigner les concepts des systèmes d'exploitation à ses étudiants. En 1991 un étudiant finlandais, Linus Torvalds, décida de concevoir, sur le modèle Minix, un système d'exploitation capable de fonctionner sur les architectures à base de processeur 80386 d'Intel. Son système était si expérimental qu'il avait besoin à ce stade d'un Minix pour booter.

Linus baptisa son système Linux et posta le message suivant sur le groupe de discussion comp.os.minix :

«Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones.»

Il est à noter que Linux ne contient pas de code provenant d'UNIX mais que c'est un système inspiré de Minix et complètement réécrit. D'autre part, Linux est un logiciel libre.

À l'heure actuelle

Voici un schéma non exhaustif retraçant globalement l'apparition des principaux systèmes de type UNIX :

image:unix_histoire.png

L'incompatibilité grandissante entre les nombreuses variantes d'UNIX proposées par les différents éditeurs pour les différentes machines a fini par porter atteinte à la popularité d'UNIX. De nos jours, les systèmes UNIX propriétaires, longtemps majoritaires dans l'industrie et l'éducation, sont de moins en moins utilisés. En revanche, trois systèmes de type UNIX basés sur BSD (FreeBSD, NetBSD et OpenBSD) d'une part, et le système GNU/Linux, compatible UNIX, d'autre part, ainsi que Mac OS X (basé sur le micro-noyau Mach), occupent une part de marché de plus en plus importante.

Le standard UNIX

Etant donné le grand nombre de systèmes UNIX développés sur la base du System V de AT&T ou bien de BSD, la question d'un standard UNIX s'est posée dès 1981 parmi les membres du groupe d'utilisateurs /etc/group, afin d'assurer une portabilité maximale entre les différents systèmes :

Aspects techniques

Le noyau d'UNIX repose sur quatre concepts élémentaires : les fichiers, les processus, les IPC (communications inter-processus), et les droits d'accès :

Fichiers

Le fichier est l'unité élémentaire de gestion de ressources sous UNIX. Un fichier sous UNIX n'est pas typé, ce qui veut dire que le système ne connait pas le format des données qu'il contient, et peut représenter différentes ressources telles qu'une suite de caractères stockée sur un support physique, un périphérique (disque dur, imprimante, dérouleur à bandes, mémoire, interface réseau etc.), ou même des paramètres dynamiquement reconfigurables du noyau. Un fichier est un objet référencé dans un système de fichiers. Cette référence contient toutes les informations nécessaires au traitement de ce fichier : propriétaire, groupe (chaque fichier étant détenu par un propriétaire et à un groupe qui possèdent des droits particuliers), droits d'accès des différentes catégories d'utilisateurs, taille, date de dernière modification, date du dernier accès, références des blocs de données sur le disque s'il représente une suite de caractères.

Processus

Le processus est l'unité élémentaire de gestion des traitements sous UNIX. Il s'agit d'une abstraction comprenant un espace d'adressage et supportant un ou plusieurs flots d'exécution de programme, les threads, chacun possédant une pile et son propre contexte d'exécution. UNIX étant un système multitâche, il permet de partager les ressources de calcul entre les threads. D'autre part il est préemptif, ce qui implique que ce partage est effectué de manière transparente pour les threads. Ce partage transparent est réalisé grâce à un ordonnanceur adapté à l'usage auquel est destiné le système. Dans un système à temps partagé, l'ordonnanceur tente de répartir les ressources de calcul de manière équitable entre les threads tout en privilégiant le temps de réponse des entrées/sorties. Dans un système temps-réel, les threads sont ordonnancés selon des contraintes temporelles qui doivent être garanties strictement (temps-réel dur) ou bien avec un certain taux d'échec (temps-réel souple).

Communications inter-processus (IPC)

Les communications inter-processus servent à arbitrer l'utilisation de ressources partagées entre différents processus ou threads par le biais d'objets de synchronisation tels que les sémaphores ou les mutex, à permettre le contrôle d'un processus par un autre ou bien par le noyau par le biais de signaux, et enfin à permettre à deux processus d'établir une communication : localement par le biais de pipes, de segments de mémoire partagée ou de files de messages, et de manière transparente (localement ou sur un réseau) par le biais de sockets.

Contrôle d'accès aux ressources

Sources de l'article

Certains passages de cet article, ou d'une version antérieure de cet article, sont basés sur l'article Introduction aux systèmes UNIX [1] du site Web Comment ça marche ? [2] . L'article d'origine porte la notice de copyright suivante : « © Copyright 2003 Jean-François Pillou - Hébergé par Web-solutions.fr. Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement. ».

Voir aussi

Liens internes

[ Informatique | Linux | GNU | Commandes UNIX | Mac OS X | FreeBSD | NetBSD | OpenBSD ]

Liens externes (en anglais)



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia