De quoi est fait une infrastructure [2] ? De logiciel et d’outils logiciels de base…

Le miracle de l’informatique est, si l’on voulait être ironique, que l’on peut réaliser un même système de façon aussi complexe qu’on le souhaite. Evidemment, il n’y aurait pas de gain à cette fuite de la simplicité si elle ne s’accompagnait d’un gain en généralité. Chaque progrès de l’infrastructure correspond à une généralisation de la plate-forme d’exécution et à une extension de ses utilisations potentielles.

Tout d’abord la « machine nue » s’est vite avérée impraticable. Le langage dans lequel le logiciel doit être exprimé (le « langage machine ») est très difficilement appréhendable par l’être humain. On a donc inventé des langages dits « de haut niveau » pour faciliter la tâche du programmeur. Il s’est agi d’assembleurs, qui restent proches de la machine, mais utilisent autre chose que des « 0 » et des « 1 », puis de langages plus évolués, pour lesquels on a conçu des compilateurs et des interpréteurs capables de les exécuter par traduction en langage machine avant ou pendant leur exécution.

L’autre constatation a été qu’il était nécessaire pour tout programme d’introduire de façon répétitive certaines fonctionnalités, qui relevaient de tâches génériques à l’exécution de tout programme – comme la façon dont la machine doit réagir en cas d’erreur, dont elle doit communiquer avec l’extérieur via des périphériques, ou de la façon de structurer la mémoire en fichiers – ou qui facilitaient la gestion de la machine indépendamment des logiciels qui s’exécutent – comme de donner l’accès à plusieurs utilisateurs. On a alors regroupé toutes ces fonctions en un ensemble cohérent et autonome, le système d’exploitation.

Lire la suite »