Définition

Un système d’exploitation est un « programme » ou ensemble de programmes assurant la gestion de l’ordinateur et de ses périphériques.

Programme ou ensemble de programmes et d’API servant d’interface entre le matériel (hardware) et les applications (software).

Unix est un système d’exploitation multi-tâches et multi-utilisateurs. Il est disponible du simple micro (PC, Mac, Atari, Amiga) jusqu’au gros système (IBM Z séries) et même dans des PDA.

  • Portable : Écrit majoritairement en C, seules quelques parties sont en assembleur.
  • Multi-tâches : Le système peux exécuter plusieurs tâches en même-temps, de manière préemptive, sur un ou plusieurs processeurs.
  • Multi-utilisateurs : Plusieurs utilisateurs peuvent se connecter et travailler en même temps sur une machine, soit directement sur celle-ci (Linux, BSD, Sco) soit depuis un terminal distant.
  • Stable : protection mémoire, les plantages du système par lui-même sont très rares.
  • Deux standards principaux : System V et BSD, qui tout en restant compatibles diffèrent au niveau de certains appels systèmes, de la hiérarchie du système de fichier, de la séquence de démarrage…

Les composants de base d’un Unix sont le noyau (kernel) et les outils (shell et commandes). Le système d’exploitation a pour principales tâches les points suivants :

  1. Gestion de la mémoire
  2. Accès aux périphériques
  3. Accès disque / Système de fichiers
  4. Gestion des programmes (processus)
  5. Sécurité / Accès aux données
  6. Collecte d’informations système : Statistiques

Historique

Les origines

  • 1969 : Bell Laboratories, centre de recherches commun à AT&T et Western Electrics, Ken Thompson travaille sur MULTICS. Bell se retire du projet, Multics est abandonné. Ken Thompson décide de développer son propre OS, en s’éloignant volontairement de tout existant et écrit UNICS sur DEC PDP-7. Équipe : Dennis Ritchie, Rudd Canaday, puis Brian Kernighan.
  • 1970 : Premier portage sur DEC PDP-11/20, avec le premier compilateur C, conçu spécialement pour rentre cet OS portable.
  • 1971 : Version 1 d’Unix sur PDP/11-20 avec un système de fichiers, fork(), roff, ed, suite à la demande de AT&T qui avait besoin d’un système de traitement de textes pour l’aide à l’écriture de ses brevets.
  • 1973 : La V2 intègre les tubes (pipes)
  • 1974 : AT&T ne voyant pas d’avenir commercial à Unix, décide de distribuer le code source aux universités selon quatre critères de licence. Unix gagne donc la faveur des universitaires. Entre 1974 et 1977 les versions de la V3 à la V6 voient le jour.
  • 1978 : La V7 est annoncée, développée afin de pouvoir être portée sur d’autres architectures matérielles. AT&T rattrape le coup et décide de distribuer les sources sous licence. Diffusion d’un manuel système et de développement par Brian Kernighan et Rob Pike. Apparition du Bourne Shell. Taille du noyau : 40Ko ! La V7 est la base commune à tous les Unix.
  • 1979 : Le coût des licences Unix incite l’université de Californie à Berkeley à continuer ses travaux sur les sources diffusées avant la licence, et créée sa propre variante : BSD Unix. Le DARPA décide d’utiliser Unix pour ses développements, notamment BSD Unix.
  • 1983 : AT&T met en vente la version commerciale de Unix SYSTEM V.
  • 1986 : Première ébauche des normes POSIX sur la standardisation des appels systèmes et des fonctions.
  • 1987 : Création de X-Window, interface C/S graphique développée au sein du MIT. System V v3, premiers Unix propriétaires de HP et IBM suite à la modification de la licence de SYSTEM V. BSD 4.3, Unification de BSD et SYSTEM V (Sun et AT&T), d’où abandon des particularités de chaque système.
  • 1988 : Troisième version de X/Open Portability Guide, servant de référence pour tous les développements d’Unix ultérieurs (commandes, appels système, langages, requêtes, graphique, internationalisation, réseau).
  • 1990 : System V v4 de AT&T, nouveaux standards d’unification avec Sun. Les autres constructeurs se sentent menacés et fondent OSF (Open Software Foundation).
  • 1991 : OSF/1. Apparition des premiers clones Unix comme Linux et FreeBSD.
  • 1992 : Sun sort Solaris (SunOS), dérivé de System V v4, avec la gestion des threads. AT&T créée USL (Unix Software Laboratories) et transfert toutes les licences à cettre société.
  • 1993 : Novell rachète USL , puis transfert les droits de licences à X/Open.
  • Depuis 1993 : S’il existe un grand nombre d’Unix propriétaires, la plupart restent conformes aux normes et standards établis (X/Open, Posix). On distingue deux grandes branches SYSTEM V et BSD. Les deux sont compatibles. L’arrivée de Linux (dérivé de System V mais avec pas mal d’améliorations issues de BSD) a changé la donne.
  • Les code source d’Unix appartient aujourd’hui à la société Caldera issue de Novell, mais les droits et la force de proposition sont transférés à l’Open Group.

Unix sur Micro

Le premier Unix disponible sur PC a été porté par Microsoft en 1979, Xenix , disponible jusqu’en 1984. Il fonctionnait sur 8086 à l’aide de très lourdes modifications. L’essor a eu lieu avec l’apparition du 80286, premier processeur Intel à posséder un mode protégé et des instructions de commutation de tâches. A l’arrivée du 80386 en 1987, la société Santa Cruz Operations qui diffusait dèja Xenix modifia Xenix et l’appela UNIX System V/386.

Depuis on trouve plusieurs portages Unix sur PC, dont les principaux sont SCO Openserver / Unixware, Sun Solaris, Linux, FreeBSD, OpenBSD, NetBSD.

Le PC n’est pas le seul micro supportant Unix : on trouve les Mac (anciens et nouveaux modèles), les Atari et Amiga, les machines à base de processeurs Alpha, … Sur PC et dans les écoles, on utilise généralement Linux.

Architecture

%%{init: {'theme':'default'}}%% flowchart TB id1(Applications) <--> id2(Appels système Unix) id2(Appels système Unix) <--> id3(Gestion de processus) id2(Appels système Unix) <--> id4(Système de gestion des fichiers) id3(\n\n\n\n\nGestion de processus\n\n\n\n\n\n) <--> id7(Contrôle matériel) id4(Système de gestion des fichiers) <--> id5(Buffering) id5(Buffering) <--> id6(Driver périphérique) id6(Driver périphérique) <--> id7(Contrôle matériel) id7(Contrôle matériel) <--> id8(Matériel)

Photo de Remy Loz sur Unsplash