Aller au contenu

C'est quoi un OS ?

Un OS, on en utilise tous plusieurs tout les jours, mais c’est quoi ?

C’est un petit terme que l’on croise régulièrement dans le monde informatique, mais on ne sait jamais de quoi il s’agit… Explications !

Un OS, pour Operating System, ou en français, Système d’Exploitation, représente la couche logicielle la plus proche du matériel. En effet, passé la carte Arduino, il devient compliqué et peu envisageable de manager l’entièreté des fonctions soi-même, et nous déléguons donc ce travail à un logiciel pré-défini. Ce logiciel est d’autant plus intéressant que la majorité du temps, lors du développement en low level, nous réinventons la roue : Gestion du timing, des I/Os, etc. ça serait très cool d’avoir un outil qui le fait à notre place !

À l’origine, un OS c’est un logiciel qui vient manager donc le matériel pour le rendre plus simple à utiliser ! Mais ça, c’était au début (ou sur les systèmes très légers…).

On peut donc résumer un OS selon la pile suivante : En bas, le matériel, qui est exploité par le système d’exploitation. Ensuite, l’application, qui exploite le système d’exploitation. Et par-dessus, il y a l’utilisateur(vous), qui utilisez des applications.

Cette pile présente plusieurs avantages : Avec une conception adaptée, et des drivers (CF drivers), vous pouvez faire varier le matériel sans vous soucier particulièrement du logiciel. L’inverse est aussi possible, en faisant varier le logiciel sans toucher le matériel !

Ce sont ces avantages qui ont rendu l’utilisation d’un système d’exploitation de plus en plus commune depuis les années 1960 !

stack

Mais concrètement, ça se présente comment un OS ? Il ne s’agit ni plus ni moins que d’un logiciel. Seulement, ce logiciel est accompagné d’un autre outil, nommé le bootloader, qui, appelé automatiquement par le BIOS au démarrage par votre processeur, va venir charger ce logiciel. Et ce logiciel va ensuite vous donner la possibilité de lancer vos applications préférées…

Mais un OS, c’est composé de quoi ? Eh bien de code, généralement en bas niveau (par exemple Assembleur ou C), qui regroupe plusieurs fonctionnalités. La raison du développement des OS avec des langages de bas niveau sont principalement historiques : Nous réutilisons du code fonctionnel déjà écrit.

Et s’il y a bien un bout de code que nous ne codons pas tous les jours, c’est le kernel. Mais qu’est-ce donc ? Le kernel est l’outil qui se charge de la gestion matérielle la plus basse, en y incluant la gestion du système de fichier, mais nous y trouverons aussi : Les drivers, les interruptions, etc.

Pour l’anecdote, pour la majorité d’entre vous sur Windows, vous utilisez le kernel Windows NT. Ce dernier est présent depuis Windows XP (2001). Pour nos amis pingouins (référence à Linux, que nous aborderons plus bas), votre kernel évolue plus vite, et est moins figé.

Depuis longtemps maintenant, les OS ont développé des fonctionnalités plus avancées, par exemple :

À l’origine, un ordinateur ne pouvait exécuter qu’une seule tache en même temps, rendant donc l’utilisation peu pratique. Il fallait se synchroniser avec les collègues pour accéder à l’ordinateur. La gestion de plusieurs programmes en simultané à permis de réduire ces inconvénients (au prix de performances réduites, puisque partagées entre plusieurs process).

Mais c’est bien gentil de parler OS, mais ça se présente comment dans la vraie vie ?

Et bah, il y a plusieurs dizaines, voire centaines d’OS, réparti en plusieurs branches :

Le noyau du grand classique, Windows, développé par Microsoft.

Originellement MS-DOS jusqu’a l’arrivée en NT avec Windows XP. Garanti une compatibilité montante parfaite, au prix d’évolutions plus lentes et complexes (coucou explorer.exe, le processus qui gère LITTÉRALEMENT tout ce que vous voyez de Windows !)

En bref, un OS, ce n’est ni plus ni moins qu’un logiciel, qui est lancé au démarrage de votre pc, et va lui donner la possibilité d’exécuter d’autres choses… Donc une fois démarré, non, vous n’avez rien de lancer, il y a déjà un logiciel… Et il est parfaitement normal que celui utilise des ressources pour tourner.