Une brève histoire de l’informatique — Partie 1 (LONG)
(découpé en deux, euh, trois articles pour ne pas faire trop long - La suite ici plus tard)
Préambule
Avant que vous ne vous désespériez du titre1 de ce billet, non, je ne vais pas vous rabâcher une N-ième redite de l’Histoire (avec un grand H) de l’informatique. De multiples articles et livres ont précédé celui-ci — fort probablement en mieux d’ailleurs. Je ne vais pas non plus comme le commence notre ami Glazou ici écrire un livre sur le sujet.
Il n’a pour but que de relater mon expérience personnelle en la matière, laquelle traverse quand même peu ou prou 34 ans de mon existence (oui, j’ai passé plus de temps avec un ordinateur que sans, enfance comprise). Ce n’est pas non plus, j’espère, un billet sur le « ah c’était mieux avant »2 en mode « ancien combattant ». Quoique… vous jugerez :).
Ça a été une période magique avec constamment des choses à découvrir et à apprendre (une certaine définition de la vie selon moi). Non pas que la période actuelle n’ait pas les mêmes possibilités loin s’en faut mais on avait l’impression de défricher un terrain inconnu et j’étais quand même beaucoup plus jeune et la vision de l’avenir et de son développement est forcément différente.
Il était une fois… le ZX81
Non, je n’ai pas commencé comme tant d’autres avec un Altair, un Commodore PET ou encore le célèbrissime Apple II. Ma mémoire me fait un peu défaut je dois avouer mais je ne me souvient pas m’être intéressé plus que ça aux ordinateurs avant mon premier sauf à consulter des revues de temps en temps, les machines étant trop chères à l’époque (1981, j’avais 14 ans). J’ai bien du en toucher un ou deux dans des magasins mais j’étais bien incapable d’en faire quoi que ce soit.
Ordoncques, mon père, se disant que ça pouvait m’intéresser, m’acheta pour mon anniversaire un Sinclair ZX81. Je dois dire que qu’elles qu’aient été ses attentes à l’époque, je pense les avoir « un peu » dépassées :)
Ça n’est probablement pas très impressionnant, vu ainsi : petit, en plastique, avec un clavier compliqué, touffu avec ses 4-5 fonctions par touche, sans parler déjà d’un clavier QWERTY (que l’on qualifierait maintenant de UK avec son symbole £). Le chargement des programmes et la sauvegarde des données se faisaient via un lecteur de cassette audio (des mini-cassettes dans mon cas, un dictaphone comme on les appelait). Le processeur — vendons du rêve ! — était un Zilog Z-80, 8 bits avec une fréquence royale de 3.25 MHz3. L’affichage se faisait via la prise antenne de la télévision (et les dieux savent combien de fois j’ai emprunté la TV familiale à ma mère pour l’y brancher).
Les seules machines ayant des claviers français furent celles conçues en France comme les fameux TO7 et MO5, lesquelles n’apparurent qu’après, en 1982. Ou encore l’Alice pour les débuts de Matra-Hachette dans le domaine…
Ce ZX81 donc, se programmait en BASIC, un langage de programmation inventé en 1963 et popularisé par les micro-ordinateurs précédemment cités (PET, Apple II, etc.). Très primitif encore, il était très limité par la mémoire de la machine, dotée de… 1 Ko. Oui, oui, « un kilo-octet » de mémoire, il n’y a pas de faute4.
J’ai donc commencé à m’y intéresser mais c’était trop peu pour faire beaucoup de choses, avouons-le. J’ai vaguement commencé à regarder l’Assembleur mais la manière existant pour insérer le code dans la machine consistait à insérer un commentaire dans un programme BASIC, lequel allait modifier ledit commentaire pour y insérer, octet par octet, les instructions machine (du code auto-modifiant donc).
Ce fut aussi l’occasion de lire en anglais, les bouquins en français étant très rares (et chers). Sans parler évidemment du fait que les documentations des ordinateurs étaient elles-aussi dans la langue de Shakespeare.
J’avais même fait une démonstration du ZX81 dans mon collège, étant l’un des premiers élèves à avoir un ordinateur à la maison… Le collège lui-même venant de recevoir ses premiers TRS-80.
Malgré ses piètres performances et possibilités, j’étais accroché :)
Petite transition : Oric-1 (1983)
Le ZX81 (tout comme son prédécesseur le ZX80) était l’œuvre d’un britannique de génie, Sir Clive Sinclair qui inventa aussi une voiture électrique, la C5. Après le succès du ZX81, Sinclair annonça son successeur, le futur ZX Spectrum mais, impatient que j’étais de continuer, je fis une infidélité à Sir Clive en achetant un autre ordinateur, l’Oric 1 fin 1983 ou début 1984.
On passe là dans une toute autre dimension :
- processeur 6502, le même que l’Apple II mais à 1 MHz ;
- « vrai » clavier assez caouchouteux, toujours QWERTY (mais US cette fois-ci, avec le #) ;
- 64 Ko (!) de mémoire. Bon, tout n’est pas utilisable hein, juste 37 Ko et on pouvait tricher en ne faisant pas de graphique, on approchait ainsi les 48 Ko de mémoire vive, le reste étant le BASIC intégré dans la ROM ;
- des graphiques plus sophistiqués avec des vrais jeux5 !
- je pique toujours la TV noir et blanc de ma mère.
Celui-ci fut co-financé entre mon père et moi par contre :)
J’ai continué à faire du BASIC, l’assembleur me semblant assez limité (non tout le monde n’était pas fou du 6502 et de son assembleur, la manipulation avec la page 0, etc.) sur un processeur 8 bits, franchement bof. De mémoire, le plus gros programme que j’‘ai écrit dessus permettait de calculer… les impôts — pas très sexy, je sais.
J’avais en parallèle commencé à fréquenter le club Microtel de Vanves, où j’habitais alors. On y trouvait des Goupil 1 & 2 avec des disquettes de 8 pouces et des langages « modernes » comme le compilateur UCSD Pascal, ancètre des environnements de programmation connus maintenant sous le nom d’IDE avec éditeur et compilateur intégrés.
Entre temps, Sinclair a sorti son ZX Spectrum mais prépare déjà son successeur, le rythme était rapide à cette époque.
Vous remarquerez que l’on reste pour l’instant dans l’univers des machines 8 bits pour les micro-ordinateurs (hormis l’OVNI appelé TI-99/4A, le premier disposant d’un processeur 16 bits, le TMS9900). Pas d’Atari 600XL ou 800 ici, je ne les voyais vraiment que comme des consoles de jeux et ça ne m’intéressait pas.
La révolution arrive néanmoins.
La révolution 32 bits : Sinclair QL (1985)
Comme chacun sait, Apple, après l’échec cuisant du Lisa en 1983, révolutionnaire mais ultra-cher (70 000 F soit plus de 10 000 €, à l’époque !), sort le Macintosh en 1984, doté comme lui d’un microprocesseur 16/32 bits6, le Motorola 68000. Ce processeur est très important ici puisque dans sa variation 680087, il va équiper mon 3e ordinateur, le Sinclair QL.
Cet ordinateur va me propulser dans un autre monde, celui où le système d’exploitation, QDOS, devient plus important pour moi que ce qu’il fait tourner (i.e. les applications). Celui-ci était multitâches8, disposait d’un système de fenêtrage et d’un BASIC amélioré — le SuperBASIC – permettant la programmation structurée.
Le système d’enregistrement et de sauvegarde, un système de microlecteur de bandes (le fameux microdrive), réputé pour sa fragilité (je confirme) et son manque de stockage (je confirme aussi, 100 Ko…). Cela dit, et ce n’est pas une boutade, ça restait beaucoup plus rapide que les lecteurs de cassettes audio.
Après quelques temps, vers 1986 je crois, ayant quelque argent et désirant mieux travailler, j’ai acheté un lecteur de disquettes 3 pouces (oh le bonheur…).
Grâce à cette machine et son OS, j’ai pu :
- encore améliorer mon anglais (et pas qu’en lisant) ;
- apprendre enfin un assembleur moderne et puissant ;
- apprendre la programmation structurée ;
- commencer à programmer justement des outils de cryptographie, passion qui m’avait pris juste avant l’informatique en 1980 ;
- utiliser mes premiers logiciels bureautique livrés avec (Quill, Abacus, Archive et Easel de Psion) ;
- apprendre le langage C et commencer à réellement bidouiller le système.
Incidemment, j’ai pu participer à la création de l’association QL Contact France (QLCF) avec notamment mes amis Daniel Toussaint, René Durand, Wolf Lenerz et d’autres… QLCF mériterait un article en soi je pense, peut-être plus tard.
Je me suis lancé avec bonheur dans la programmation en Assembleur 68000, mon premier9 réllement utilisable (déjà le goût du luxe me direz-vous). Comme je l’ai mentionné au dessus, j’ai fait mes premiers programmes de cryptographie avec entre autre un système de nomenclateur basé sur le système allemand “Schlusselheft” (de mémoire, voir la référence en la matière “The Codebreakers” de David Kahn) et un système de substitution polyalphabétique… que j’ai vendu10 ! Il avait bien évidemment une interface graphique, etc. entièrement en Assembleur 68000.
Sinclair, avec l’échec du QL et de sa voiture électrique, a été racheté (et coulé) par son concurrent direct, Amstrad, concepteur des CPC-64 et CPC-6128 (bouh). Autant dire que ne les aimant déjà pas avant le rachat, celui-ci n’a pas amélioré mon opinion de M. Alan Sugar. Le QL a eu une deuxième vie dans le monde PC avec la reprise du QDOS par son auteur, Tony Tebby. Voir le site de Wolf Lenerz déjà mentionné :)
Chapitre anecdote, à un moment, ma belle-mère voulant me faire un cadeau, m’avait proposé de choisir un logiciel et j’avais hésité entre l’interpréteur Forth et un compilateur BCPL, ancêtre du C. J’avoue m’être beaucoup amusé avec le 2e :)
Autre anecdote, j’ai acheté beaucoup de livres informatique dont celui de référence sur le langage Ada (voir la référence dessous), je ne pouvais pas l’utiliser, les compilateurs étant trop gros et « professionnels » mais la lecture fut intéressante (et m’a conforté dans mon opinion des dérivés de Pascal, je n’aime pas).
J’y ai aussi piraté mon premier logiciel (le jeu d’échec de PSION Chess11) et, pendant mon apprentissage du langage C avec le compilateur Lattice C (alors leader mondial des compilateurs sur Atari notamment, avant que Microsoft C12 et Turbo C ne le surpassent dans le monde PC), énervé d’avoir trop de bugs dans le compilateur et ses bibliothèques, je l’avais désassemblé et patché pour corriger les plus gros problèmes…
Ce fut par ailleurs à cause des déficiences de ce compilateur sur QL que la nouvelle étape est arrivée, le monde PC.
Les premiers PC (1987)
Donc, fatigué de me battre avec ce compilateur C de (biiiiip), je me décide à acheter un PC. Vu mon budget, ça sera un petit PC (XT hein, même pas AT, ça coûtait trop cher) avec un processeur 8088 (remplacé après par un compatible plus rapide, le NEC V20), 640 Ko de mémoire (ben oui, seulement 1 Mo de mémoire adressable par le 8088, « juste » 8/16 bits). Mon premier disque dur, 20 Mo13 MFM14 en 5 pouces ¼, demi-hauteur, carte « graphique » CGA avec 4 couleurs…
Disons le tout net, le passage de mon cher 68008 au 8088 fut très rude. Même si ça s’est amélioré depuis, principalement via AMD et le jeu d’instruction 64 bits, Intel reste le symbole d’une architecture pauvre en registres, eux-mêmes trop spécialisés rendant l’assembleur particulièrement frustrant pour moi.
Interlude étudiant
En 1987, je suis rentré après mon bac en DUT informatique (de gestion15), à Orsay, Paris XI.
L’environnement mériterait un article à lui tout seul mais résumons :
- un mini-ordinateur déjà vieux à l’époque (Solar 16) ;
- j’ai échappé à un an près au lecteur/poinconneur de cartes perforées ;
- j’ai appris l’Assembleur IBM/360 dans des conditions qui rendraient sans doute incrédule beaucoup de nos jeunes ingénieurs :
- on éditait le source sur le Solar 16 précédemment nommé avec un éditeur ligne (comme
EDLIN
oued(1)
) ; - on lançait le job vers un ordinateur distant (un Fujitsu compatible 360, géré par la fac d’Orsay) ;
- le lendemain, on récupérait un bloc de papier contenant le résultat (généralement un plantage) sous forme de dump en héxadécimal sur lequel nous pointions avec des stabilos l’emplacement dans le code des registres, etc. afin de trouver où exactement le programme avait planté ;
- un batch par jour, ça veut aussi dire que l’oubli d’une virgule ou d’un point remettait tout à la journée suivante.
(séduisant hein ?)
(sans vouloir me vanter, à cette époque, débugger un programme c’était quelque chose. Heureusement on a un peu évolué depuis :))
- on éditait le source sur le Solar 16 précédemment nommé avec un éditeur ligne (comme
- un DPS-7 de Bull, horrible machin multi-utilisateurs sous GCOS7 — tellement rapide qu’il fallait 10mn tous les matins pour s’y connecter — et le langage PL/1 ;
- encore plus de C, moi sous Microsoft C16, les copains avec Turbo C17 ;
- j’ai appris par un de mes professeurs qu’un mini-ordinateur de gestion avait 512 Ko de mémoire18. Le cours de ce monsieur — les méthodes de programmation notamment Merise — était, comment dire, très particulier. N’aimant pas Merise, il avait développé la sienne. Autant vous dire que son cours n’a pas été très fréquenté…
j’ai donc appris le langage COBOL19. Le langage de gestion sensé être lisible par un manager. Un exemple ?
DIVIDE A INTO B GIVING C REMINDER D ROUNDED.
(ne me remerciez pas, c’est cadeau. Oui, c’est juste une division entière avec arrondi)
Fin
Pourquoi est-ce que je mentionne l’IUT, à part pour vous donner quelques anecdotes sur cette période ? Parce que mon premier PC, acheté 7 000 F (aïe), j’ai réussi à le revendre 9 000 F après avoir changé processeur, mis plus de mémoire et je crois changé la carte graphique, travaillant à mes heures perdues pour un assembleur de PC venant de Taiwan…
Du coup, j’ai pu passer à mieux (tout étant relatif) c-a-d un compatible PC-AT avec son processeur 16 bits, le 80286 et, royalement, un disque de 40 Mo (le Seagate ST-225 puis remplacé par un 80 Mo, le ST-4096 (voir ci-dessous) pleine hauteur), une carte EGA (16 couleurs parmi 64) via mon meilleur ami qui s’en séparait.
Après, ça s’accélère un peu, j’ai réussi à changer ce PC pour une Rolls de l’époque, un Compaq 386DX-33 contenant un 8038620, je ne sais plus combien de mémoire (4 Mo je crois, pas totalement exploitable directement, il fallait passer par des “hacks” particulièrement sales comme EMM dans lequel une fenêtre de mémoire de 64 Ko se déplacait dans la mémoire au delà des 1 Mo — fut remplacé après par XMS, presqu’aussi horrible).
(ça fait peur hein ?)
J’ai failli oublier le passage à une vraie carte graphique enfin, une carte VGA Compaq et son écran de 11 ou 12 pouces (aïe le portefeuille là encore), avec MS-DOS 3.1, 3.2 et enfin 3.31 Compaq (parce qu’il gérait des partitions étendues de plus de 32 Mo).
Passage ensuite au suivant dans la famille Intel, le 80486 d’abord sous sa forme de base (486DX-33) puis en upgrade avec un 486DX4-100. On passe aussi de 4 à 16 puis 20 Mo de mémoire vive (mais ça va, pour des raisons évidentes dans le chapitre suivant, se mélanger avec les évolutions logicielles).
Pour ce qui est des évolutions des disques, il y a aura un 300 Mo ESDI, une interface plus rapide puis les premiers IDE (dont un 200 Mo Maxtor) et puis SCSI où l’on atteint enfin le gigaoctet (dont un Conner). Je suis resté longtemps en tout-SCSI, jusque relativement tard dans les années 90, la machine keltia
ayant, dans sa forme finale, eu jusqu’à 4 disques, le Conner de 1 Go, 1 disque de 2 Go et deux de 4 Go (soit 11 Go en tout).
Il y eu entre temps au moins une carte mère EISA avec la carte SCSI Adaptec correspondante (la 1740 de mémoire, la 1640 étant MCA et la 1540/1542 pour ISA)21. Il y a eu aussi en vrac :
- un Pentium 133 sur une carte mère ASUS T2P422 ;
- un Pentium II/350MHz avec cette fois-ci des disques IDE (machine rachetée pas cher à France-Teaser, alors fournisseur de connectivité USENET et UUCP) la mienne ayant mouru ;
- mon premier bi-processeur à base de Pentium Pro, nommée tara.
(mais je m’avance, ça concerne plus l’article suivant que celui-ci, pardon)
Cette période MS-DOS n’a pas été si moche que ça, je me suis bien amusé, tant à analyser les compilateurs C qu’à programmer des extensions pour un éditeur de texte fait là encore par Microsoft (le défunt Microsoft Editor appelé sobrement « M » auquel j’avais ajouté le support de la souris en mode texte — transformé après en environnement de programmation appelé PWB, pour Programmer Work Bench) et, grâce à mes premiers modems, fait tourner un serveur BBS pour les copains23 (et devenu aussi point Fidonet via Li’LL BBS cf. l’article WP sur les BBS).
C’est en 1988, poussé par une de mes profs à l’IUT (Edwige P. sois-en éternellement remerciée) que je suis tombé (et toujours pas relevé notons-le) dans le monde UNIX, lors de mon entrée en licence à Jussieu.
Suite au prochain épisode, celui-ci étant déjà fort (trop ?) long.
(les images sont issues de la bibliothèque Wiki Commons, stockées localement pour aller plus vite)
Références
- “The Codebreakers”, 2nd Edition by David Kahn, Schuster and Sons. 1996
- “Le langage Ada”, by Pierre Le Beux, Ed. Sybex. 1982
Notes24
J’ai failli l’intituler « De l’histoire de l’informatique », j’aime bien les deux, en fait même si ce deuxième fait plus vieux français :) ↩
Je vous le jure, c’était différent et même si j’ai beaucoup aimé les débuts, la période actuelle est quand même aussi intéressante. ↩
Cette fréquence peut paraitre rapide par rapport à d’autres processeurs, notamment le 6502 équipant l’Apple II mais il faut savoir que cette fréquence avait été choisie pour coïncider avec le balayage de la TV en 625 lignes et que le processeur s’occupait aussi de l’affichage. ↩
L’extension de mémoire de 16 Ko était assez chère… ↩
J’avoue, je ne jouais pas, ça ne m’intéressait pas du tout. ↩
Le terme de 16/32 bits vient de la structure interne et externe du CPU, les registres sont sur 32 bits mais le bus de données est sur 16 et le bus d’adresses sur 24 bits — le premier ralentit les échanges avec la mémoire et le deuxième limite la mémoire à 16 Mo. ↩
Le 68008 est 8/16/32 bits avec un bus de données sur 8 bits (donc encore plus lent mais compatible avec des puces 8 bits pour le reste de la machine) et un bus d’adresses sur 20 bits uniquement, soit 1 Mo adressable pour le QL. ↩
De manière préemptive c-a-d que le noyau interrompait tous les processus régulièrement pour changer de tâches, contrairement au systèmes type MacOS (pré-OSX) qui eux, demandaient la coopération des processus pour changer la main. ↩
De 1986 à 1988 à l’IUT d’Orsay, j’ai aussi beaucoup joué avec l’assembleur IBM/360, également 32 bits mais différemment :)) ↩
Je fréquentais beaucoup la boutique de l’importateur du QL, DIRECO, en ces temps reculés près du Métro Georges V, lequel, intéressé par mon petit logiciel, m’a permis d’aller à la grande messe sinclairienne (appelée ZX MicroFair) à Londres pour le vendre. Le voyage, en voiture puis bateau avec été épique, l’un des autres passagers présent avait un peu de canabis et fumait dans la voiture… jusqu’au moment de passer la douane française, il avait pris peur et jeté le mégot :)) — Good ol’ times :) ↩
Il y a prescription hein :) ↩
Comme souvent avec eux, MS avait acquit une licence Lattice C et le vendait sous son nom. ↩
Quand je pense que mon premier appareil photo numérique, le Pentax K10D, génèrait des fichiers RAW presque aussi gros, par photo. ↩
Il y avait à ce moment plusieurs méthodes d’encodage des données sur un disque dur : MFM, RLL, etc. ↩
À ce moment, dans les études courtes, on avait le choix entre DUT et BTS, la plupart du temps toujours en gestion, seules les écoles d’ingénieurs type ENSIMAG faisaient autre chose… ↩
Comme quoi, ils n’ont pas fait que des bétises, rendons à César, etc. ↩
Atteint par le syndrome regardons-comment-ce-compilateur-travaille à coup de désassemblage du code généré, je détestais le Turbo C de Borland, trop rapide pour être honnête et générant du code pourri. Mais vite. Mais pourri — « Cela dit, il est très rapide » ↩
Information fondamentale à connaitre, ayant déjà plus de mémoire sur mon QL de l’époque (ahem). ↩
Ne rigolez pas trop svp. Cela dit, avec mon bagage, ça n’a pas été trop compliqué à apprendre, premier devoir surveillé sur le sujet, aucune révision, mon binôme et moi avons eu 17. Facile. ↩
Le vrai DX, pas le sous-machin 386SX qui se mettait sur des cartes mères 286 pour gratter trois francs six sous. ↩
Z’avez vu la liste de sigles abscons, impressionnante n’est-ce-pas ? C’était notre quotidien :) ↩
Pourquoi diable est-ce que je me souviens de tout ces détails ? Ça m’étonne moi même en fait. ↩
Il y a prescription aussi pour ça. ↩
J’ai trop de notes, oui, je sais. ↩