<page>
    <title>UNIX</title>
    <id>3081</id>
    <revision>
      <id>31848345</id>
      <timestamp>2008-07-24T12:37:36Z</timestamp>
      <contributor>
        <username>Zorrobot</username>
        <id>179160</id>
      </contributor>
      <minor />
      <comment>robot  Ajoute: et, yi Modifie: br, ml, sr</comment>
      <text xml:space="preserve">{{Systèmes d'exploitation}}

'''UNIX™''' est le nom d'un [[système d'exploitation]] [[multitâche]] et [[multi-utilisateur]] 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. Il a donné naissance à une famille de systèmes, dont les plus populaires en [[2008]] sont [[Linux]] et [[Mac OS X]]. On nomme ''famille Unix'' l'ensemble de ces systèmes. On dit encore qu'ils sont de ''type Unix'' et on les qualifie d'''Unices''. Il existe aujourd'hui un ensemble de standards réunis sous la norme [[POSIX]] qui vise à unifier certains aspects de leur fonctionnement. Le nom UNIX dérive de Unics, un jeux de mot avec [[Multics]], car contrairement à ce dernier qui visait à offrir simultanément plusieurs services à un ensemble d'utilsateurs, le système initial de [[Ken Thompson]] se voulait moins ambitieux et utilisable par une seule personne à la fois avec des outils réalisant une seule tâche. &lt;ref&gt;Unix guide de l'étudiant 2&lt;sup&gt;e&lt;/sup&gt; édition, de Harley Hahn aux éditions Dunod ISBN: 2 10 003601 7&lt;/ref&gt;

== Histoire ==

=== La genèse d'UNIX ===

En [[1969]], [[Kenneth Thompson|Ken Thompson]] qui travaille alors pour les [[laboratoires Bell]] développa la première version d'un système d'exploitation mono-utilisateur sous le nom de &quot;New Ken's System&quot;. Il réalisa ce travail sur un [[mini-ordinateur]] [[PDP-7]] (''Programmed Data Processor'') de marque [[Digital Equipment Corporation|DEC]] animé par [[GCOS]] et rédigea le nouveau logiciel en [[Assembleur|langage d'assemblage]]. Le nom Unics fut suggéré par [[Brian Kernighan]] suite à un jeu de mot &quot;latin&quot; avec [[Multics]]; &quot;Multi- car Multics faisait la même chose de plusieurs façons alors qu'Unics faisait chaque chose d'une seule façon&quot;. Ce nom fut par la suite contracté en Unix (pour au final être déposé sous le nom UNIX par AT&amp;T), cependant personne ne se souvient de qui est à l'origine de la modification du &quot;cs&quot; en &quot;x&quot;.

Un décret datant de [[1956]] interdisait à l'entreprise AT&amp;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 [[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 [[TMG]], mais il trouva que le [[TMG]] n'offrait pas ce dont il avait besoin. Pendant une courte période il songea à réécrire UNIX en Fortran, mais finalement conçut le [[B (langage)|B]] avec l'aide de Dennis Ritchie (1969-1970), en s'inspirant du langage [[BCPL]]. Cependant UNIX ne fut jamais réécrit en B ; le B ne supportait pas de &quot;types&quot;, toutes les variables étaient de la même taille que les mots (''word'') de l'architecture, l'arithmétique sur les flottants n'était pas vraiment implémentée ; de plus le compilateur B utilisait la technique du &quot;threaded code&quot;. C'est pourquoi Dennis Ritchie entreprit en 1971 le NB (New B), qui fut renommé en [[C (langage)|C]], en commençant par créer des types.

Ken Thompson et Dennis Ritchie présentent le premier article sur UNIX au Symposium on Operating Systems Principles à l'Université de Purdue en [[1973]]. 
Le professeur [[Bob Fabry]] de l'université de Californie Berkeley (UCB), alors dans l'auditoire, est immédiatement intéressé et en janvier [[1974]] [[Keith Standiford]], étudiant de 2e cycle, installe la ''Version 4'' à l'UCB, distribuée sur bande magnétique.
Début [[1975]], [[Kenneth Thompson|Ken Thompson]] passe une année comme professeur invité à son alma mater, l'UCB. Avec [[Jeff Schriebman]] et [[Bob Kridle]], ils mettent sur pied la ''Version 6''. C'est à ce moment, qu'UNIX fut diffusé hors des laboratoires Bell.

A l'automne de cette année, [[William N. Joy|Bill Joy]] et [[Chuck Haley]], alors en 2e cycle, s'intéressent au nouveau système et implémentent l'éditeur en ligne ''ex'' en Pascal, et finissent par explorer le fonctionnement du [[noyau de système d'exploitation|noyau]] au moment du départ de [[Kenneth Thompson|Ken Thompson]].

Le développement fut également rejoint par Alan Snyder, Steven C. Johnson, Michael Lesk dans cette période allant de [[1973]] à [[1977]].  Au début de cette dernière année, [[William N. Joy|Bill Joy]] réalise la première ''Berkeley Software Distribution''.

Plus tard, avec l'arrivée de nouveaux terminaux, il écrit ''vi'' (l'éditeur visuel), une surcouche de ''ex''.
L'été [[1978]], la ''Second Berkeley Software Distribution'' ou 2BSD voit le jour.
Puis en décembre [[1979]], [[William N. Joy|Bill Joy]] distribue la 3BSD, la première qui supporte les ordinateurs [[VAX]] de [[DEC]]. Unix atteint alors sa version 7, son évolution s'accompagnant 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|VAX 11/780]].

=== L'expansion ===

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&amp;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]] [[Pagination|paginée]] du [[VAX|VAX 11/780]].

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

* La branche de recherche d'AT&amp;T qui développa, toujours aux laboratoires Bell, jusqu'en 1990, les 8{{e}}, 9{{e}} et 10{{e}} éditions du système UNIX.
* La branche commerciale d'AT&amp;T qui développa System III, puis quatre éditions de [[UNIX System V|System V]] (System V, SVR2, SVR3, SVR4).
* Berkeley Software Distribution développé par l'[[Université de Californie (Berkeley)|Université de Californie]], jusqu'en 1994.

Ces branches se sont mutuellement empruntées du code et/ou des concepts. Ainsi :
[[Image:Histoire d'UNIX.svg|thumb|500px|chronologie et filliation des différents unix et apparentés]]

* 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.
{{Clr}}

=== Le rôle de la DARPA ===

Lors de la publication de 3BSD en [[1979]] la [[Defense Advanced Research Projects Agency]] ([[Defense Advanced Research Projects Agency|DARPA]]) prend connaissance des avancées réalisées à l'UCB. Ils ont l'intention d'utiliser UNIX pour leurs projets.
En automne de cette même année, Bob Fabry propose à la DARPA une version augmentée de 3BSD pour répondre à leurs besoins.
Un contrat de 18 mois est signé en avril [[1980]], et [[Bob Fabry]] rassemble une équipe.
[[William N. Joy|Bill Joy]], qui vient juste de passer sa soutenance de [[Mémoire (écrit)|thèse]] ([[doctorat]]), se propose de participer.
Les versions se succèdent jusqu'à 4.1BSD.
Satisfaite, la DARPA signe pour deux ans supplémentaires et le budget est presque multiplié par cinq.
Le nombre de personnes impliquées croît vite. Le ''steering committee'' est formé pour aider à définir l'évolution du système.

Ce groupe se réunit deux fois par an entre avril [[1981]] et juin [[1983]], et comprend&amp;nbsp;:
* [[Bob Fabry]], [[William N. Joy|Bill Joy]], [[Sam Leffler]] (UCB)
* [[Alan Nemeth]], [[Rob Gurwitzn]], [[Beranek]], [[Newman]]
* [[Dennis Ritchie]] (Bell Laboratories)
* [[Keith Lantz]] (Stanford University)
* [[Rick Rashid]] (Carnegie-Mellon University)
* [[Bert Halstead]] (Massachusetts Institute of Technology)
* [[Dan Lynch]] (Information Sciences Institute)
* [[Duane Adams]], [[Bob Baker]] (DARPA)
* [[Jerry Popek]] (University of California, Los Angeles)

A partir de [[1984]], ce sont des ateliers réunissant bien plus de personnes qui prennent le relai.

=== TCP/IP&amp;nbsp;: la première implémentation ou la naissance d'Internet ===

C'est [[Rob Gurwitz]] qui publie la première implémentation des protocoles TCP/IP, les protocoles de l'Internet d'aujourd'hui. [[William N. Joy|Bill Joy]] l'intègre au système et ajuste les performances. Cette implémentation est considérée par beaucoup comme l'implémentation de référence. Elle est reprise plus tard par [[Microsoft]] pour ses [[Microsoft Windows|Windows]].

Vers la fin de l'été [[1982]], [[William N. Joy|Bill Joy]] annonce qu'il rejoint [[Sun Microsystems]], alors [[Sam Leffler]] prend la responsabilité de faire aboutir le projet.

En août [[1983]], 4.2BSD est publié, [[Sam Leffler]] quitte l'UCB pour [[Lucasfilm Ltd.|Lucasfilm]] et [[Mike Karels]] le remplace. 4.2BSD est alors très populaire et est plus vendue que toutes les autres distributions réunies, et que le System V d'AT&amp;T, en particulier parce que ce dernier n'avait ni la communication par réseau ni le système de fichiers FFS (Berkeley fast filesystem)

A la conférence Usenix de [[1985]], 4.3BSD est annoncé. De nouvelles architectures matérielles apparaissent, et le noyau est scindé en parties dépendantes et indépendantes du matériel (4.3BSD-Tahoe).

=== De l'[[open Source]] au librement redistribuable ===

Jusqu'à 4.3BSD-Tahoe, la licence AT&amp;T restait valable sur les sources qui étaient toujours distribuées.
Les utilisateurs ne sont pas des utilisateurs passifs mais participent activement au développement et améliorent progressivement le code original d'AT&amp;T.
La licence d'AT&amp;T sur les sources étant devenue excessivement chère, les dernières sources originales ont été nettoyées du code d'AT&amp;T, et en juin [[1989]], la première BSD libre, la ''Networking Release 1'' ou Net/1 est publiée.
La licence est volontairement très libérale : le logiciel peut être redistribué ou vendu, avec ou sans modification des sources, ce sous forme [[fichier binaire|binaire]] (compilée) ou non. Les notices de copyright dans les sources doivent être laissées intactes, et la documentation doit mentionner l'origine du code (l'UCB).
Net/1 alors coûte 1000 dollars à l'UCB pour la bande magnétique qui le transporte, et est mis à disposition par connexion [[File Transfer Protocol|FTP]] (file transfert protocol) anonyme (pas de mot de passe requis).

Le système de mémoire virtuelle du système d'exploitation MACH de l'université Carnegie-Mellon est importé, et 4.3BSD-Reno sort début [[1990]].

=== NetBSD, FreeBSD ===

[[Bill Jolitz]] à partir de ''Networking Release 2'' publie 386/BSD, destiné à une architecture [[Compatible PC|PC]] (386), mais est vite débordé quant à sa maintenance. Quelques mois après sa publication, des utilisateurs de 386BSD forment le groupe [[NetBSD]], et rassemblent leurs ressources pour maintenir et augmenter ce système. Leurs objectifs sont alors de faire en sorte que NetBSD fonctionne sous n'importe quel matériel. Le public cible de NetBSD est des développeurs-administrateurs de haute technicité.

Encore quelques mois plus tard, le groupe FreeBSD se forme et décide lui de se focaliser sur l'architecture PC. En décembre [[1993]], grâce au soutien de Walnut Creek CDROM, FreeBSD 1.0 est publié.

=== Les UNIX propriétaires ===

Dès 1977, AT&amp;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{{e}} édition développé en [[1980]] par [[Microsoft]].
* [[AIX]], développé par [[International Business Machines Corporation|IBM]], dont la première version de [[1986]] fut basée sur System V release 2.
* [[Solaris (système d'exploitation)|Solaris]], développé par [[Sun Microsystems]], basé au départ sur [[Berkeley Software Distribution|BSD]] 4.1c en [[1981]], puis sur System V release 4 (SVR4).
* [[HP-UX]], fondé sur [[UNIX System V|System V]], développé à partir de [[1986]] par [[Hewlett-Packard]]
* [[Ultrix]], développé par [[Digital Equipment Corporation|DEC]]. La version Ultrix-11, destinée aux machines de la famille PDP-11, est basée sur la 7{{e}} édition, avec des ajouts provenant de System V et de [[Berkeley Software Distribution|BSD]]. La version Ultrix-32, destinée aux machines de la famille VAX, est essentiellement fondée sur BSD.
* [[Irix|IRIX]], développé par [[Silicon Graphics|SGI]] depuis [[1986]].
* [[UnixWare]], descendant de SVR4, développé par [[Novell]] puis revendu à [[SCO Group]].
* [[SCO Group]] 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 (informatique)|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, Inc.|Apple]], compatible avec [[Mac OS]].

En [[1982]], AT&amp;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, XINU et GNU/Linux ===

En [[1985]], un professeur américain domicilié aux Pays-Bas, [[Andrew Tanenbaum|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. Un projet similaire nommé [[XINU]] (pour ''Xinu Is Not Unix'') fit aussi son apparition dans les années 1980 sous la direction de [[Douglas Comer]].

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 [[Intel 80386]]. Le noyau, qui était alors au stade expérimental, devait être généré sur un système [[Minix]].

Linus baptisa son système [[Noyau Linux|Freax]] et posta le message suivant sur le groupe de discussion &lt;tt&gt;comp.os.minix&lt;/tt&gt; :

{{début_citation}}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.{{fin_citation| &lt;ref&gt;[http://groups.google.fr/group/comp.os.minix/msg/b813d52cbc5a044b?dmode=source&amp;hl=fr&amp;utoken=XaUHLC0AAAB7pQJvr3Zhio-Z7m7CJj-tLhs-w1tCI0F7sYeACaNsDREaL-sZn6amG0EXM1GRyDU     Lecture du post]&lt;/ref&gt;}}

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, Linux s'était déjà imposé auprès des aficionados. Linux ne contient pas de code provenant d'UNIX, mais c'est un système inspiré d'UNIX et complètement réécrit. D'autre part, Linux est un [[logiciel libre]].

Linux lui même n'étant qu'un noyau, il utilise l'ensemble des logiciels du projet GNU pour faire un système d'exploitation complet.

=== Mac OS X ===

Unix est à l'origine de [[Mac OS X]], l'actuelle version du système d'exploitation d'Apple. Mac OS X est basé sur le même noyau que [[MkLinux]], [[Darwin (informatique)|Darwin]], et [[XNU]]: un micro-noyau [[Mach (informatique)|Mach]]. Toutefois, la couche Unix de Mac OS X n'est pas une personnalité du noyau [[Mach]], l'intégration est plus subtile puisqu'elle s'apparente plutôt à une greffe de l'un sur l'autre.

En mai 2007, la version 10.5 (''Leopard'') de MacOSX sur Intel a reçu la certification '''UNIX 03''' du [[Open Group]]&lt;ref&gt;{{en}} [http://www.opengroup.org/openbrand/register/brand3555.htm Mac OS X Version 10.5 Leopard on Intel-based Macintosh]&lt;/ref&gt;.

=== À l'heure actuelle ===

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

[[Image:Unix history-simple.svg|thumb|center|800px]]

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 [[Logiciel propriétaire|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 (informatique)|Darwin]]), occupent une part de marché de plus en plus importante.

=== Les procès ===

Début [[1992]], Unix System Laboratories (USL), composante d'AT&amp;T chargée de développer et vendre Unix, commence à poursuivre Berkeley Software Design, Incorporated (BSDI), mise en place pour développer et vendre une version commerciale. Le procès n'aboutit pas comme le souhaitait USL qui lance alors un autre procès contre BSDI et l'UCB.
USL est vendu par AT&amp;T à [[Novell]]. En janvier [[1994]], un accord est trouvé :
* 2 fichiers sur {{formatnum:18000}} sont retirés de Net/2
* un certain nombre de changements mineurs sont faits sur d'autres fichiers
* une notice de copyright est ajoutée à environ 70 fichiers (qui restent librement distribuables)
En janvier [[1995]], FreeBSD 2.0 sort avec les nouveaux fichiers de Net/2, alors appelée 4.4BSD-Lite, et des éléments de 386BSD (figure 1).

== Stations de travail et serveurs Unix ==

Seuls quelques grands constructeurs de [[Station de travail|stations de travail]] et de [[serveur informatique|serveurs]] développant des dérivés d'UNIX subsistent en [[2007]]&amp;nbsp;:

* [[International Business Machines Corporation|IBM]] : système [[AIX]] ;
* [[Sun Microsystems|Sun]] : [[Solaris (système d'exploitation)|Solaris]] ;
* HP-Compaq : [[HP-UX]] ;
* [[Silicon Graphics|SGI]] : [[Irix|IRIX]] ;
* [[SCO Group]] : [[UnixWare]]

[[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 une des raisons pour lesquelles nombre de ces constructeurs proposent désormais le système GNU/Linux avec leurs serveurs. Toutefois, si le [[Noyau de système d'exploitation|noyau]] Linux est bien défini, le [[système d'exploitation|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'[[imprimante|impression]] et des signaux.

== Le système UNIX ==

Le système UNIX est [[multi-utilisateur]] 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.





== Le standard UNIX ==

Le grand nombre de systèmes UNIX développés sur la base du System V de AT&amp;T ou bien de [[Berkeley Software Distribution|BSD]] conduisit des membres du groupe d'utilisateurs ''/usr/group'', qui a pris depuis le nom de UniForum, à forger un standard UNIX dès [[1981]] afin d'assurer une portabilité maximale entre les différents systèmes :

* en [[1984]] le groupe ''/usr/group'' publie [[POSIX]], une série de standards développés sous couvert de l'[[Institute of electrical and electronics engineers|IEEE]] (''[[Institute of electrical and electronics engineers|Institute of Electrical and Electronics Engineers]]''). POSIX est ainsi également connu sous le nom IEEE P1003.
* en [[1985]], AT&amp;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 Microsystems|Sun]], [[International Business Machines Corporation|IBM]], [[Hewlett-Packard|HP]], [[Digital Equipment Corporation|DEC]], [[AT&amp;T Inc.|AT&amp;T]], [[Unisys Corporation|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 [[Fichier informatique|fichiers]], les [[Processus (informatique)|processus]], les [[Communication inter-processus|IPC]] (communications inter-processus), et les [[Permissions Unix|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), [[permissions Unix|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 [[Thread (homonymie)|thread]]s, 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émaphore (informatique)|sémaphores]] ou les [[Sémaphore (informatique)|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 [[Tube Unix|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 [[Berkeley sockets|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 [[permissions Unix|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. 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'' [http://www.commentcamarche.net/unix/unixintro.php3] du site Web ''Comment ça marche ?'' [http://www.commentcamarche.net/]. 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. ».

Certains passages de cet article, ou d'une version antérieure de cet article, sont basés sur l'article [[FreeBSD]] ou sur une version antérieure de cet article. Pour la liste des auteurs, consulter [http://fr.wikipedia.org/w/index.php?title=FreeBSD&amp;action=history l'historique de cet article].

== Notes ==
{{Références}}

=== Liens internes ===
* [[Commandes Unix|Commandes UNIX]]
* [[FreeBSD]]
* [[Linux]] | [[GNU]]
* [[Mac OS X]]
* [[NetBSD]] 
* [[OpenBSD]]
* [[OpenSolaris]]
* [[Solaris (système d'exploitation)|Solaris]] 
* [[Type Unix|Système de type Unix]]

=== Liens externes (en français) ===

* [http://www-spi.lip6.fr/~queinnec/Books/ABCdUNIX/uunix-toc.html ABC d'UNIX] (manuel en licence libre GFDL)
* [http://www.admin-sys.com Informations sur l'administration système sous UNIX]
* [http://www.absint.com/aisee/galerie1_fr.htm Graphe de l'évolution des systèmes Unix]
* [http://jp.barralis.com/howto/linux/Unix-and-Internet-Fundamentals-HOWTO/Unix-and-Internet-Fundamentals-HOWTO.php Les &quot;fondamentaux d'UNIX&quot;] : le célèbre HOWTO en français présentant le mode de fonctionnement des systèmes UNIX en général.

===Liens externes (en anglais)===
* [http://www.unix-systems.org Open Group] détient la marque UNIX® et les spécifications du système (droits transférés par Novell).
* [http://cm.bell-labs.com/cm/cs/who/dmr/ Page de Dennis Ritchie] qui rassemble un certain nombre de documents sur l'histoire d'UNIX.
* [http://www.bell-labs.com/about/history/unix/ Bell Labs], ''The Creation of the UNIX Operating System''.
* ''[http://www.oreilly.com/catalog/opensources/book/kirkmck.html Twenty Years of Berkeley Unix (From AT&amp;T-Owned to Freely Redistributable)]'', article de [[Marshall Kirk McKusick]].
* La [http://cm.bell-labs.com/cm/cs/who/dmr/1stEdman.html 1{{re}} édition du Manuel UNIX] ([[1971]]).
* [http://www.levenez.com/unix/ UNIX History] donne l'historique graphique des systèmes d'exploitation Unix.
* [http://minnie.tuhs.org/Unix_History/] graphique complet, à imprimer, sur les UNIX.

{{Portail informatique}}

[[Catégorie:Unix]]

[[af:Unix]]
[[als:UNIX]]
[[an:Unix]]
[[ar:يونكس]]
[[ast:Unix]]
[[az:UNİKS]]
[[bat-smg:UNIX]]
[[be:Unix]]
[[bg:Юникс]]
[[bn:ইউনিক্স]]
[[br:Unix]]
[[bs:UNIX]]
[[ca:Unix]]
[[cdo:Unix]]
[[cs:Unix]]
[[da:UNIX]]
[[de:Unix]]
[[el:Unix]]
[[en:Unix]]
[[eo:Unikso]]
[[es:Unix]]
[[et:UNIX]]
[[eu:Unix]]
[[fa:یونیکس]]
[[fi:Unix]]
[[gl:UNIX]]
[[he:Unix]]
[[hr:UNIX]]
[[hu:Unix]]
[[ia:UNIX]]
[[id:Unix]]
[[is:Unix]]
[[it:Unix]]
[[ja:UNIX]]
[[kk:UNIX]]
[[ko:유닉스]]
[[la:Unix]]
[[lt:UNIX]]
[[lv:UNIX]]
[[mg:UNIX]]
[[mk:Unix (оперативен систем)]]
[[ml:യുണിക്സ്]]
[[ms:UNIX]]
[[nds:Unix]]
[[nl:Unix]]
[[nn:Unix]]
[[no:Unix]]
[[pl:Unix]]
[[pt:Unix]]
[[ro:UNIX]]
[[ru:UNIX]]
[[sh:Unix]]
[[simple:UNIX]]
[[sk:Unix]]
[[sl:Unix]]
[[sr:Уникс]]
[[sv:Unix]]
[[ta:யுனிக்ஸ்]]
[[th:ยูนิกซ์]]
[[tr:UNIX]]
[[uk:UNIX]]
[[ur:یونکس]]
[[uz:UNIX]]
[[vi:Unix]]
[[yi:יוניקס]]
[[zh:UNIX]]
[[zh-min-nan:Unix]]
[[zh-yue:UNIX]]</text>
    </revision>
  </page>