UNIX
Un article de Freepedia.
| Principaux systèmes d'exploitation |
| BSD |
| FreeBSD - NetBSD |
| OpenBSD - DragonFly BSD |
| PC-BSD |
| GNU/Linux (Liste) |
| Debian - Fedora |
| Gentoo - Mandriva |
| Red Hat - Slackware |
| SuSE - Ubuntu |
| Mac OS |
| Système 6 - Système 7 |
| Mac OS 8 - Mac OS 9 |
| Mac OS X -.0 -.1 -.2 -.3 -.4 |
| MS-DOS - Microsoft Windows |
| 3.x - 95 - 98 - Me |
| NT - 2000 - XP - 2003 - XP 64 |
| Vista |
| Autres |
| AmigaOS - BeOS - Inferno |
| Haiku OS - OS/2 - QNX |
| Solaris - UNIX |
| MVS - OS/400 - Plan 9 |
| VMS - ReactOS |
UNIX est le nom d'un système d'exploitation créé en 1969, à usage principalement professionnel, conceptuellement ouvert et fondé sur une approche par laquelle il offre de nombreux petits outils chacun dotés d'une mission spécifique, multitâche et multiutilisateur. Il a donné naissance à une famille de systèmes, dont les plus populaires en 2005 sont GNU/Linux, *BSD et Mac OS X. Les UNIX sont aujourd'hui tous conformes à la norme POSIX. Image:UnixHistory.jpg
Sommaire |
Stations de travail et serveurs UNIX
Seuls quelques grands constructeurs de stations de travail et de serveurs développant des dérivés d'UNIX subsistent en 2005 :
- IBM : système AIX ;
- Sun : Solaris pour le processeur SPARC, mais a été porté pour l'architecture x86 d'Intel ;
- HP-Compaq : HP-UX ;
- SGI : IRIX
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, menace l'interopérabilité donc constitue un risque réel de contre-productivité car contraignent les informaticiens à bricoler afin d'interconnecter les systèmes.
C'est pourquoi nombre de ces constructeurs proposent désormais 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 conduit à des dissemblances causant parfois des pertes de temps.
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 de l'impression et des signaux.
Le système UNIX
Le système UNIX est multiutilisateur et multitâche, il permet donc à un ordinateur mono ou multi-processeurs d'exécuter apparemment simultanément plusieurs programmes dans des zones protégées appartenant chacune à un utilisateur.
La genèse d'UNIX
En 1969, Ken Thompson développa la première version d'un système d'exploitation mono-utilisateur. Il réalisa ce travail sur un mini-ordinateur PDP-7 (Programmed Data Processor) de marque DEC animé par GECOS et rédigea le nouveau logiciel en langage d'assemblage. Certains concepts clés de son système étaient issus de Multics, raison pour laquelle son système fut baptisé UNICS (UNiplexed Information and Computing Service), par un jeu de mots attribué à Brian Kernighan. Ce nom fut par la suite contracté en UNIX.
En 1971, conscient de la difficulté que représente la maintenance d'un système écrit en langage d'assemblage, Ken Thompson songea à réécrire UNIX en FORTRAN ou bien en B, qu'il a conçu en s'inspirant du langage BCPL. 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 puis baptisé UNIX Time-Sharing System (UTS) et utilisé localement.
L'expansion
Un décret datant de 1956 interdisait à 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 au prix très faible.
En 1975, à partir de la version 6 du système, UNIX fut diffusé hors des laboratoires Bell. Lorsqu'en 1979 il atteint sa version 7, l'évolution s'accompagna de nombreuses modifications notables telles que l'extension à 2 Go de la taille maximale d'un fichier, 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.
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 :
- La branche de recherche d'AT&T qui développa, toujours aux laboratoires Bell, jusqu'en 1990, les 8ème, 9ème et 10ème éditions du système UNIX.
- La branche commerciale d'AT&T qui développa System III, puis quatre éditions de System V (System V, SVR2, SVR3, SVR4).
- Berkeley Software Distribution développé par l'Université de Californie, jusqu'en 1994.
On notera que ces branches se sont mutuellement empruntées du code et/ou des concepts. Ainsi :
- La 8e édition est issue de la version 4.1 BSD.
- La version SVR3 a emprunté le concept des STREAMS à la 8e édition.
- La version SVR4 a intégré beaucoup de code de la version 4.3 BSD.
- La version 4.4 BSD comporte une très petite quantité de code de la version SVR4.
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 :
- XENIX, fondé sur la 7ème édition développé en 1980 par Microsoft.
- AIX, développé par IBM, dont la première version de 1986 fut basée sur System V release 2.
- Solaris, développé par Sun Microsystems, basé au départ sur BSD 4.1c, puis sur System V release 4 (SVR4).
- HP-UX, fondé sur System V, développé à partir de 1986 par Hewlett Packard
- Ultrix, développé par DEC. La version Ultrix-11, destinée aux machines de la famille PDP-11, est basée sur la 7ème édition, avec des ajouts provenant de System V et de BSD. La version Ultrix-32, destinée aux machines de la famille VAX, est essentiellement fondée sur BSD.
- IRIX, développé par SGI.
- UnixWare,descendant de SVR4, développé par Novell puis revendu à SCO.
- SCO UNIX, fondé sur XENIX et System V développé dès 1979 par Santa Cruz Operations et Hewlett Packard.
- Tru64, fondé sur une version du micro-noyau Mach 2.5 réalisée par le consortium OSF (Open Software Foundation). Il a d'abord été développé sous le nom OSF/1 puis DEC UNIX par Digital Equipment Corporation, Compaq et enfin Hewlett Packard.
- A/UX, un UNIX développé par Apple, compatible avec Mac OS.
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 de Minix, un système d'exploitation capable de fonctionner sur les architectures à base de processeur 80386 d'Intel. Le noyau, qui était alors au stade expérimental, devait être généré sur un système Minix.
Linus baptisa son système Freax 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.»
Le nom de Linux vient en fait de la personne qui hébergeait le projet pour sa diffusion (version 0.0.1) et non d'un choix égocentrique de Linus. Il voulut un temps rebaptiser son système "Freax", mais il était trop tard, le nom "Linux" s'était déjà imposé auprès des aficionados. Il est à noter que Linux ne contient pas de code provenant d'UNIX, mais que c'est un système inspiré d'UNIX et complètement réécrit. D'autre part, Linux est un logiciel libre.
Mac OS X
Unix est à l'origine de MacOS X, l'actuelle version du système d'exploitation d'Apple. MacOS X est basé sur le même noyau que Darwin,XNU un micro-noyau Mach surmonté d'une couche FreeBSD.
À l'heure actuelle
Voici un schéma non exhaustif retraçant globalement l'apparition des principaux systèmes de type UNIX :
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 Darwin), occupent une part de marché de plus en plus importante.
Le standard UNIX
Le grand nombre de systèmes UNIX développés sur la base du System V de AT&T ou bien de BSD conduisit des membres du groupe d'utilisateurs /etc/group à forger un standard UNIX dès 1981 afin d'assurer une portabilité maximale entre les différents systèmes :
- en 1984 le groupe /etc/group publie POSIX, une série de standards développés sous couvert de l'IEEE (Institute of Electrical and Electronics Engineers). POSIX est ainsi également connu sous le nom IEEE P1003.
- en 1985, AT&T publie SVID (System V Interface Definition) décrivant le System V. Cette première définition est différente de POSIX.
- à la même époque, un consortium de constructeurs (Sun, IBM, HP, DEC, AT&T, Unisys, ICL, etc.) publie le standard X/Open Portability Guide Issue 3 (XPG3). Ce standard s'occupe tout particulièrement des différences issues de la localisation géographique (date, alphabet, etc.).
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 connaît 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 faisant partie d'un ou plusieurs groupes, le propriétaire et chaque groupe 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
- Au niveau logiciel, la politique de sécurité du système UNIX est fondée sur le principe que chaque ressource admet un identificateur, un propriétaire et un ensemble de droits d'accès (en lecture, en écriture, en exécution) répartis en trois groupes : 1) les droits du propriétaire; 2) les droits du groupe auquel appartient le propriétaire; 3) les droits des autres utilisateurs. La plupart des systèmes UNIX actuels proposent un modèle plus fin, celui des listes de contrôle d'accès (ACL - Access Control List). Un utilisateur spécial appelé root possède tous les droits sur toutes les ressources. Il est en général utilisé uniquement pour des tâches d'administration. Par souci d'une meilleure sécurité, certains systèmes UNIX permettent de mieux nuancer l'acquisition de droits supplémentaires par les utilisateurs. Ainsi Linux propose-t-il les « capacités » (capabilities) et Mac OS X permet d'installer des applications et d'intervenir sur la configuration du système au moyen d'un compte administrateur distinct de root (qui est d'ailleurs désactivé par défaut), en ce qu'il ne peut modifier les fichiers fondamentaux du système.
- Au niveau matériel, le contrôle d'accès aux ressources se base d'une part sur des mécanismes inhérents aux principes de fonctionnement de la mémoire virtuelle, et d'autre part sur un modèle de protection à 2 niveaux : le mode superviseur (le plus privilégié, réservé au fonctionnement du noyau) et le mode utilisateur (le moins privilégié). Ce type de contrôle d'accès est possible sur la plupart des processeurs modernes supportant un UNIX. Il est à noter que certains processeurs fournissent des possibilités de protection plus étendues. Ainsi les processeurs de la famille Intel ix86 comportent 4 niveaux (ou anneaux) de protection. Des systèmes d'exploitation (peu nombreux à l'heure actuelle), tels que OS/2, exploitent cette possibilité.
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 français)
- ABC d'UNIX (manuel en licence libre GFDL)
- Informations sur l'administration système sous UNIX
- Graphe de l'évolution des systèmes Unix
Liens externes (en anglais)
- Open Group détient la marque UNIX® et les spécifications du système (droits transférés par Novell).
- Page de Dennis Ritchie qui rassemble un certain nombre de documents sur l'histoire d'UNIX.
- Bell Labs, The Creation of the UNIX Operating System.
- Twenty Years of Berkeley Unix (From AT&T-Owned to Freely Redistributable), article de Marshall Kirk McKusick.
- La 1re édition du Manuel UNIX (1971).
- UNIX History donne l'historique graphique des systèmes d'exploitation Unix.
- [3] graphique complet, à imprimer, sur les UNIX.
| Image:Symbole-ordinateur.png | Portail Informatique - Accédez aux articles de Wikipédia concernant l'informatique. |



