Qu’est-ce qu’un système d’exploitation ?

On lit ce terme partout mais pour les non-techniciens, ça ne veut pas dire grand chose, voire on l’associe à tout et n’importe quoi. Je vais tenter d’expliquer ce que c’est avec des mots et des exemples simples.

Définition

Précisons d’abord que c’est la traduction assez littérale de l’expression “Operating System” ou OS (comme dans MSDOS — MicroSoft Disk Operating System– ou MacOS — Macintosh Operating System — ou iOS…) et qu’on pourrait traduire plus explicitement par “le truc qui fait fonctionner l’ensemble”.

Grosso modo, un ordinateur, c’est :

  • des composants matériels (processeur, mémoire, disque, périphériques…) : le hardware (la quincaillerie)
  • des logiciels (ou programmes ou applications) : le software

Le système d’exploitation c’est un logiciel qui permet de faire communiquer le hard et le soft.

Vous vous dites : c’est idiot, ça rajoute une couche : n’importe quel logiciel doit pouvoir “discuter” avec le matériel. Oui mais non, j’y viens.

Les systèmes d’exploitation les plus répandus

Cette liste n’est pas exhaustive, c’est juste pour clarifier :

  • Windows, anciennement MSDOS (Windows 98, Windows XP, Windows Seven… sont des versions différentes)
  • MacOS ou OS/X (OS/X est la version 10, X en chiffres romains, de MacOS)
  • Linux ou UNIX ou Ubuntu ou RedHat ou Debian… (c’est la même famille)
  • iOS et Android (deux systèmes d’exploitation pour appareils tactiles/mobiles)

Un exemple : le clavier

Aujourd’hui, un clavier est généralement muni d’un câble au bout duquel se trouve une prise USB. Cette prise se branche dans l’ordinateur (dans un port USB). Le “système” reconnaît alors qu’un périphérique est branché, qu’il s’agit d’un clavier, et quand on va appuyer sur la touche A, ô miracle, ça va produire un A. Quel le clavier soit AZERTY (la norme en France) ou QWERTY (la norme outre-manche et outre-atlantique), que ce soit un clavier “PC” ou “MAC”. Ce n’est pas de la magie : il y a un truc.

Pour décrire le mécanisme d’un clavier avec un langage niveau CM1 : le clavier est un ensemble de boutons poussoirs (comme une sonnette de porte) connectés à 2 fils : un fil où le courant “arrive” et un fil où le courant repart ; tant qu’on n’appuie pas, le courant reste “bloqué” (il ne circule pas), la sonnette est silencieuse. Quand on appuie sur une touche ça fait se toucher les 2 fils et le courant circule, la sonnette fait “dring”.

Si on imagine un clavier de 102 touches très rudimentaire, il faudrait 102 x 2 = 204 fils. Je vous laisse imaginer la taille de la prise. Pour simplifier, les constructeurs de clavier placent dans leurs appareils une puce électronique qui va transformer ces 204 fils en quelque-chose de plus digeste : par exemple, quand on appuie sur la 32ème touche (le A), ça va dire “la touche 2 de la 3ème ligne a été enfoncée”. Et quand on va la relâcher, ça va dire “la touche 2 de la 3ème ligne a été relâchée”. Ces actions vont être envoyées au fur et à mesure au système qui va les interpréter : si le clavier est AZERTY la touche 2 de la 3ème ligne est un “A”, si le clavier est QWERTY c’est un “Q” etc.

Si le système a reçu l’info que la touche “majuscule” a été enfoncée avant le A, il sait qu’il devra produire un A majuscule. Ça se complique encore un peu avec les accents circonflexes mais vous voyez l’idée.

Donc au lieu d’avoir 204 fils qui vont du clavier à l’ordinateur, on n’en a plus que 2. Mais ce qui circule sur ces 2 fils ce n’est plus simplement “appuyé” (1) ou “relâché” (0) : c’est un “petit train” (une série) de 0 et de 1 qui, pris par petits groupes, indiqueront quelle touche a été appuyée ou relâchée.

Tout ce petit dialogue (on appelle ça un protocole) entre le clavier et le “système” est bien codifié et très strict. Or vous imaginez bien que tous les constructeurs ne se sont pas réunis autour d’une table pour se mettre d’accord sur un protocole “standard”. Les concepteurs de systèmes d’exploitation non plus. Donc les constructeur de claviers fournissent un “traducteur” : un petit programme qui interprète les séries de 0 et de 1 en provenance du clavier pour les rendre compréhensibles par le “système” : on appelle ça des “drivers” ou “pilotes” ou “modules”.

Il faut donc créer un “driver” pour chaque appareil et pour chaque système d’exploitation. Et forcément, ça a un coût pour le fabricant de claviers.

Mais revenons à notre système d’exploitation (j’écrirai SE désormais). Quand on allume l’ordinateur, celui-ci “cherche” un système d’exploitation (je ne rentre pas dans les détails, croyez-moi sur parole) et le démarre.

Le SE recherche le matériel qui lui est connecté (les disques, la mémoire, le processeur, la vidéo, le clavier, la souris, le réseau, etc.), démarre pour chacun d’eux le “driver” qui va bien et lance ensuite les programmes “utilisateur” (ceux qu’on voit), par exemple l’interface graphique, le bureau, etc.

Quand on va appuyer sur une touche, le SE va voir arriver sur le port USB qu’il sait connecté à un clavier un petit train de 0 et de 1. Il va les envoyer au “driver” qui va lui traduire qu’on a appuyé sur la 2ème touche de la 3ème ligne. Comme le SE sait que c’est un clavier AZERTY, il indique au programme qui est au premier plan qu’un “A” a été tapé. Le programme traite alors cet appui de touche comme bon lui semble.

Vous comprenez bien que sans système d’exploitation, chaque programme devrait être capable de gérer toutes les sortes de claviers imaginables et tant pis pour vous si vous achetez un clavier plus récent que votre logiciel…

La gestion des ressources

Le SE a la charge de la machine entière : c’est lui qui décide qui ou quoi peut ou ne peut pas faire quelque chose. Prenons un exemple : la mémoire.

Pour travailler, un programme a besoin de mémoire (pour stocker ce que vous “entrez” ou pour effectuer un traitement). Par exemple, vous démarrez votre traitement de texte et vous commencez à taper. Plus vous tapez, plus le programme a besoin de mémoire pour stocker tout ce que vous écrivez. Pour cela, il demande au SE de lui allouer une partie de la mémoire disponible à son usage exclusif. Si un autre programme a besoin de mémoire, il ne doit pas “corrompre” (modifier) celle qui a été allouée au traitement de texte. C’est le rôle du SE de répartir ces ressources, de s’assurer que 2 utilisateurs qui utilisent la même machine en même temps ne “voient” pas ce que fait l’autre (confidentialité). C’est enfin à lui de gérer du mieux qu’il peut le manque de ressource : quoi faire quand un programme demande de la mémoire et qu’il n’y en a plus de disponible ?

Un autre exemple est la gestion du stockage physique (le disque dur en général) : il existe plusieurs façons de stocker les données sur un disque. Il y a 20 ans, on stockait beaucoup moins de fichiers et ceux-ci étaient généralement beaucoup plus petits. Les disques eux-mêmes avaient des capacités beaucoup plus réduites. À titre indicatif, on n’envisageait pas, à l’époque, des disques de plus de 32 Go (gigaoctets) alors qu’on est aujourd’hui généralement limités à 4000 Go et on a besoin d’encore beaucoup plus.

Les SE doivent donc s’adapter à ces nouvelles contraintes en assurant une continuité avec les anciens logiciels et matériels qui doivent continuer à fonctionner pendant quelques années encore.

Philosophie

Chaque système d’exploitation a sa propre “philosophie”, sa propre façon d’envisager les problèmes et les solutions. La récente explosion des smartphones a contraint les concepteurs de SE à adapter leurs produits pour fournir une interface cohérente entre les ordinateurs “de bureau” et les appareils tactiles. Ça c’est pour l’aspect technique.

Mais il faut également envisager les problèmes éthiques induits par ces machines que nous ne contrôlons plus vraiment, qui font des choses sans qu’on le sache, contre notre intérêt en général, pour nous vendre plus, nous enchaîner fidéliser plus, nous surveiller plus. On distingue les systèmes dits “libres” (Linux et dérivés principalement) et les systèmes propriétaires (Windows / MacOS principalement). Mais ce n’est pas l’objet de cet article qui se veut “technique pour les nuls”.

Notes

Des claviers ?

J’ai pris l’exemple du clavier car il représente un bon périphérique d’entrée : un appareil qui sert à faire entrer de l’information dans la machine.

Une souris est une sorte de clavier.

Une manette de jeu ou joystick est une sorte de clavier également avec moins de touches. Et on peut en brancher plusieurs sur un même ordinateur (une console de jeu EST un ordinateur) : le SE doit donc être capable de gérer simultanément plusieurs claviers branchés sur plusieurs ports USB sans tout mélanger.

Un écran tactile est un écran surmonté d’un clavier invisible.

USB

J’ai choisi de parler de branchements USB, d’abord parce-que ce sont les plus répandus aujourd’hui et parce-qu’ils permettent de bien expliquer mon propos :

USB signifie Universal Serial Bus.

Universal parce-que ça peut servir à brancher à peu près n’importe quoi : un clavier, une souris, une webcam, une imprimante, etc.

Serial parce-que ça permet aux périphériques de communiquer avec le SE via des séries de 0 et de 1 (les petits trains de tout à l’heure)

Bus pourrait se traduire par “interface” ou “moyen de communication”.

Évolutions

Tout évolue en informatique : le matériel et les logiciels, que ce soit les SE ou les programmes utilisateur. Mais tout n’évolue pas au même rythme : on peut utiliser un vieux clavier sur une machine flambant neuve, du moment que le SE (ou le fabricant) fournit le traducteur (le driver).

Épilogue

J’espère que ces explications auront pu vous être utile (ie: que vous aurez pu lire jusqu’au bout). Sinon n’hésitez pas à me signaler dans les commentaires où vous vous êtes perdu(e).

 

Laisser un commentaire

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