Unix, le premier système d’exploitation écrit dans le langage C

Unix est un système d'exploitation écrit dans le langage de programmation C. Ses variantes, notamment Linux et Minix sont largement utilisées dans le monde de l'informatique. Toutefois, la tendance actuelle peut conduire à son abandon bien que le moment précis ne soit pas défini.

Les systèmes d'exploitation qu'on rencontre aujourd'hui chez certains appareils mobiles, appareils embarqués et même certains ordinateurs sont en fait des descendants d'un seul système appelé Unix. En effet, macOS, iOS, Android et surtout Linux sont issus de la même famille. L'autre famille, vous le connaissez déjà, Windows-NT est le produit de . Dans ce dossier, on va se focaliser sur Unix et tout ce qu'il y a à savoir sur le sujet. Focus !

Qu'est-ce qu'Unix ?

Unix est un système d'exploitation développé dans les années 1970 par Bell Labs (plus tard AT&T Labs). C'est le premier système écrit dans le langage de programmation C. Le système a été initié par deux développeurs de logiciels, Ken Thompson et Dennis Ritchie.

Son succès a été d'abord dans le milieu universitaire. L'université Berkeley de Californie est l'une des institutions qui ont adopté Unix. Un travail qui va aboutir plus tard à une variante du système appelé  Berkeley Software Development ou BSD. BSD a, à son tour, inspiré la conception d'autres variantes à l'instar de FreeBSD, OpenBSD et NetBSD.

Le système que la console PlayStation utilisé s'inspire du code BSD. Quant à Unix, il sera supplanté par Linux, un de ses descendants. Celui-ci est un système open source, ce qui lui offre un large éventail d'utilisation dans le milieu informatique de nos jours. Les plus populaires sont Ubuntu et Fedora. Par ailleurs, les plateformes cloud, principalement l'hébergement WordPress utilisent Linux.

Pour la petite histoire

Suite à l'abandon du projet Multics, un système interactif de temps partagé, Bell, les deux développeurs Thompson et Ritchie ont décidé de poursuivre le projet. En collaborant avec d'autres chercheurs, le travail a permis de construire une suite de composants servant de base pour le futur Unix. La suite rassemblait une interface de ligne de commande (CLI), un système de fichiers hiérarchiques ainsi que des petits programmes utilitaires.

Au début, le système était un système à tâche unique qui était plus petit que ce que Bell Labs prévoyait pour le projet Multics. Ce n'est que plus tard qu'il a acquis ses capacités multitâches. Le langage de programmation C était, à l'époque, considéré comme de haut niveau. Cela a, du coup, propulsé Unix sur plusieurs plateformes.

Les débuts des années 1980 ont été marqués par le grand succès d'Unix dans le milieu universitaire avant que des start-up telles que Solaris Technologies et Sequent l'adoptent. A part le BSD de l'Université de Berkeley, un autre système de type Unix a été développé par un jeune étudiant de l'Université d'Helsinki pour son propre PC. C'est l'ancêtre de l'actuel Linux. Aujourd'hui, on rencontre de nombreux systèmes d'exploitation Unix dans les appareils embarqués, les ordinateurs macOS et les appareils mobiles.

Les composants d'Unix

Le système Unix est composé de trois éléments essentiels : le noyau, la coquille et le système de fichiers. Dans cette partie, nous allons développer chaque composant.

Le noyau

Comme son nom l'indique, le noyau est le centre du système d'exploitation. Il a pour fonction de fournir les applications nécessaires pour garantir la communication entre l'appareil, le système d'exploitation et les applications installées.

Voici, en résumé, les principales fonctions du noyau :

  • Gérer la mémoire principale ;
  • Planifier les tâches ;
  • Gérer les transferts de données ;
  • Applique les autorisations d'accès ;
  • Accepte les commandes de la coquille avant de les exécuter.

La coquille

Il s'agit de l'interface entre le noyau et l'utilisateur qui exploite le système. La coquille est une interface de ligne de commande (CLI) qui offre une plateforme ou un environnement avec lequel les utilisateurs peuvent exécuter des commandes et des scripts. Pour ce faire, la coquille reçoit les commandes et les transmet au noyau afin d'être interprétées et exécutées.

Les principales tâches de la coquille se résument ainsi en :

  • L'exécution des commandes et des scripts ;
  • La commande de l'autocomplétion via la touche TAB du clavier ;
  • L'affichage des commandes qui sont déjà exécutées. La coquille dispose d'une liste contenant l'ensemble des commandes qu'un utilisateur a exécutées.

Dans Unix, il existe 2 coquilles principales qu'on appelle Bourne Shell et C Shell. En dehors de celles-ci, on recense également des variantes de coquilles dont Bourne Again Shell et Korn Shell.

fs ou système de fichiers Unix

Sous Unix, il existe un système destiné à organiser et stocker une quantité considérable de données dans le but de faciliter leur conservation, et éventuellement leur récupération. Ce système s'appelle système de fichiers ou fs en abrégé. Pour cela, le système organise les données en petites unités, les fichiers. Le rangement se fait en optant pour une structure de répertoires hiérarchiques.

Les types de fichiers existant sur un système Unix

Comme on l'a vu plus haut, les données sous Unix sont organisées en de petites unités appelées fichiers. Pour faciliter l'organisation et la récupération, les fichiers sont décomposés en différents types dont les fichiers ordinaires, les liens symboliques et les dossiers spéciaux.

Les fichiers ordinaires

Les fichiers ordinaires sont ceux avec lesquels les utilisateurs interagissent normalement au quotidien. Ils englobent les textes, les images et vidéos ainsi que les instructions. Dans le répertoire, ces fichiers sont précédés d'un trait d'union (–).

Les liens symboliques

Certains fichiers stockés sous Unix font référence à d'autres fichiers. Ce sont des fichiers spéciaux, également appelés liens symboliques ou liens paramétrés. Ces fichiers contiennent du texte qui contient le chemin d'accès au fichier auquel il fait référence.

Les dossiers spéciaux

Tous les fichiers inclus dans le répertoire « /dev » s'appellent dossiers spéciaux. Ils indiquent des périphériques physiques à savoir le lecteur de disque, les CD-ROM, l'imprimante, etc. Dans Unix, on les utilise pour les opérations d'entrée et de sortie.

Les caractéristiques d'Unix

Les principales caractéristiques d'Unix se résument par ses fonctionnalités les plus importantes. Néanmoins, il faut souligner que le fait d'être le premier système écrit dans le langage C le démarque des autres systèmes d'exploitation. En plus, sa structure de fichiers hiérarchique simplifie l'accès aux données et leur maintenance.

En termes de fonctionnalités, Unix est avant tout un système d'exploitation multi-utilisateur. Dans ce système, les utilisateurs peuvent partager les ressources et échanger des informations entre eux. Ensuite, il permet à son utilisateur d'être multitâche. En effet, dans Unix, on peut exécuter divers processus en même temps. Par ailleurs, il est possible d'étendre le système par le biais des programmes utilisateur élaborés sur une interface de programmation standard.

Les variantes Unix

Tout le monde peut améliorer Unix du fait qu'il soit écrit dans le langage de haut niveau C en plus de sa grande popularité. C'est d'ailleurs la raison pour laquelle on a vite rencontré de multiples variantes. Celles-ci manquent toutefois d'interopérabilité et de compatibilité. Face à de tels embarras, certains acteurs du secteur ont normalisé le système avec la norme Portable Operating System Interface d'abord, puis la spécification Unix unique ou SUS.

Depuis, de nouvelles variantes sont arrivées dont les unes propriétaires tandis que d'autres open source. Les variantes propriétaires d'Unix telles qu' Solaris et Advanced Interactive eXecutive (AIX) s'accompagnent de frais de licence. A leur opposé, il y a les variantes open source et libres comme FreeBSD, OpenBSD et Linux. Aujourd'hui, Unix fait partie d'un organisme de normalisation de l'industrie, The Open Group, qui certifie et marque les implémentations le concernant.

Les systèmes de type Unix

Vous avez sans doute entendu le terme Unix-like qui est utilisé dans la plupart du temps lorsqu'on parle des variantes d'Unix. Il est cependant flou car tout système d'exploitation ayant une quelconque relation avec Unix peut être décrit comme tel. Pour certains développeurs logiciels, il n'y a que 3 types de systèmes Unix.

Le premier type rassemble tous les systèmes d'exploitation connectés à la base de code originale de Belle Labs. Les systèmes inventés par les chercheurs de l'Université de Berkeley appartiennent à ce premier type.

Les systèmes de type Unix et de marque déposée répondant aux critères SUS à l'instar d'IBM AIX et HP-UX appartiennent au second type. Ceux-ci peuvent, d'après The Open Group, utiliser le nom Unix. Le dernier type de système Unix comprend les systèmes fonctionnels comme Linux et Minix. Ils se comportent conformément à la spécification de base.

A quoi ressemblerait l'avenir d'Unix ?

De nombreux serveurs, des postes de travail et même des superordinateurs fonctionnent sous Unix et ses variantes. L'une de ces variantes, Linux reste au cœur des Data Center et du Computing. En plus, on compte 500 supercalculateurs qui l'utilisent dans le monde.

Toutefois, la migration vers les alternatives x86, du fait de leur puissance et de leur coût réduit, a provoqué une baisse d'utilisation d'Unix. De la sorte, les ventes vont certainement baisser progressivement jusqu'à ce que le système soit complètement sorti du marché. Il faut quand même un long moment avant que cela n'arrive réellement.

Newsletter

Envie de ne louper aucun de nos articles ? Abonnez vous pour recevoir chaque semaine les meilleurs actualités avant tout le monde.

Cliquez pour commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *