Les premiers ordinateurs de l’histoire sont mécaniques. Des machines à calculer apparaissent tout d’abord au 19e siècle puis suivent des appareils sachant faire des opérations de plus en plus complexes.
Calculette de Pascal
Avec les améliorations technologiques du début du XXe siècle apparaissent les premiers ordinateurs électroniques grâce aux tubes à vide. Ceux-ci sont des amplificateurs qui ont révolutionné les systèmes de télécommunications. Ils peuvent également être utilisés comme interrupteurs qui laissent passer ou non un courant électrique en fonction d’un signal en entrée.
Tube électronique à vide
« ENIAC Penn1 » by The original uploader was TexasDex at English Wikipedia – Transferred from en.wikipedia to Commons by Andrei Stroe using CommonsHelper.. Licensed under CC BY-SA 3.0 via Commons –
Au fil du temps, IBM s’imposera au fil du temps comme l’un des acteurs principal du milieu.
L’utilisation de ces premiers ordinateurs était cependant limitée et complexe. En effet, des dizaines de programmeurs se partageaient la même machine et chacun d’entre eux devait amener son programme à l’ordinateur à une certaine heure qui lui était allouée, il devait ensuite attendre des heures afin de voir si le programme avait fonctionné ou s’il devait être corrigé.
De plus, ces machines étaient peu fiables à cause de l’utilisation de tubes à vide qui chauffaient beaucoup.
Sur les machines les moins perfectionnées, un nouveau programme était entré en refaisant des câblages différents entres les différentes parties de l’appareil pour chaque nouveau problème. Il fallait donc parfois des heures voir des jours pour effectuer la configuration. Les ordinateurs les plus perfectionnés pouvaient de leur côté lire des cartes perforées mais celles-ci devaient toujours être entrées manuellement.
Une idée de John von Neumann amènera la solution à ce problème : les programmes peuvent être stockés directement dans la mémoire des machines. Ils s’exécuteront alors beaucoup plus rapidement.
Il faut cependant développer un moyen d’entrer ces programmes dans la mémoire de la machine qui n’accepte que des états binaire (0 ou 1, circuit ouvert ou fermé). Pour cela, des langages assembleurs seront développés. Les instructions utilisées correspondent alors aux 0 et aux 1.
Pour qu’il soit compatible, il faut coder le programme dans le langage assembleur de l’ordinateur que l’on souhaite utiliser. Un programme n’est donc utilisable qu’uniquement sur l’ordinateur pour lequel il a été conçu.
Afin de rendre les programmes portables, des langages de programmation apparaissent dans les années 50. Le développeur écrira son programme dans un langage de programmation, et un compilateur se chargera de transcrire le programme en langage machine. Il suffira donc de développer un unique compilateur pour chaque type de machine. Le plus important d’entre eux provient d’IBM en 1954 : Formula Translation ou Fortran.
Fortran est particulièrement adapté aux opérations mathématiques. D’autres langages comme le COBOL (Common Business Oriented Language) en 1959, le CPL (ancêtre du C) en 1963 ou le BASIC en 1964 apparaissent plus tard pour d’autres besoins.
Les ordinateurs étant de plus en plus utilisés, on commence à se dire qu’il serait intéressant pour des besoins pratiques de compter le nombre de programmes exécutés, de feuilles imprimées, de garder un journal des erreurs, …
Des programmes spécifiques qui tourneront en permanence sur l’ordinateur sont alors développés, c’est la naissance des systèmes d’exploitation.
Les premiers systèmes sont basiques. Ils gèrent les opérations sur les fichiers (création, suppression, lecture, écriture) ainsi que les entrées (clavier, programme) et sorties (imprimante, écran).
Afin d’unifier son parc de machines, IBM tente au début des années 1960 de développer un système d’exploitation universel pour tous ses ordinateurs (OS/360). Cela prendra des années et coutera des millions de dollars mais c’est un succès. En 1964, toutes les applications IBM fonctionnent de la même façon et IBM lance la famille d’ordinateurs IBM System 360, tous compatibles entre eux.
IBM tentera par la suite d’imposer également un langage de programmation standard : PL/I (Programming Language One) combinant Cobol et Fortran, mais il ne sera pas massivement adopté.
A la fin des années 60, des ingénieurs du laboratoire Bell développent avec le MIT un système d’exploitation qui permettra à plusieurs utilisateurs de se connecter en même temps un ordinateur central. Le projet n’avançant pas, les ingénieurs de Bell (à l’origine Ken Thompson et Dennis Ritchie) décident de développer seuls leur propre système d’exploitation : UNIX (à l’origine UNICS, UNIplexed Information and Computing Service). Le système est à ses débuts très basique, mais de nouvelles fonctionnalités sont ajoutées au fur et à mesure que le besoin se fait ressentir et celui-ci se répand rapidement sur les machines des laboratoires Bell.
En 1972, UNIX est réécrit dans le nouveau langage C, rendant le système beaucoup plus portable à d’autres architectures d’ordinateurs. Pour des raisons légales, AT&T et les autres sociétés Bell n’ont à l’époque pas le droit d’entrer dans d’autres secteurs commerciaux que celui de la téléphonie. UNIX est donc distribué gratuitement à qui le demande.
Terminal d’accès à un ordinateur Central tournant sous UNIX
By Jason Scott – Flickr: IMG_9976, CC BY 2.0,
Au cours des années 1970, UNIX se répand et devient petit à petit le standard des systèmes d’exploitation.
Cependant, les ordinateurs sont à cette époque toujours des énormes machines couteuses seulement accessibles aux universités, laboratoires et grandes entreprises. Le micro-ordinateur personnel n’existe pas encore.
La miniaturisation qui va permettre d’inventer les premiers micro-ordinateurs personnels est rendue possible par une invention révolutionnaire : le transistor.
En 1947, trois scientifiques du laboratoire Bell (William Shockley, John Bardeen, et Walter Brattain) inventent un composant électronique capable de remplacer efficacement le tube à vide : le transistor. Celui-ci, comme le tube à vide avant lui, est capable d’amplifier les signaux et de fonctionner comme un interrupteur.
La première version fonctionnelle du transistor ayant été mise au point par Bardeen et Brattain seuls, sans l’aide de leur chef d’équipe Shockley, le nom de Shockley ne figure pas sur le brevet du laboratoire Bell. Ceci énerve Shockley au plus haut point car il est l’investigateur du projet et de son point de vue, les découvertes de ses deux collaborateurs n’auraient pas été possible sans ses contributions théoriques.
Shockley s’isole alors et travaille seul pour mettre au point une version améliorée du transistor pour laquelle il est le seul inventeur : le transistor bipolaire, plus fiable que la version originelle.
Le premier transistor
L’invention du transistor va tout changer pour les ordinateurs. Il est maintenant possible de remplacer les tubes par des petits composants électroniques miniaturisés en silicone, bien moins chers et bien plus fiables.
Les transistors vont devenir au fil des années de plus en plus petits, permettant la conception d’ordinateurs de plus en plus complexes et puissants. Un problème demeure cependant, la multiplication et la miniaturisation des transistors rend de plus difficile la connexion de ceux-ci les uns aux autres avec des câbles.
William Shockley sera encore une fois indirectement responsable de la résolution de ce problème: en effet, celui-ci quitte les laboratoires Bell en 1956 et fonde les laboratoires Shockley Semiconductor en Californie dans la future Silicon Valley. Il y engage des jeunes chercheurs pour continuer les recherches sur le transistor et les semi-conducteurs.
Ayant peur de se faire éclipser à nouveau par sa jeune équipe, Shockley contrôle tous les faits et gestes de ses employés. Rapidement agacés par la personnalité paranoïaque de leur chef, 8 des jeunes chercheurs décident de fonder leur propre compagnie en 1957, Failchild Semiconductor. Apprenant leur départ, Shockley les nomme « les 8 traitres » et les assurent qu’ils n’arriveront jamais à rien sans lui.
Fairchild développera rapidement le premier circuit intégré. Un seul de ces circuits peut être composé de multiples transistors et autres composants électroniques déjà connectés les uns aux autres.
Des circuits intégrés
Les 8 ingénieurs de Fairchild se sépareront par la suite pour créer leurs propres compagnies qui seront les premières de Silicon Valley. (Dont Intel & AMD).
Les compagnies descendantes de Fairchild
La multiplication des transistors sur des circuits intégrés améliore grandement la rapidité et donc la puissance des ordinateurs, l’électricité ayant un trajet plus court à parcourir d’un composant au suivant.
L’arrivée des semi-conducteurs fait apparaitre un nouveau marché dans les années 1960 : celui des calculatrices. Celui-ci se développe très rapidement et les compagnies descendantes de Fairchild dans la Silicon Valley fournissent la majorité des circuits intégrés nécessaires. L’une de ces compagnies, Intel, fondée par Gordon Moore, Robert Noyce et Andrew Grove, conçoit de la mémoire (Ram pour Random Access Memory) pour ces calculatrices.
En 1969, une petite compagnie japonaise, Busicom, souhaite se lancer sur le marché. Leur idée révolutionnaire est de rassembler l’ensemble de l’électronique pour une calculatrice sur une unique puce (un seul circuit intégré). Cette puce magique rassemblera ROM (Read Only Memory, le firmware programmable), la partie calcul/logique, la partie RAM (mémoire pour stocker temporairement les informations), la partie entrée/sortie et la partie alimentation. N’ayant pas les capacités de produire cette puce par eux-mêmes, Busicom contacte Intel et demande de l’aide à la jeune compagnie.
Le projet s’enlise rapidement, la technologie de l’époque n’est pas encore prête pour pouvoir utiliser une unique puce, et les ingénieurs arrivent rapidement à des concepts comprenant 10, voir 12 puces pour la calculette, chacune avec des milliers de transistors.
L’équipe d’Intel a cependant une idée. Dans sa conception, la puce imaginée par Busicom possédait une architecture optimisée pour les opérations d’une calculette. Intel propose à Busicom une puce plus simple, plus générale, où la complexité sera déplacée dans le firmware. La puce fonctionnera comme un ordinateur multitache et pourra être programmée pour fonctionner comme une calculette. De plus, celle-ci pourra par la suite être reprogrammée pour d’autres applications si le besoin se fait ressentir. Busicom n’est initialement pas enthousiaste car, à l’époque, personne n’a jamais programmé de firmware aussi complexe que celui qui sera nécessaire pour faire fonctionner une calculette sur une puce de ce type.
L’argument du prix aura cependant raison des réticences de Busicom, le cout de fabrication de la calculette utilisant le concept d’Intel étant bien plus faible. L’idée d’Intel est alors acceptée.
Fin 1970, la puce d’Intel est prête, ou plutôt la série de puces, car Intel n’a finalement pas réussi à mettre toute l’électronique sur une unique puce. Ce que l’on appelle maintenant le « système 4000 » est finalement réduit à 4 puces :
- La puce 4001 qui contient la ROM (2048 bits) et donc le programme.
- La puce 4002 qui contient la RAM.
- La puce 4003 qui gère les entrées et sorties.
- La puce 4004, la plus importante, un processeur de 4 bits qui gère la logique (740 KHz).
Rapidement, le nom d’usage Intel 4004 est utilisé pour désigner l’ensemble du système. Malheureusement, il est trop tard pour Busicom : en 2 ans, le tarif moyen d’une calculette au japon a tant diminué que même avec le tarif réduit du 4004, Busicom ne pourra rentrer dans ses frais. Un nouvel accord est signé avec Intel, Busicom aura ses puces à un tarif encore plus faible, mais Intel récupère tout droits sur celle-ci, y compris celui de la vendre à d’autres clients. Beaucoup dans la compagnie pensent qu’il n’y a aucun marché pour ce que ses concepteurs appellent maintenant « microprocesseur » et qu’Intel devrait simplement abandonner le projet.
Les clients sont en effet difficiles à trouver. Pour la plupart des gens, les ordinateurs restent d’énormes appareils, pas des petites puces auxquelles ils ne font pas confiance, et puis de toute façon, personne ne sait programmer sur microprocesseur.
Face à ce problème, Intel pense que l’idéal serait d’avoir un moyen de montrer de quoi les microprocesseurs sont capables.
En 1972, Gary Kildall tombe sur une annonce parlant d’un ordinateur vendu à 25$, un tarif dérisoire à l’époque. En réalité, il s’agit simplement d’un microprocesseur 4004 d’Intel.
Gary commence à écrire des programmes pour le 4004, même s’il est rapidement limité par les capacités faibles du processeur 4 bits. Il visite alors les locaux d’Intel, découvre le 8008, évolution du 4004 en développement et, s’entendant bien avec l’équipe de développement obtient un emploi comme consultant.
En quelques mois, il écrit un langage de programmation spécialement conçu pour le 8008, variante du langage PL/I (Programming Language One) d’IBM : le PL/M (Programming Language for Microcomputers).
Avec ce langage de programmation, Intel va pouvoir montrer aux clients ce que le 8008 est capable de faire.
A la sortie du 8008, deux jeunes étudiants entrevoient dans le 8008 d’Intel la possibilité de se créer son propre ordinateur : Bill Gates & Paul Allen.
La première compagnie de Bill Gates et Paul Allen : Traf-O-Data.
(Paul Gilbert, 3e partenaire s’occupant principalement du hardware, ne restera pas très longtemps).
« KL Intel C8008-1 » by Konstantin Lanzet – CPU Collection Konstantin LanzetCamera: Canon EOS 400D. Licensed under GFDL via Wikimedia Commons
Paul Allen souhaite écrire le premier basic pour le 8008 mais Gates n’y croit pas, le 8008 est trop lent pour faire fonctionner un basic utile.
Allen propose alors à Gates de fabriquer à partir du 8008 une petite machine qui sera capable de lire automatiquement les bandes de mesure de circulation routière. L’idée étant beaucoup plus pratique, elle plait à Gates qui achète le processeur pour 360$ et fonde le partenariat Traf-O-Data avec Allen.
Seulement, avec un seul microprocesseur, on ne va pas loin. Allen va donc écrire un simulateur de 8008 qu’il va faire tourner sur l’ordinateur central de son université, un IBM System 360 (le tarif du 8008, 360$, fut choisi par Intel comme référence à ces systèmes, ordinateurs standards de l’époque). Les ressources de l’ordinateur central seront alors utilisées pour développer la partie software de leur machine avant même que le hardware soit terminé.
La machine ne sera pas un grand succès. Toutefois, Gates et Allen rentreront dans leurs frais et gagneront leurs premiers dollars.
En 1974, Intel dévoile une nouvelle évolution du 8008, le 8080. Plus puissant, il semble capable de gérer un vrai ordinateur multifonction. Gates et Allen hésitent mais après le semi-échec de leur première machine, n’osent pas se lancer à nouveau.
Heureusement, d’autres le feront à leur place, début 1975, MITS lance l’Altair 8800, considéré par beaucoup comme le vrai premier micro-ordinateur. Cependant, à sa sortie, l’altair reste un système vide dans lequel on peut uniquement entrer des instructions en langage machine via des interrupteurs situés sur le châssis. L’espace mémoire interne de l’Altair (256 octets extensible à 4ko via de des barrettes de ram) est en effet trop faible pour stocker les langages de l’époque.
Altair 8800 au Computer Museum de Cambridge, en Angleterre
En décembre 1974, Paul Allen tombe par hasard sur une publicité pour l’Altaïr dans un magazine. Y voyant sa chance, il achète rapidement le magazine et court chez Bill Gates, qui voit également en la machine sa nouvelle chance pour faire fortune. Ils pensent tous les deux que le marché des micro-ordinateurs est sur le point d’exploser et que quelqu’un devra coder des programmes pour ces nouvelles machines. Gates et Allen décident de développer un basic pour l’altair, se disant qu’il pourra ensuite être adapté facilement sur les futurs appareils utilisant le même processeur. Gates appelle rapidement MITS, pour leur vendre un BASIC fonctionnel pour l’Altaïr qu’il aurait conçu avec Allen. En réalité, à cet instant, pas une ligne de code n’existe, c’est un bluff. MITS accepte de rencontrer les deux jeunes gens, il faut donc que le BASIC soit rapidement prêt.
Ne possédants pas d’Altair, Gates et Allen se répartissent les taches. Allen transforme son simulateur de 8008 en simulateur de 8080 afin de pouvoir tester le basic que Gates écrit. Si Allen fait une seule erreur, le basic écrit par Gates risque de ne pas fonctionner sur une machine réelle.
Deux mois plus tard, dans l’avion qui l’amène au Nouveau Mexique pour l’essai dans les locaux de MITS, Allen réalise qu’ayant travaillé uniquement sur un simulateur, Gates n’a pas écrit le bout de code en assembleur qui initialisera la machine et lui fera charger le basic. Allen l’écrit de mémoire et l’ajoute au code à la main dans l’avion.
Contre toute attente, le basic fonctionne et MITS signe un contrat avec la nouvelle compagnie de Gates et Allen (Microsoft) pour en faire le basic officiel de l’altair.
L’Altair n’est plus une boite vide, le premier micro-ordinateur est vraiment né.