HISTOIRE DU LOGICIEL (SYSTÈMES D'EXPLOITATION)

©2002 Jean Bellec
Retour histoire informatique

en construction  dernière mise à jour 12 novembre, 2004

INTRODUCTION

Même si les concepts théoriques de la programmation des automates, puis du concept de la machine universelle de Turing et la structure de base du fonctionnement des ordinateurs (Von Neumann) ont été établis avant les années 1950, la mise en oeuvre de ces concepts et leur application à des machines fabriquées en série remontent seulement à la fin des années 1950 où les concepts de langage de programmation et de système d'exploitation se sont imposés.

On traitera séparément des problèmes de langages, qui n'ont guère profondément évolué depuis la fin des années 1960, et on examinera d'abord le problème des systèmes d'exploitation.

SYSTÈMES D'EXPLOITATION

L'objectif initial du système d'exploitation était l'optimisation du temps consacré par la machine à des calculs utiles, par opposition à son immobilisation pour la préparation des travaux et pour la collecte des résultats. Les systèmes mis au point pour assurer le spooling de l'entrée des données et des résultats sur les machines 1958-1968 sont la première génération. En fait deux solutions ont été apportées parallèlement, l'une chez IBM (machine scientifiques) et Univac était une première version de distribution des fonctions suivant deux machines physiques, l'autre surtout répandue dans les ordinateurs de gestion multiplexait les opérations de spooling sur une même machine introduisant de ce fait la première version de "multi-tasking". 

On s'aperçut qu'il était -au moins théoriquement- possible non seulement de multiplexer les entrées-sorties mais aussi de multiplexer l'exécution de plusieurs programmes de calcul lorsque ceux-ci étaient ralentis par des accès à des fichiers situés sur des appareils périphériques (bandes ou disques magnétiques)

Par ailleurs, les machines de "process control" avaient à faire face à des problèmes de simultanéité des entrées-sorties avec le calcul et on inventa pour ces applications le système de gestion des interruptions (y compris leur masquage et l'attribution de niveaux de priorité).

C'était à peu près la visibilité des systèmes d'exploitation au moment du lancement de la série 360 par IBM.

Des travaux universitaires mirent en lumière au début des années 1960 le manque de productivité de ces systèmes de traitement par lots, lorsqu'on incluait dans les tâches le développement des programmes. Un accès immédiat à la machine pour corriger des erreurs triviales permettait de gagner des journées entières de programmeurs. C'est ainsi que naquirent les systèmes en temps partagé où le système d'exploitation fournissait à chaque utilisateur une machine virtuelle offrant toutes ou, le plus souvent, une partie des possibilités de la machine réelle. 

Cependant, l'organisation des travaux de gestion de manière taylorienne tendait à organiser la société autour des plannings de l'ordinateur ne représentait pas une solution satisfaisante pour automatiser les tâches directement en contact avec le monde extérieur. C'est le problème d'automatisation de la réservation des places d'avions qui fut chez IBM le catalyseur de la révolution vers les systèmes transactionnels. Mais on s'aperçut aussi rapidement que le traitement en temps réel des transactions bancaires par exemple posait des problèmes de même nature. 

Les systèmes dits de troisième génération répondaient pour le matériel à ces besoins, l'introduction de systèmes de protection de mémoire plus ou moins sophistiqués nécessités pour des systèmes de time-sharing n'étaient pas tous indispensables pour le transactionnel. Par contre, il devint fondamental de développer des mécanismes de sauvegarde des données, non seulement en cas de panne du matériel, mais même pour permettre de faire des corrections ou des annulations de transactions.

Les systèmes batch laissèrent progressivement de 1970 à 1985 la place au transactionnel pour la majorité des applications.

Avec le transactionnel (et en parallèle avec le time-sharing) arriva le support de terminaux et des lignes de communications par l'ordinateur. Là encore, deux tendances s'opposèrent au début, l'une de centralisation es fonctions dans l'ordinateur principal, l'autre de traitement séparé par un processeur frontal communiquant avec lui. Les systèmes d'exploitation dérivés des systèmes temps réel privilégiaient la première approche, ceux ayant fait évoluer leur traitement batch préféraient la seconde. La victoire des seconds est davantage dû à la maîtrise de la complexité par une isolation des fonctions qu'à une efficacité plus grande.

La gestion de l'interface humain-machine deviendra le sujet essentiel des systèmes d'exploitation dans le période 1975-1985, au fur et à mesure de l'utilisation de terminaux par de plus en plus de travailleurs. De plus en plus de fonctions se virent transférer dans le terminal, ordinateur central ne pilotant plus chaque frappe sur le clavier du terminal. Des systèmes de formulaires pilotant les transactions, la saisie et une partie du contrôle du formulaire étant effectué en local.

 

La disponibilité des serveurs bon marché à base de microprocesseurs du commerce laissèrent croire à une mutation fondamentale des systèmes d'exploitation, le paradigme du client-serrveur. On crut alors que les systèmes transactionnels sur main frames allaient laisser la place à des systèmes à contexte distribué où l'essentiel du travail aurait lieu dans un micro-ordinateur client ayant accès à un serveur centralisé pour le accès aux bases de données. En fait, seules les applications à très faible taux de mises à jour évitaient la sophistication de la synchronisation des bases de données distribuées et rapidement ces fonctions furent là aussi réalisées sur les systèmes ouverts.

C'est sur les micro-ordinateurs qu'intervint la plus grande révolution des systèmes d'exploitation, celle des systèmes à gestion de fenêtres inventée au Xerox PARC à la fin des années 1970. Au début les ordinateurs personnels possédaient un système d'exploitation issu de celui des mini-ordinateurs utilisés en time-sharing , essentiellement UNIX. CP/M ou MS/DOS en étaient des versions simplifiées pour un seul utilisateur. Ce qui fut introduit par Xerox (et à sa suite par le Macintosh et Windows) était un système multi-tâches sous le contrôle d'un seul utilisateur géré de manière "évènementielle" à la manière des ordinateurs de contrôle de processus. Ce traitement est le système de base de la machine dna s Windows NT et le Mac, il est réalisé par une ou plusieurs étages de superstructures sur Windows non NT et dans UNIX.

Certains avaient pensé au début des années 1990 que l'ordinateur personnel avait vécu et serait remplacé par un retour aux systèmes centralisés avec des terminaux intelligents (network computers). Il n'en a rien été. L'attrait d'une utilisation personnelle et la naissance d'une informatique nomade a fait refuser ce retour aux sources.
L'informatique nomade a vu naître des systèmes d'exploitation spécialisés dans les PDA où la notion de système de fichiers voit décroître son rôle et où un accès rapide à l'information privilégie le stationnement indéfini des applications (dans leur état courant ou non) dans la mémoire visible du système. Les PalmOS (et autres) ont privilégié une notion universelle de sauvegarde des programmes et des données sur des ordinateurs hôte, à travers des réseaux locaux ou à distance.

Les superordinateurs d'aujourd'hui ont abandonné les concepts inventés de 1960 à 1990 pour adopter la formule du massivement parallèle, rompant aussi avec l'adressage uniforme des multiprocesseurs inventés dans les années 1960. Le rôle du réseau d'interconnexion devenu fondamental est partagé entre matériel et logiciel.

On ne saurait oublier l'importance de l'interconnexion des ordinateurs sur Internet qui a révolutionné l'informatique dans les années 1995-2000.

Que nous prépare le futur?

L'informatique nomade n'est pas encore dans sa phase de maturité. Son intégration avec les télécommunications laisse encore à désirer pour que l'accès à Internet via son PDA soit réellement utile à autre chose que la consultation de son répondeur téléphonique. Parmi les problèmes en attente de solution, figurent les moyens d'interaction humain/machine pour ces applications.

L'autre domaine qui fait l'objet de travaux importants chez les constructeurs mais qui n'a pas encore été testé, c'est le fonctionnement automatique d'un réseau de serveurs, sans la contrainte d'administrateurs. Cette automatisation délivrant de la puissance informatique répond aux rêves qu'avaient eu dès les années 1960 les pionniers de Multics. En adoptant de plus une stratégie de multi-calculateurs. Parmi les problèmes à résoudre figurent ceux de migration de bases de données sans interruption de service et l'évolution presque obligatoirement hétérogène des serveurs.

Chapitre 1: Environnement d'Exécution des Programmes

Chapitre 2: Gestion des Ressources

Chapitre 3: Gestion des Travaux

Chapitre 4: Interactions avec l'utilisateur

 

 

ARTICLES CONNEXES (souvent liés à l'histoire des Matériels)