Les premiers ordinateurs purement mécaniques, tels que les machines de Babbage ne donnèrent guère de résultat pratique. Ce furent cependant des avancées fondamentales à l’origine de concepts encore utilisés aujourd’hui. Ces machines méritent de figurer parmi les ancêtres des ordinateurs actuels
Plus tard, les ordinateurs électromécaniques, furent d'une bien plus grande utilité. Ce fut le cas de la tabulatrice d'Herman HOLERITH pour le recensement américain de 1890, ou plus tard encore, celui de la "bombe de Turing", un supercalculateur qui avec ses mécanismes bruyants est parvenu à décrypter les messages codés par la machine Enigma de l’armée allemande.
Le développement de nouvelles générations d'ordinateurs s'intensifia lors de la seconde guerre mondiale. Par « générations » nous entendons ici des innovations technologiques tellement remarquables qu’elles révolutionnent l’utilisation des ordinateurs.
Continuer à distinguer des générations d'ordinateurs ultérieures, en se référant uniquement aux technologies de fabrication pour jalonner l'histoire de l'informatique, a moins de sens par la suite car l'évolution de l'informatique a pris bien d'autres aspects : l'apparition des réseaux, les communications digitales, Internet, le Web, les connexions sans fil, l'informatique embarquée, la téléphonie mobile, les GPS, les tablettes et les smartphones, l'Internet des objets, etc.
Y a-t’il une cinquième génération ? Quelle innovation technologique aurait marqué le début de celle-ci ?
L’évolution de l’informatique et de son utilisation concerne de nombreux domaines : les réseaux,
les communications digitales, Internet, le Web, les connexions sans fil, l’informatique embarquée,
la téléphonie mobile, les GPS, les tablettes et les smartphones, le cloud, l’Internet des objets, etc.
Quelle innovation technologique, les historiens retiendront-ils pour déclarer à quel moment cette cinquième génération a eu, ou aura lieu ? Ce pourrait-être l’ordinateur quantique ! … L’avenir nous le dira.
Au milieu des années 40, les «moteurs de calcul» utilisant des relais mécaniques (temps de cycles en secondes) sont remplacés par des circuits électroniques : les tubes à vide. Cela donne des machines énormes qui se programmaient en basculant des interrupteurs ou en interchangeant les raccordements de câbles sur un tableau de connexion (plugboard).
Il n’y avait à ces débuts ni langage ni système d’exploitation.
Le premier calculateur numérique entièrement électronique fut réalisée en 1943 sous la direction de Thomas FLOWERS dans le centre de crypto-analyse de Bletckley Park en Angleterre. Cette machine, le Colossus Mark 1, fonctionnait en binaire et était programmable. Elle a servi à casser les chiffrements allemands et japonais. Comme pour la bombe de Turing, l’existence des machines Colossus est restée secrète jusqu’en 1975.
Aux États-Unis, la réalisation du premier ordinateur électronique, l’ENIAC, fut entreprise en secret en 1943 par John Presper ECKERT et John William MAUCHLY à l'Université de Pennsylvanie avec l’aide du mathématicien Hermann GOLDSTINE. Il a initialement été conçu pour calculer les tables de tir d’artillerie.
L'ENIAC était une machine énorme, elle pesait 30 tonnes et était composée de 18000 tubes à vide.
Bien que le tube à vide soit une technologie de type électronique (et non plus électromécanique comme le relais), l'ENIAC ne reprenait pas le principe du calcul binaire du calculateur de STIBITZ. Il fonctionnait en décimal. Chaque chiffre était codé au moyen d'une série de 10 tubes à vide dont le nom "ring counter" (compteur en anneau) montrait bien qu’il s’agit d’une transposition électronique des roues dentées des premières machines arithmétiques.
Les plans de l'ENIAC furent terminés en 1944 et la machine fut inaugurée le 15 février 1946 par une démonstration d’un calcul dont le programme a été rédigé par Adèle Goldstine. (A l’époque les femmes étaient considérées comme capables de programmer plus rapidement et plus précisément que les hommes – cf. The Women of Eniac )
Cette machine était programmée manuellement en positionnant des commutateurs ou en branchant des câbles selon des configurations diverses. Lorsque le programme était compliqué cela pouvait prendre plusieurs jours.
En 1950, une première amélioration a été d’utiliser des cartes perforées pour écrire les programmes.
En 1951, Grace HOPPER conçoit le premier compilateur.
En 1954, le langage Fortran a été le premier langage de haut niveau à être implémenté sur un ordinateur.
Les ordinateurs deviennent suffisamment fiables pour être produits et vendus
⇒ Séparation entre constructeurs, opérateurs et programmeurs.
Les machines devaient être installées dans des locaux climatisés, programmées en FORTRAN ou en assembleur via des cartes perforées que les programmeurs remettaient aux opérateurs. Les opérateurs chargeaient les programmes dans l'ordinateur avec le compilateur si nécessaire. Les résultats étaient imprimés puis remis aux programmeurs.
⇒ Ces manipulations engendraient des pertes de temps trop coûteuses vu l'importance de l'investissement.
Traitement par lots :
Une machine moins onéreuse, telle que l’IBM 1401, lisait les cartes (a) pour en recopier le code sur une bande magnétique (b). Un gros calculateur (IBM 7094) lisait cette bande (c), exécutait les jobs (d) puis transcrivait les résultats sur une autre bande (e) postposant ainsi l’impression des résultats (impression off-line) faite ensuite par un ordinateur plus léger (f).
La notion de système d'exploitation apparaît.
Exemple : le FMS (Fortran Monitor System)
Les étapes successives de l'exécution d'un programme :
- Charger le compilateur
- Lire le code source et le compiler
- Charger l'exécutable
- Lancer l'exécution
- Lire et traiter les données
Au début des années 60, il y avait deux types d'ordinateurs :
⇒ Cela donnait deux lignes de produits distinctes.
Le system 360 d'IBM, une série de machines compatibles au niveau logiciel (même architecture et même jeu d'instructions) tentait de convenir aussi bien aux applications scientifiques que commerciales.
Ces machines étaient les premières à utiliser les circuits intégrés permettant une baisse de prix ; le succès fut immédiat.
Ce concept de « famille unique » a donné un OS devant être aussi efficace sur des petites machines que les grosses, avec peu ou un très grand nombre de périphériques, pour des applications commerciales ou scientifiques ⇒ Système d'exploitation énorme : Des millions de lignes d'assembleur écrites par des milliers de programmeurs. Cela donne des milliers de bogues !
C'est à ce moment aussi qu'est apparu le concept de multiprogrammation. La mémoire est partagée entre différents jobs. Quand l'un d'eux attend la réalisation d'une entrée/sortie, un autre job peut s'emparer du CPU. ⇒ Le taux d'utilisation avoisine les 100 %.
Autre nouveauté : le SPOOL : Simultaneous Peripheral Operation On Line.
C'est la capacité donnée aux applications de partager simultanément un même périphérique lent (imprimante, lecteur de carte, …).
Dans le cas de l’imprimante, le spooler d’impression mémorise les documents à imprimer et se charge de les envoyer, l’un après l’autre, à l’impression.
Problème ! Impossibilité de suivre le programme durant son exécution pour sa mise au point
⇒ Nécessité du temps partagé : plusieurs utilisateurs = Chacun dispose d'un terminal en ligne.
On imaginait à l'époque que les ordinateurs deviendraient d'immenses machines fournissant une puissance calcul à des centaines d'utilisateurs : le MULTICS (Multiplexed Information and Computing Service )
C'est aussi l'époque de la percée des mini-ordinateurs tels que le DEC PDP-1 en 1961.
Le PDP-1 possédait 4 k mots de 18 bits pour 120.000 $ (5% du prix d'un IBM 7094).
D'autres lui ont succédé jusqu'au PDP-11.
C'est sur un PDP-7 que Ken Thompson a commencé à écrire une version mono-utilisateur de MULTICS qui a servi de base au système UNIX.
Le code source de UNIX a été publié et développé en plusieurs versions (incompatibles)
L'IEEE a développé un standard appelé POSIX auquel la plupart des
versions actuelles de UNIX se conforment (ainsi que d'autres systèmes)
En 1987, Andrew TANENBAUM a développé le
MINIX
un petit clone de UNIX à des fins pédagogiques.
Linus Torvald a fait une version de production :
LINUX
NB. Les notes ce chapitre doivent beaucoup à cet excellent pédagogue qu'est Andrew Tannebaum et dont voici le site personnel
Les circuits LSI - Large Scale Integration ciruit contenant des milliers de transistors par mm² ont été mis au point au milieu des années 70 pour le développement des premiers microprocesseurs. Ils ont permis la fabrication de ce qu'on appelait les micro-ordinateurs ou ordinateurs personnels. Ils n'étaient pas très différents des PDP-11 sauf pour le prix ⇒ un individu peut posséder sa propre machine : le PC = Personnal Computer.
On ne parle plus aujourd’hui de circuits LSI.
Ils ont été remplacés, fin des années 70, par des VLSI – Very Large Scale Integration :
plusieurs centaines de milliers de transistors.
Durant les années 80, l’intégration des circuits intégrés est devenue à ultra grande échelle
ULSI – Ultra Large Scale Integration :
des millions de transistors sur une seule puce.
Chaque année, la gravure des circuits devient plus fine et l'échelle d'intégration plus grande. C'est ce que traduit la loi de Moore.
Gordon Moore aurait dit à ce sujet que si l'industrie automobile avait progressé aussi rapidement
que celle des semiconducteurs, une Rolls Roce roulerait une demi million de milles par gallon,
et que cela couterait moins chèr de la jeter que de la garer.
(1 milles = 1,6 km, 1 galon = 3,8 litres)