Unix, officiellement UNIX, est une famille de systèmes d'exploitation ouverts, multitâches et multi-utilisateurs. Unix est dérivé de l'Unix d'origine créé par AT&T, le développement de ce dernier ayant commencé dans les années 1970 au centre de recherche de Bell Labs mené par Kenneth Thompson. Il est composé d'un noyau (qui assure la gestion de la mémoire, des entrées et sorties de bas niveau, l'enchaînement des tâches), d'un interpréteur ou superviseur (le shell), et de nombreux petits utilitaires, accomplissant chacun une action spécifique, commutables entre eux (mécanisme de « redirection ») et appelés depuis la ligne de commande.
Particulièrement répandu dans les milieux universitaires au début des années 1980., il a été utilisé par beaucoup de start-ups fondées par des jeunes entrepreneurs à cette époque et a donné naissance à une famille de systèmes, dont les plus populaires à ce jour sont les variantes de BSD (notamment FreeBSD, NetBSD et OpenBSD), Linux, iOS et macOS. La quasi-totalité des systèmes d'exploitation PC ou mobile (à l'exception des Windows NT) est basée sur le noyau de (BSD, macOS, IRIX), ou reprend des principes de bases (Linux, Minix) développés dans Unix... On nomme « famille Unix », « systèmes de type Unix » ou simplement « systèmes Unix » l'ensemble de ces systèmes. Il existe un ensemble de standards réunis sous les normes POSIX et single UNIX specification qui visent à unifier certains aspects de leur fonctionnement.
Le nom « UNIX » est une marque déposée de l'Open Group, qui autorise son utilisation pour tous les systèmes certifiés conformes à la single UNIX specification ; cependant, il est courant d'appeler ainsi les systèmes de type Unix de façon générale. Il dérive de « Unics » (acronyme de « Uniplexed Information and Computing Service. »), et est un jeu de mots avec « Multics », car contrairement à ce dernier qui visait à offrir simultanément plusieurs services à un ensemble d'utilisateurs, le système initial de Kenneth Thompson se voulait moins ambitieux et utilisable par une seule personne à la fois avec des outils réalisant une seule tâcheHarley Hahn, Unix guide de l'étudiant, , éditions Dunod. ..
Particularités des systèmes Unix Les systèmes Unix sont des systèmes ouverts, multitâches et multi-utilisateurs..
Les systèmes Unix ont en commun plusieurs concepts développés dès les premières versions d'Unix aux laboratoires Bell.
Utilitaires
Les systèmes Unix disposent d'un grand nombre d'interpréteurs de commandes, appelés shells Unix. On peut notamment citer sh, bash et tcsh.
Système de fichiers
Organisation arborescente et hiérarchique thumb|Exemple d'arborescence de fichiers sous Linux. Unix dispose d'un système de fichiers hiérarchique. Au contraire de nombreux autres systèmes (comme Microsoft Windows ou Mac OS Classic par exemple), qui disposent d'une racine de système de fichiers indépendante par périphérique de stockage ou par partition, le système de fichiers d'Unix a une unique racine, et les autres périphériques de stockage sont accessibles par des points de montage dans le système de fichiers. Par exemple, le dossier /home, qui contient les fichiers personnels des utilisateurs, est fréquemment stocké sur un périphérique ou une partition différente de la racine ; une fois ce périphérique monté sur le dossier /home, les demandes de fichiers situés dans /home seront redirigées vers ce périphérique. L'organisation de l'arborescence du système de fichiers est définie par certaines conventions qui existent depuis la version 7 d'Unix, où est apparue la page de manuel qui la décrit.. Le Filesystem Hierarchy Standard tente d'harmoniser les différences qui ont pu se développer, en particulier entre les différentes versions de Linux..
Système de fichier et périphériques Une autre particularité d'Unix est de considérer un grand nombre d'objets comme des fichiers. Toutes les unités extérieurs au système central sont vues comme des pseudo-fichiers. Dès les premières versions d'Unix, les périphériques d'entrée-sortie sont gérés comme des fichiers d'un type spécial. Cela permet par exemple, au niveau applicatif, d'écrire sur une bande magnétique de la même façon que sur un fichier standard qui serait stocké sur le disque..
Fonctionnalités de gestion de fichiers Le système de fichier d'Unix supporte certaines fonctionnalités comme les liens symboliques, permettant de rediriger un fichier vers un autre. Unix autorise l'existence de plusieurs chemins pour localiser un fichier. Un fichier est détruit quand tous les chemins qui permettent de l'atteindre ont disparu.
Autorisations et protections sur les fichiers. Unix considère trois actions que l'on peut effectuer sur un fichier : lire, écrire, exécuter. La création et la destruction de fichiers sont des formes particulières d'écriture dans le répertoire où l'on veut créer ou détruire ce fichier. Unix supporte un système de permissions permettant de donner des autorisations différentes au propriétaire du fichier, aux utilisateurs de son groupe, et aux autres utilisateurs. On a donc trois types d'actions (lire écrire exécuter) et trois types d'usagers (le propriétaire, le groupe du propriétaire, et tous les autres). Ainsi le système de protection ne contient que 9 cas et ne nécessite que 9 bits par fichiers.
Gestion des processus Un processus est un programme (ou un sous-programme) en cours d'exécution. Plusieurs processus peuvent exécuter le même programme simultanément. Sous Unix, chaque processus possède un identifiant.
Le processus est composé de trois régions :
TEXT : contient les instructions que le processus exécute ; DATA : contient les variables gérées statiquement ; STACK : contient les variables gérées dynamiquement.
Signaux Unix
Un signal permet d'annoncer un évènement à un processus. Il s'agit d'un évènement imprévisible, dont le traitement doit être défini à l'avance dans le programme exécuté par le processus.
Histoire Dénomination d'Unix Suggéré par Brian Kernighan, Unics est un jeu de mots « latin » avec Multics, qui faisait la même chose de plusieurs façons alors qu'Unics faisait chaque chose d'une seule façon. Genèse d'Unix vignette|alt=Un mini-ordinateur PDP-7|Un PDP-7. En 1969, Ken Thompson et Dennis Ritchie développent en langage d'assemblage la première version du New Ken's, système d'exploitation mono-utilisateur, sur un mini-ordinateur PDP-7 de DEC animé par General Comprehensive Operating System., aux laboratoires Bell du géant du téléphone AT&T, à qui un jugement d'expédient de 1956. interdisait de se diversifier dans l'informatique. Unix n'est donc pas commercialisé en 1969. En 1970, le code est porté sur PDP-11/45.
Projets de 1970 et 1971 En 1971, conscient de la difficulté que représente la maintenance d'un système écrit en langage assembleur, 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 avait songé à réécrire Unix en Fortran, mais finalement conçut le B avec l'aide de Dennis Ritchie dans les années 1969 et 1970, en s'inspirant du langage BCPL.. Cependant Unix ne fut jamais réécrit en B ; le B ne supportait pas les types, toutes les variables étaient de la même taille que les mots de l'architecture, l'arithmétique sur les flottants n'était pas implémentée ; de plus, le compilateur B utilisait la technique du . C'est pourquoi Dennis Ritchie entreprit en 1971 d'écrire le New B, qui fut renommé en C. Le langage C est toujours l'un des langages les plus utilisés aujourd'hui...
Parallèlement, les concepts de datagramme et d'informatique distribuée émergent, avec Arpanet, le réseau Cyclades, le Réseau du NPL et la Distributed System Architecture, qui deviendra en 1978 le modèle OSI-DSA. Plus de communications entre les machines des différents centres de recherche démontre l'utilité de systèmes d'exploitation ouverts et convergents, ce qui deviendra une nécessité avec les premières stations de travail incluant TCP/IP de Sun Microsystems, créée par Andy Bechtolsheim, Bill Joy, Vinod Khosla et Scott McNealy.
Ken Thompson et Dennis Ritchie présentent le premier article sur Unix au Symposium on Operating Systems Principles à l'université 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 Keith Standiford, étudiant de , installe la Version 4 à l'UCB, distribuée sur bande magnétique..
Décision de 1975 Les poursuites pour viol de la loi anti-trusts qui reprennent contre AT&T, annoncées le , demandent la scission du groupeArticle dans Le Monde le 22 novembre 1974 ce qui se produira en 1982 via un accord amiable avec la justice. C'est la raison pour laquelle la décision fut prise en 1975 par AT&T. 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.
Le logiciel Unix commença ainsi à être diffusé hors des laboratoires Bell au cours de l'année 1975, qui voit Ken Thompson passer une année comme professeur invité à son alma mater, l'UCB.., où Jeff Schriebman et Bob Kridle mettent sur pied la .
vignette|alt=Unix version 7 fonctionnant sur un PC avec un émulateur de PDP-11|Unix version 7 sur un émulateur de PDP-11.
Fin 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). BSD sera plus tard le premier système Unix à exploiter pleinement le mécanisme de mémoire virtuelle paginée de l'ordinateur VAX 11/780.
La Second Berkeley Software Distribution de 1978 À l'automne 1975, Bill Joy et Chuck Haley, alors en second 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 au moment du départ de Ken Thompson. Le développement fut également rejoint par Alan Snyder, Steven C. Johnson, Michael Lesk dans cette période allant de 1973 à 1977..
Plus tard, avec l'arrivée de nouveaux terminaux, Joy écrit vi (l'éditeur visuel), une surcouche de ex. L'été 1978, la Second Berkeley Software Distribution ou 2BSD voit le jour..
Le projet Sol de l'IRIA en France, décliné sur SM90, Mitra 15 et Systime À l'IRIA en France, Michel Gien est nommé en 1979 responsable du projet pilote SOL destiné à mixer les efforts industriels et recherche publique autour d'un système compatible avec SOL, un système d'exploitation Unix. En 1979-1983, il a étudié la portabilité des systèmes d'exploitation, en commençant par le miniordinateur Mitra 15, qui datait de , puis avec son successeur, le Mini 6 de la CII-HB. Son ami Hubert Zimmermann, autre ex-cadre du réseau Cyclades part en 1980 au CNET, centre de recherche des PTT, où il étendant la démarche sur une station de travail à structure modulaire multiprocesseur sous UNIX, la SM90<ref>"La recherche au CNET dans les années 1980", par Jean-Pierre Poitevin, dans la revue Entreprise et histoire" en 2010</ref>, conçue en interne entre 1980 et 1981, avec la collaboration de la SEMS, qui préfigure la série de machines à vocation industrielle"Histoire d'un pionnier de l'informatique: 40 ans de recherche à l'Inria". Livre d'Alain Beltran et Pascal Griset en 2007 .