Accueil du [Site] > Articles > Découvertes > Culture geek > GeekZone > Éléments d’informatique > Systèmes d’exploitation

Systèmes d’exploitation

mercredi 31 octobre 2007, par Valentin.

Bonjour à tous.

Aujourd’hui nous allons tomber sur... un os.

 Qu’est-ce qu’un OS ?

Pour ceux qui ne connaissent pas l’abréviation OS, ou qui croiraient naïvement qu’il s’agit d’Ouvriers Spécialisés, sachez que ces deux lettres sont le B.A.=ba du geek. De même que les chiens se flairent le derrière lorsqu’ils se rencontrent, vous subirez, si vous venez à croiser un geek, un examen soutenu en quelques instants. Si vous voulez lui inspirer le moindre respect, n’oubliez surtout pas de glisser le mot « O.S. » dans la première phrase qui sortira de votre bouche.

Qu’est-qu’un O.S., donc ? Il s’agit de l’abréviation pour l’expression anglaise Operating System. En français, il est d’usage de traduire par « Système d’exploitation ».

Le système d’exploitation est, en gros, le programme qui se lance entre le moment où vous allumez votre ordinateur et le moment où ce dernier devient vraiment utilisable (opérationnel, pour reprendre l’anglicisme).

Vous me direz — par pitié ne me le dites pas — « aaaah. Donc, c’est Windows. »

Non.

Windows n’est pas un système d’exploitation. Pas depuis 1983, en tout cas.

Windows est une bouse. Je l’ai expliqué ailleurs.

Toutefois, même si vous avez mauvais goût, vous avez compris le principe de base. Le système d’exploitation permet aux différents logiciels de fonctionner, de communiquer avec vous, avec votre matériel, voire les uns avec les autres. C’est l’un des maillons importants dans l’interaction entre l’humain et la machine, comme j’essaye de le montrer avec l’empilement suivant, qui peut se lire de haut en bas ou de bas en haut, l’interaction se faisant dans les deux sens :

Plus haut Niveau Vos données
(...documents, préférences, jeux vidéos...)
Haut niveau Les applications
Navigateur Internet, Traitement de texte, etc Les logiciels vous permettent de traiter vos données (documents, images, vidéo,...), et de tirer parti des périphériques.)
Niveau intermédiaire Le Système d’exploitation (OS)
Windows, Linux, MacOS L’OS accède aux périphériques plus évolués (carte graphique, webcam,...) grâce à des pilotes.
Bas niveau Le BIOS
permet à l’ordinateur de démarrer, et de lancer l’OS Le BIOS prend en charge le clavier et l’écran, pour une interaction minimale
Le matériel Processeur (calcul, traitement)
L’utilisateur Vous :)

Si vous avez suivi, vous aurez compris que le système d’exploitation regroupe du code de bas niveau, puisqu’il doit accéder directement au matériel — c’est le cas des pilotes, j’y reviendrai — et du code de haut niveau, qui s’occupe d’agencer tout ça de façon harmonieuse.

 Plusieurs niveaux, plusieurs fonctions

Toute cette technicité se trouve bien évidemment masquée pour l’utilisateur. De fait, le système d’exploitation s’organise souvent en deux couches :

  • l’interface graphique, aussi appelée GUI, une couche de haut niveau qui prend en charge le dessin des fenêtres sur l’écran, le pointeur de la souris, etc.
  • et le coeur du système d’exploitation, appelé kernel, qui s’occupe de faire la circulation : quelles données vont où, quels calculs doivent être faits en premier, quel périphérique envoie quoi, etc. Pour ce faire, il est accompagné d’une flottille de pilotes qui permettent aux périphériques d’envoyer et de recevoir des données.

Un exemple des préoccupations du kernel : comment faire pour pouvoir faire tourner plusieurs programmes en même temps ? Il faut que le système d’exploitation soit conçu de façon multitâche, pour répartir les calculs demandés par chaque programme. Deux modèles existent : soit les programmes se laissent chacun le temps de terminer leurs calculs (modèle dit coopératif), soit ils disposent chacun d’un temps limité, puis retournent dans la file d’attente qu’ils aient fini ou non (modèle dit préemptif). Très vite, le multitâche s’est mis à concerner également les applications en elles-même, puisqu’un logiciel complexe (un jeu vidéo, par exemple) peut avoir besoin d’effectuer plusieurs types de claculs en même temps. On parle alors de multi-processus1.

 Intégration

Le rapport entre le kernel et l’interface est variable suivant les systèmes d’exploitation. Sur un système dit « monolithique » comme certaine bouse déjà mentionnée), l’un et l’autre sont indissociables ; autrement dit si une application plante (fenêtre refusant de se fermer, etc), le système entier plante2. Il n’y a alors plus qu’à redémarrer.

Sur la plupart des systèmes décents, le noyau est dit « modulaire » : le kernel comprend l’essentiel des fonctions vitales de l’ordinateur, et les fonctions accessoires (notamment les pilotes) sont ajoutées sous forme de « modules ». Le système est globalement plus stable, et moins difficile à entretenir (puisqu’on peut supprimer ou insérer des modules sans toucher au reste — du moins en théorie).

Enfin, le troisième modèle est celui du « micro-kernel » ; il fait la fierté du système MacOS depuis plus de vingt-cinq ans3 Dans ce modèle, le kernel est réduit au minimum, pour une plus grande rapidité et stabilité ; tous les processus, qu’ils relèvent des pilotes, des applications ou de l’interface, dialoguent avec lui en permanence, mais restent clairement distincts. C’est pour ma part le modèle qui m’intéresse le plus, et j’attends avec impatience l’arrivée des systèmes d’exploitation de la prochaine génération, tel que Haiku, système libre fondé sur le non moins libre micro-kernel NewOS.

 Cloisonner

Cette métaphore des « hauts » et « bas » niveaux est absolument importante pour comprendre le fonctionnement de tout système d’exploitation. La stratégie est de cloisonner autant que possible les ressources de votre ordinateur, et que chacun reste à son niveau.

Ainsi, le navigateur Internet grâce auquel vous lisez cette page est une application de haut niveau : si un site malveillant (ce qui n’est pas le cas ici, j’ose le croire) tente de faire intrusion sur votre ordinateur par ce biais, le but est de l’empêcher de pouvoir faire planter votre ordinateur, d’accéder à vos données, etc.

(vous me direz qu’un bon navigateur internet ne permet pas, en général ce type d’intrusion ; certes, mais le bruit court qu’il y a encore des gens qui utilisent Internet Explorer.)

De même pour les systèmes multi-utilisateurs. Depuis une quinzaine d’années, tous les systèmes d’exploitation peuvent accueillir plusieurs utilisateurs, chacun ayant ses données, ses paramètres, et son domaine de compétence. Le but est d’empêcher chaque utilisateur d’accéder aux données des autres utilisateurs, ou de pouvoir porter préjudice au système (par exemple en désinstallant des programmes importants, etc).

(vous me direz que Windows n’est pas devenu multi-utilisateur il y a quinze ans mais il y a sept ans ; je vous dirai « zut ».)

Ainsi, certains systèmes (la plupart en fait, à l’exception du vôtre) peuvent même accueillir plusieurs utilisateurs de langues différentes, qui emploient des programmes différents, voire... une interface graphique différente !

 Évolutions

Je finirai en évoquant l’évolution des systèmes d’exploitation.

Le serpent de mer à l’heure actuelle se nomme « 64 bits ». C’est une nouvelle manière d’envoyer des paquets de données au processeur, censée être plus rapide, plus puissante, etc. C’est surtout un bon moyen d’inventer une nouvelle incompatibilité pour pousser le populo à changer de machine. Je passe donc.

Une véritable évolution est l’apparition des systèmes multi-processeurs. Deux, Quatre voire huit processeurs. Pas besoin de vous faire un dessin, c’est, sur le papier du moins, une nette augmentation de la puissance. Mais a-t-on vraiment besoin de puissance, à part pour les jeux vidéos et la 3D ? On évitera soigneusement de se poser la question. Quoiqu’il en soit, c’est une occasion de repenser l’organisation des systèmes d’exploitation, et notamment du multi-processus (voir plus haut).

Autre piste à suivre : l’apparition des systèmes dits « embarqués ». Embarqués dans quoi ? Principalement dans les téléphones portables, mais pas seulement. Nous n’allons pas tarder à voir apparaître de vrais OS dans les téléphones, les gadgets en tous genre. (J’entends par là de vrais OS, pas Windows Mobile naturellement. Du reste, tous les spécialistes s’accordent à prédire que les systèmes Libres, Linux en tête, vont tirer de cette nouvelle donne un parti considérable.) Maintenant, la question se pose là encore : a-t-on besoin de tout un système d’exploitation... pour téléphoner ?

Enfin, la généralisation des capacités de temps réel, c’est-à-dire des calculs qui peuvent s’effectuer en moins de quelques microsecondes. Pas d’emballement toutefois : il s’agit simplement d’accorder à tel ou tel processus une priorité absolue sur les autres, et non d’un ordinateur instantané ! En fait, le temps réel ne concerne que des domaines précis et souvent très spécialisés : le traitement du son, par exemple, ou encore les ordinateurs de vol des avions. Dans ce dernier domaine aussi, les systèmes libres se taillent la part du lion : ainsi, si mes souvenirs sont bons, les Airbus tournent sous le système Xenomai, qui est un bidouillage du noyau Linux doté d’une forte composante à temps réel.

D’une manière générale, et ça me permet d’évoquer un aspect important que j’avais omis, les systèmes d’exploitation sont bien plus nombreux que vous ne sauriez l’imaginer, et le Libre a partout une place absolument prédominante, excepté sur les ordinateurs du grand public. Les systèmes sous Linux gèrent l’écrasante majorité des serveurs Internet (c’est-à-dire les ordinateurs qui calculent les pages web, vos commandes Amazon, vos réservations SNCF, etc...) ; on trouve des dérivés de Linux dans les distributeurs de billets, dans les systèmes de régulation du trafic routier, dans les Freebox, livebox, et ainsi de suite.

Vous-même, vous faites un usage quotidien du système Linux sans le savoir : sur ce site par exemple, ou tout simplement à chaque fois que vous faites une recherche Google !

Mais qu’est-ce que Linux, me demanderez-vous...

On en reparlera.


[1Un excellent article très technique sur la question, par un des développeurs du projet Haiku (attention c’est en anglais).

[2La véritable définition est un peu plus complexe, mais c’est le même principe.

[3... Pendant lesquels le micro-noyau en question, Mach, n’a presque pas évolué, ce qui pose aujourd’hui un léger problème.

Messages

  • Bon, la vérité est que le bios ne gére pas l’écran, ni le clavier d’ailleurs. Il gére ce qu’il sait géré, à savoir son bus PCI-e ou AGP, c’est ensuite la carte graphique, qui comporte toujours un circuit ’minimal’ de gestion VGA qui envoie le signal VGA justement jusqu’à l’écran. Pour rappel le VGA est le plus petit standard graphique géré par les écrans modernes. Le bios gére aussi le contrôleur clavier, intégré à la carte mère, qui lui se charge de décrypter le signal qui lui parvient du clavier.

    Tout ça pour la considération technique.

    • Raaah, et moi qui essaye de faire simple !

      Le BIOS n’envoie peut-être pas de signal VGA à l’écran, mais il permet à ce dernier de fonctionner rudimentairement, sans besoin de pilote ; et il prend bien en charge, de façon très sommaire mais suffisante, le clavier.

      D’ailleurs, petite curiosité que je soumets à votre sagacité : un ordinateur ancien ne peut pas, de par son BIOS, booter sur un périphérique USB (faute de compréhension entre l’un et l’autre — là encore, pas de pilote).

      Supposons que votre lecteur de CD est mort, votre disque dur est corrompu, votre lecteur de disquettes est mort, vous êtes sur une île déserte et vous avez ABSOLUMENT besoin de vos données. Essayez de booter sur une clé USB : impossible. Un disque dur externe : impossible. Un lecteur de CD externe : impossible.

      Aucune solution ? Eh bien si. Très curieusement, tous les BIOS, même les plus anciens, ont la faculté de pouvoir booter... sur un lecteur de disquettes USB externe. Bizarre non ?

      (vous comprendrez, au passage, pourquoi cet endroit s’appelle la GeekZone ;)

  • Juste un commentaire, au passage : hier je regardais le pilote de cette excellente série nommée Chuck, et un truc m’a bien fait rire : au moment le plus intense (le climax) de l’épisode, Chuck doit désamorcer une bombe et sauver le monde, il lui reste quelque chose comme sept secondes ; il s’empare de l’ordinateur portable qui commande la bombe, réfléchit et dit :

    I know this model ! There’s a manual DOS override !

    (« Je connais ce modèle ; il y a un moyen de prendre manuellement les commandes en DOS »)

    À la suite de quoi il envoie un navigateur (genre Mosaïc) sur un site Web (genre HTML2.0) où se trouve un vilain virus. On voit alors s’ouvrir des tonnes de popups (j’ai vu ça une fois, c’était en 1994), et (pas étonnant, si c’est du DOS) l’ordinateur plante illico.

    Ma question est : nous sommes au vingt-et-unième siècle. Qui prendrait encore le risque de faire tourner ses ordinateurs sous un système basé sur MS-DOS, laissant des popups s’ouvrir à qui mieux mieux, permettant à des virus de s’infiltrer par une simple page Web, suffisamment instable pour planter instantanément du fait d’une seule application, et risquant à tout moment de faire sauter toutes vos données ?

    Pas grand monde, à vrai dire.

    À peine 96% de la population mondiale...

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Vous n'êtes pas un robot ? Alors veuillez répondre à cette question essentielle :
Quelle est la moitié du mot «toto» ? 

Ajouter un document