Intro Editorial A Propos Sommaire Quizz Musiques Pub Archives
Obligement


Interview de Stéphane Guillard par Lionel Menou



Il n'y a que deux développeurs français dans l'équipe de développement de l'OS4. Voici un entretien avec l'un d'entre eux, Stéphane Guillard, qui nous en dit un peu plus sur lui et l'AmigaOS 4.

# Pourrais-tu te présenter à nos lecteurs ?

En préambule : je donne ci-dessous un ensemble de points de vue personnels, donc d'une manière générique, ajouter "de mon point de vue" en début de chaque paragraphe :)

Je m'appelle Stéphane Guillard, j'habite dans l'Ouest Lyonnais. J'ai 38 ans, je suis marié et j'ai deux enfants adorables (une fille et un garçon).

Dans la vraie vie, je travaille dans une société qui conçoit et fabrique des "machines d'essais" permettant à nos clients industriels de tester leurs produits, soit en phase de R&D (lorsqu'ils recherchent la meilleure conception du produit pour atteindre la performance visée au moindre coût), soit en phase de production (lorsqu'ils veulent vérifier que leur produit atteint bien la performance vendue, avant de le livrer). Pour donner un tour concret à cette définition, nos clients fabriquent par exemple des organes de commande avioniques, et veulent vérifier quelques centaines de paramètres avant de les livrer au constructeur d'avion... ce qui est rassurant !

J'ai créé cette société en 1999 avec une douzaine d'autres ingénieurs, comme une "spin-off" du groupe Steria (en d'autres termes, Steria est actionnaire pour une moitié, nous pour l'autre), une des grandes SSII européennes dans laquelle j'avais passé une dizaine d'années, suivant le cursus ordinaire dans ce type de sociétés. Maintenant, mon job de tous les jours consiste à rencontrer les clients Européens et Américains identifiés comme "ayant un projet" par nos commerciaux, et à bâtir pour eux une solution, en s'appuyant sur toutes les facettes de notre métier d'ingénierie (informatique, bien sûr, elle constitue le "cerveau" de nos machines, mais aussi électronique, mécanique, hydraulique, acoustique, bref tout ce qu'il est nécessaire de mettre autour du produit du client pour le tester dans des conditions réalistes).

En dehors de ce métier qui me passionne, j'ai une vie de famille "normale"(*), et des loisirs communs comme la musique, le cinéma, la lecture, le ski, la photo, les voyages, etc.

(*) : jusqu'à 22h30. Après, c'est code dans mon bureau jusqu'à 2 ou 3 heures du matin, quand je ne m'occupe pas de nos clients américains, fuseaux horaires obligent :)

# Comment as-tu débuté dans le monde informatique ?

Ma mère est matheuse, mon père est ingénieur en électronique. A la maison, on parlait moins des vaches ou des peintres modernes que de logique et de science... quoique !

Mon père a été un des artisans de la micro électronique française ; de ses laboratoires sont sortis les calculateurs de pilotage d'Ariane et de quelques satellites, par exemple... c'étaient les prémisses de ce qui s'appelle aujourd'hui Thales ou Sextant avionique.

Quand j'avais autour de 10 ans (vers 1975), il m'arrivait de l'accompagner au labo le week-end (pour lui, les 35 heures, c'était par jour), quand ce n'était pas le labo qui venait à la maison... J'étais littéralement fasciné par les machines programmables (Micro Nova, Kontron etc.) qui servaient au développement et au test de ces cartes électroniques spatiales ou avioniques. Les ingénieurs m'ont laissé y toucher, c'étaient alors des machines à consoles télétypes, avec cartes perforées etc. mais il y avait déjà quelque chose de magique dans le fait de voir se réaliser un process "complexe" défini par des trous sur des cartes... et aussi de bizarre dans le fait que la moindre erreur de trou ait des conséquences catastrophiques.

J'avais aussi fréquemment droit aux échantillons de composants militaires de l'époque, droit venus des USA, que les fondeurs faisaient parvenir au labo pour évaluation, avec docs, et parfois système d'évaluation complet.

Ensuite, voyant que l'électronique m'intéressait, mon père s'est mis à me ramener de ses fréquents voyages aux USA (et en particulier en Californie, où se trouvaient ses fournisseurs de composants, et ses clients avionneurs comme Lockheed) des objets qu'il était alors impossible de trouver en France... Ce furent, en gros dans l'ordre si ma mémoire ne me trahit pas (et si mon DMA interne ne bugge pas, hein) :
  • Une calculatrice qui savait faire les 4 opérations. A l'époque ils n'avaient pas encore trouvé le moyen de faire en sorte qu'elle se remette à "zéro" à la mise sous tension, elle affichait donc n'importe quoi, et il fallait soustraire jusqu'à zéro...

  • Une carte de développement pour 6502, la KIM-1 de Synertek. Ah... 256 octets de RAM, 4 afficheurs 7 segments, un clavier hexadécimal... Mon premier amour !-) (ce n'est pas MOSTECH, plus tard avalé par Commodore, qui a inventé le 6502 qu'on trouve dans les Apple 2 et C64 etc., mais Synertek, autre start-up californienne, elle même avalée par MOSTECH :). Cette carte est arrivée avec une spec. du 6502 écrite... à la main ! Autant dire que lorsque j'ai eu un Apple 2, je n'avais pas besoin d'assembleur pour saisir le code machine en hexadécimal. Je me rappelle encore aujourd'hui, presque 30 ans plus tard, les opcodes genre LDA ($A9), STA ($8D)...

  • Un Apple 2. La machine la plus aboutie que j'aie vue à ce jour. En 1978, 6 ans avant l'IBM PC, cette machine avait des slots et des cartes d'expansion (vidéo, floppy, parallèle, série, puis plus tard Z-80/CP-M, souris, disque dur etc.), une alimentation à découpage sans ventilateur, un interpréteur en ROM, un système d'exploitation, un boîtier très soigné, etc... et par dessus le tout, un ensemble de manuels décrivant jusqu'au dernier bit comment la machine marchait, comment la programmer, comment concevoir des cartes d'expansion, ce qui explique largement l'explosion mondiale des ventes jusqu'au milieu des années 80 : avant le raz de marée PC, on voyait des Apple 2 partout. Par contre, c'était un objet très cher, et une configuration avec un lecteur de disquette et un écran 80 colonnes monochrome Apple pouvait coûter le prix d'une petite voiture ! Pour donner une idée de ce à quoi ressemblaient les autres micro ordinateurs de l'époque (et mieux comprendre pourquoi l'Apple les a écrabouillés), regardez le film Wargames, David possède dans sa chambre le "meilleur" prétendant concurrent de l'Apple 2, un IMSAI 80... Je vous laisse juger.

    Cette machine trône encore sur mon bureau, elle boote sur un contrôleur de disque dur de ma conception, avec un OS également fait maison, et je m'en sers tous les soirs, entre autres comme terminal de debug pour mon AmigaOne de développement.

  • Une TI-57, puis une TI-58. On les overclockait en crayonnant au carbone les pistes du circuit constituant l'horloge, jusqu'à ce qu'elles calculent faux, ce qui n'était pas toujours facile à détecter...
Ensuite, par un hasard heureux, s'est ouverte en bas de chez moi une boutique de micro informatique (certainement la première de la région), qui vendait des micros de l'époque à des PME, avec des logiciels de gestion faits maison. Excel n'a pas toujours régné sur le marché, avant il y a eu Lotus 123, avant c'était Multiplan, avant c'était Visicalc (sur Apple 2) ou... rien ! Les gérants de ce magasin m'ont permis d'y passer une bonne partie de mon temps libre, en échange de quoi quelques amis et moi leur avons créé quelques programmes utilitaires en Basic, ainsi qu'un robot piloté par un Sharp MZ80, qui servait le café et y mettait du sucre, le tout trônant dans la vitrine !

Arrivant au lycée, je suis tombé sur un prof de maths qui était fou furieux : il s'était acheté un TRS-80, et découvrait en quoi la programmabilité de l'engin était le stylo idéal pour sa discipline. On passait quasiment tous les jours les heures de repas non pas à la cantine, mais sur sa machine à faire des utilitaires de tracé de fonctions etc. Le fait d'inverser le rapport prof/élève à 12h00 et de le remettre dans le bon sens deux heures plus tard donnait une impression bizarre.

Ensuite, j'ai eu d'autres machines 8 bit (Oric-1 etc.), le milieu des années 80 était une époque incroyable pour la micro : pas une semaine sans qu'un nouveau constructeur Anglais ne sorte une nouvelle machine (Sinclair, Dragon, DAI, Amstrad, etc). Elles se ressemblaient toutes dans les grandes lignes (64k, 16 couleurs, cassettes avec floppies en option inabordable, son AY3-8912 etc), mais chacune avait sa personnalité et ses aficionados.

En ce qui me concerne, le virus était déjà irréversiblement implanté.

J'ai conservé toutes ces machines, en parfait état de fonctionnement, avec leurs docs et logiciels d'époque (oui, je sais, j'ai la chance d'avoir de la place, et surtout une femme tolérante !). Il est amusant de constater que toutes mes disquettes d'Apple 2 de la fin des années 70 ou début des années 80 marchent encore impeccablement, comme par exemple mon original de Visicalc, une disquette 13 secteurs dont l'étiquette est écrite de la main de Mr Bricklin (l'auteur), alors que la plupart des disquettes HD de PC ou même les premiers CD-ROM que j'ai utilisés sont aujourd'hui parfaitement inutilisables... Toujours plus de bits, toujours moins de fiabilité.

Quelques autres machines intéressantes se sont ajoutées à ma collection depuis : un NeXTCube avec ses cartes DSP et son OS qui était déjà 70% du MacOS X d'aujourd'hui (le noyau Mach, l'Objective C, le file browser, le Display Postscript, etc.), une Silicon Graphics avec son Irix qui était les 30% restants (le bureau entièrement vectoriel scalable, le multimedia, etc.).

La dernière en date est un MacMini. Le retour de Steve Jobs aux manettes ramène Apple dans la voie des machines qui font rêver, époque oubliée depuis son départ vers NeXT.

# Quand et comment as-tu découvert l'Amiga ?

Un jour de 1984 ou de 1985 (je raconte de mémoire, il se trouvera bien quelqu'un pour contredire ma chronologie, peu importe), je passais devant la vitrine d'un magasin dans lequel trônait un A1000, surmonté d'un écran 1081 qui affichait un dégradé de couleurs scrollant, qui était difficile à croire pour quelqu'un qui n'avait jamais eu plus que les 8 couleurs de base et leurs half tones...

La machine était marquée "Amiga". Le programme, c'était une version alpha de l'utilitaire de copie de disquettes "Marauder". Je me rappelle comme si c'était hier, de l'incroyable animation des floppies etc.

Je suis rentré dans la boutique, et j'ai rencontré une bande de farfelus géniaux qui "avaient vu la lumière", la bande de Computer Shop Janal (Valence, Lyon, Chambéry, Saint Etienne, etc).

J'ai dû discuter avec Jacques Durand au moins 8 heures ce jour là. J'ai rencontré les autres par la suite (Ilan Sebbagh, Christian Bugnon, Georges Gaillard, Belkacem Benedris et les autres) et je tiens ici à leur rendre un immense hommage, car ils étaient animés par la passion et non par le mercantilisme, et ils ont permis à quelques générations de jeunes de découvrir l'informatique, et pour plus d'un, d'en faire un métier qui leur permet aujourd'hui de nourrir leur famille...

Je dois à ces amis autant qu'à mes parents dans la construction de la facette "informatique" de ma culture.

J'ai ainsi appris qu'Ilan était tombé en arrêt devant cet A1000 qui était montré en avant-première dans un salon d'informatique parisien, et l'avait littéralement arraché au distributeur (Janal était distributeur Commodore depuis la fin des années 70, ceux qui ont connu Procep en garderont un souvenir ému...) Bon, les Janal avaient déjà arraché pas mal de prototypes de machines à l'importateur, du CBM PET2001 au CBM 8000, mais ils étaient les meilleurs promoteurs de ces machines.

En rentrant chez moi, j'ai argumenté "suffisamment" avec mes parents pour que cette machine au long cours trouve sa place sur la table du salon ! Mmh... Plus de 15.000 francs pour une machine avec 256 Ko de RAM, un écran NTSC, un clavier QWERTY, un chipset proto NTSC qui ne faisait même pas du HAM, un système pré-1.0, etc., c'était gonflé de ma part. Surtout qu'on ne pouvait même pas s'en servir... sans la brancher sur un transfo 110/220 !

Mais bon. Un vrai micro 16/32 bit, ça mettait une claque. Lancer 5 "CLI" et les faire bosser en parallèle, c'était incroyable, absolument inconcevable pour toute autre machine à vocation personnelle de l'époque.

Comme l'Apple 2, la machine arrivait avec tous ses schémas, et plus tard on pouvait acheter un ensemble de docs de programmation très bien conçus (les fameux ROM Kernel Reference Manuals, alias RKRM, chers eux aussi...), qui étaient complémentés par la série des bouquins Micro Application consacrés à l'Amiga qui vinrent ensuite, dont quelques uns étaient fort bien faits.

Voilà comment j'ai découvert l'Amiga.

Autour de Janal, gravitait (et gravite encore) une population de gens mélangeant développeurs, utilisateurs à vocation hobbystique, et utilisateurs professionnels, et s'est tout naturellement mise en place une relation entre ces gens. J'appartenais à la première catégorie, et j'ai eu la chance que certains de la troisième aient accepté de me payer pour le développement de quelques outils, ce qui m'a permis alors que j'étais étudiant, de m'acheter des machines à jour (successivement un A2000, puis un A2500/20, puis /30 etc.), ainsi que les outils de développement ad hoc (la longue série des compilateurs Manx Aztec/C, tiens, la même que j'utilisais sur Apple 2 ! Ainsi que d'autres langages, qui correspondaient par ailleurs à ce qu'on me demandait de travailler dans mes études, le Lisp, le Pascal, le Prolog, etc).

A titre d'exemple, voici quelques applications originales que j'ai développées à l'époque autour de l'Amiga :
  • Un logiciel de visualisation stéréoscopique permettant à un médecin en train d'opérer par endoscopie, de positionner dans l'espace 3D des "objets étalon" pour évaluer la distance entre deux organes. Le principe était basé sur la création de deux vues décalées selon les axes oculaires, en synchronisation avec l'angle et le focus des deux caméras endoscopiques utilisées. En d'autres termes, j'utilisais la capacité de l'Amiga à changer le contenu de l'écran à chaque image, pour visualiser alternativement la vue "oeil droit" puis la vue "oeil gauche" des objets étalons en 3D. Cette vision 3D était ensuite montrée au chirurgien en superposition (genlock) avec les images respectives de deux caméras droite/gauche télécommandées à l'intérieur du corps du patient, à travers des lunettes stéréoscopiques LCD, alternativement opaques/translucides à gauche et à droite. A l'époque, hors électronique sur mesure, impossible de réaliser ça avec autre chose qu'un Amiga.

  • Un système d'acquisition de données médicales ambulatoire non intrusif. Nous avons conçu et réalisé un Amiga portable (très réduit), avec un 68000, 512K de mémoire statique, un écran LCD etc., qui faisait tourner notre version très réduite d'Exec, et qui acquerrait les signaux issus de 16 ports banalisés sur lesquels on pouvait brancher une mesure de saturation du sang en oxygène (par transparence rouge/infrarouge à la manière du capteur de la Méthode Cauet), des capteurs d'électrocardiogramme, des capteurs de débit et température nasale etc. Ce "portable" (1 Kg avec sa batterie) était connecté à un A2000 par port parallèle, entièrement paramétré en termes de configuration des capteurs, date et heure de début d'acquisition etc. puis déconnecté, installé dans un holster porté par le patient, raccordé aux capteurs. Le patient partait, puis revenait une fois l'acquisition terminée. La mémoire du portable était déchargée dans l'A2000, et tous les signaux acquis analysés par une montagne de lignes de code C, dédiées à la reconstitution d'un électrocardiogramme, etc. Ce système a été utilisé par les premiers laboratoires s'intéressant aux perturbations du sommeil (ils envoyaient les patients chez eux pour que le fait de dormir dans un lit d'hôpital ne soit pas une perturbation gênante), ou bien encore pour des analyses du comportement sportif etc. Lorsqu'il s'est agit de passer au stade industriel, j'ai découvert que l'aventure d'entreprise n'était pas qu'une affaire de technique... et tout s'est arrêté là.

  • J'ai aussi gagné un peu d'argent à cette époque, en vendant des images de synthèse raytracées par Sculpt3D, par exemple à des fabricants de cocottes minutes, ou de lampadaires. Ce logiciel a d'ailleurs été l'une de mes révélations les plus impressionnantes, au point que par hommage à son auteur, je l'ai entièrement réécrit par la suite.
Enfin, j'ai passé quelques journées libres d'obligations estudiantines derrière le comptoir de l'une ou l'autre des boutiques Janal... ainsi que d'innombrables nuits à récupérer pour la communauté Janalesque le contenu des disquettes Fred Fish avec mon modem 300 baud connecté au serveur X25 du campus de la Doua :).

# Comment a évolué ton équipement et quelle est ta configuration actuelle ?

En fait, après la fin de l'aventure du système d'acquisition médicale, sur lequel j'avais passé la plupart de mes nuits d'étudiant pendant 3 ans, j'ai remisé les Amiga à la cave pendant... longtemps. Le 4000 venait de sortir, pour autant que je m'en rappelle.

J'ai "fait du Linux" pendant un bon moment, sur PC (étant comme tout le monde soufflé par la progression exponentielle du rapport performance/prix tel qu'annoncé par Moore).

Je n'ai donc pas du tout assisté à la fin de Commodore, ni aux épisodes tumultueux qui s'en sont suivis, ni aux conflits de personnes nés à cette époque et perdurant encore aujourd'hui.

Je me suis réintéressé à l'Amiga un jour de 2001 (ou 2000 ? ou 2002 ?) lorsque Christian Bugnon m'a plus ou moins emmené de force à un salon à Cologne.

Je suis tombé sur le stand Haage & Partner, sur Sam Jordan et un des frères Frieden, en train de discuter entre eux d'optimisations pour WipeOut 2097... J'ai regardé le jeu tourner sur un 4000, j'avais de la peine à croire que c'était possible. J'ai alors découvert a posteriori ce dont tous ceux qui n'avaient pas quitté la barque comme moi disposaient : des cartes PPC, des cartes vidéo 3D, des cartes Ethernet, et sur le plan logiciel, tout ce qu'il fallait pour tirer parti de tout ça. Il y avait aussi un autre membre de Haage & Partner présent (Markus Nerding ?), qui m'a fait une démonstration de StormC 3. J'ai trouvé très sympa de pouvoir enfin disposer d'une IDE acceptable (à mon goût), une fois GoldED intégré.

J'ai exhumé mon 2000 le mieux équipé, j'ai acheté aux USA une carte GVP-m 2060 avec 128 Mo de RAM et un disque SCSI, j'y ai collé une Picasso 4 et une Ariadne 2 (gentiment données par Janal), et j'ai replongé (Linux m'intéressant de moins en moins avec l'explosion des distributions délibérément incompatibles poussées par le mercantilisme).

C'est à cette époque que j'ai développé un pilote Linux/m68k pour le chip SCSI de la carte GVP, puis AmiVNC, puis quelques autres gadgets.

J'ai ensuite eu l'occasion de racheter un 4000 à un jeune ingénieur qui vendait tout pour créer sa startup internet (il aurait mieux fait de garder sa machine :), puis la carte CyberStormPPC de Raphael Barthel, qui la vendait pour financer sa future "carte G4 de Phase 5".

Je venais de terminer la première version Windows/Direct 3D utilisable de mon clone du modeleur Sculpt3D, et un ami (David Larochette) m'a lancé un challenge amusant : "tu ne feras jamais de version Amiga de ce truc". Bon. Plutôt que de réécrire tout pour l'API Amiga, j'ai wrappé tous les appels de fonction Windows vers des appels Amiga, de la gestion des fenêtres à la 3D, et voilà, quelques semaines plus tard, ça tournait.

Ce qui m'a plu aussi bien pour AmiVNC que pour Skulpt/W3D, ce fut d'"aller au fond des choses" sur les domaines correspondants : la programmation réseau puis la programmation 3D. Nos machines permettent encore ça, alors que sous Windows, c'est devenu autrement plus compliqué...

C'était aussi ma motivation lorsque j'avais créé mon contrôleur de disque dur pour Apple 2 (et le logiciel associé) : comprendre de manière exhaustive comment l'IDE fonctionne.

Ensuite, j'ai acheté Amithlon et je l'ai installé sur un PC à la maison, "pour voir" (et pour supporter H&P, auquel j'ai aussi acheté StormC 4). J'ai été séduit par la rapidité d'Amithlon, le code 68k constituant notre OS 3.x et nos applications tournant plusieurs ordres de grandeur plus vite sur le JIT d'Amithlon que sur nos 68060. Ce qui m'a fait ressentir l'absurdité de ne pas avoir cet OS en version native PPC.

Par contre, j'ai trouvé bizarre qu'on ne puisse pas utiliser le matériel 3D sous Amithlon, alors que tout le reste était utilisable (réseau, disque dur etc).

J'ai pris contact avec les frères Frieden pour voir s'ils accepteraient de me donner les fichiers includes et docs nécessaires à la création d'un rendu logiciel 68k, ce qu'ils ont accepté, sous réserve que je m'en réfère à eux pour décider de le distribuer ou non une fois terminé.

J'ai fait ce code. Mais l'incroyable champ de bataille conflictuel qu'est devenu Amithlon entre temps a rendu impossible l'acquittement d'une licence Warp3D par l'équipe Amithlon (Meyer, Frank, H&P), puisqu'elle a littéralement explosé. J'ai compris à cette époque qu'Amithlon n'avait aucun avenir, ni en tant que produit, ni pour l'OS qu'il fait tourner (OS 3.x) qui n'évoluerait plus.

En conséquence, les Frieden m'ont demandé de ne distribuer ni les sources du swrender (qui auraient permis de recréer une version 68k) ni le binaire 68k. J'ai donc seulement mis en ligne le binaire PPC WarpOS.

# Qu'est-ce que tu as fait avec ton Amiga depuis que tu en possède un, autant en terme de programmation/création que d'occupations "annexes", hors OS 4.0 ?

Voir ci-dessus.

En termes de jeu : je ne suis absolument pas joueur. D'ailleurs, j'ai aussi une PlayStation 2, mais je ne m'en sers que pour développer du code dessus :).

# Tu fais partie de l'équipe de l'OS 4.0. Comment es-tu entré dans l'équipe, et de quoi t'es-tu occupé jusqu'à présent ?

Je n'ai pas du tout participé à (ni été intéressé par) la genèse initiale d'OS4. Je crois me souvenir (sans en être sûr du tout) qu'un jour mon ami Benjamin Yoris m'a signalé que les Frieden cherchaient à constituer une équipe pour ce projet.

Partant du principe qu'OS 3.x était mort car H&P ne développerait rien au delà du 3.9, et qu'Amithlon n'avait pas de futur, cette option de portage au PowerPC, avec la perspective de refaire en mieux certains aspects peu satisfaisants, m'a séduit.

J'ai pris contact avec les Frieden, effectivement ils en étaient au stade de la réflexion conceptuelle, et étaient intéressés par ma participation. Voilà, je faisais partie de l'équipe, avec l'intention initiale de travailler sur le successeur de Warp3D, "Nova".

Pour info, l'équipe s'est constituée intégralement à cette époque là, et n'a pas bougée depuis. Nous sommes 43 développeurs répartis dans le monde entier, il n'y a jamais eu aucun conflit important entre nous à quelque sujet que ce soit. Ceci est largement dû au fait que nous ne nous marchons pas sur les pieds, la nature ayant fait que la sensibilité ou les centres d'intérêt de chacun constituent un panel complet pour faire OS4.

Nous communiquons quotidiennement par une mailing list de développeurs, puis une autre pour les beta testeurs (qui sont environ 150). Nous avons un serveur CVS contenant l'état courant et toutes les versions antérieures de tous les modules du système. Nous avons aussi deux serveurs FTP (un pour les développeurs, un pour les betatesteurs), un outil de suivi des reports de bogues (BugZilla, qui vous pourrit de mails jusqu'à ce que vous ayez corrigé votre bogue) et un Wiki permettant à chacun d'écrire tout ce qui ne rentre pas dans le cadre des autres canaux de communication.

Au sujet des outils de développement, autrefois, pour compiler entièrement l'OS 3.x, la rumeur, pas éloignée de la vérité, disait qu'il fallait pas moins de 9 compilateurs ou assembleurs tournant sur 5 plates-formes différentes. Aujourd'hui, OS4 peut être compilé intégralement sous OS4 en utilisant un seul compilateur : GCC. On peut également fabriquer OS4 depuis d'autres plates-formes en utilisant ce que nous appelons des cross compilateurs, disponibles sous Windows, sous Mac OS, sous Solaris, etc. Personnellement, je développe sous Windows, en utilisant Microsoft Visual Studio (mon environnement de développement préféré), dans lequel j'ai intégré complètement les includes et les compilateurs OS4, mais aussi PS/2 et Apple 2, ce qui me permet avec un seul outil de maintenir tous mes projets pour ces machines, en complément de mes projets Windows.

En termes de contribution personnelle à OS4, je me suis intéressé successivement à plusieurs choses :
  • Initialement, à poser les concepts autour de l'utilisation de la MMU du PowerPC. Comment utiliser les Segment Registers, les BAT, etc.

  • Puis pendant quelques temps, à pas grand chose en fait (étant largement mobilisé par mes projets hobbystiques sur PS/2, qui se conclurent par une seconde place à l'Evoke 2003 en Allemagne, derrière Haujobb). Pendant ce temps, les Frieden codaient la tripotée de fonctions qui constituent Exec/SG (puisque l'ancien Exec était 100% assembleur 68K, il fallait de toute façon tout réécrire).

  • Ensuite lorsque ce "kernel" s'est mis à booter sur Amiga Classic/PPC, j'ai aidé à débugger ici et là.

  • Ensuite lorsque les premiers AmigaOne sont arrivés, j'ai commis l'erreur de lever le doigt quand quelqu'un a dit "y'en a un qui connait l'IDE/ATA dans la salle ?"... J'ai passé un temps très important à développer les pilotes IDE pour OS4, entre autres à cause du problème d'interaction entre le VIA et le chip Ethernet lors des transactions Ultra DMA, et du fait que ma machine de développement était à l'époque équipée d'une barette de RAM qui flippait un bit de façon aléatoire tous les "n" giga octets, ce que j'ai mis des mois à identifier pour ce que c'était vraiment (un problème de RAM).

    Initialement, j'ai fait un pilote ATA (disques durs, Compact Flash) / ATAPI (CD, DVD) pour le chip VIA686b qui est sur les cartes mères d'A1SE, A1XE et µA1. Puis lorsque le problème d'interaction a été compris, j'ai fait un pilote pour le chip IDE Silicon Image 0680, ce qui offrait aux utilisateurs d'A1XE une solution pour pouvoir utiliser le DMA IDE en même temps que le chip Ethernet. Puis lorsqu'une solution a été trouvée pour le problème d'interaction, j'ai fait évoluer mes pilotes vers le Serial ATA. Aujourd'hui, tous les chips SATA Silicon Image PCI sont supportés par mes pilotes, le 3112, le 3512 et le 3114.

  • J'ai aussi réalisé quelques autres outils (comme "idetool" permettant de régler tous les paramètres de ces pilotes) et librairies (comme un wrapper OpenPCI permettant d'utiliser le pilote du chip Ethernet RTL8139 de Benjamin Vernoux sous OS4, ou encore les logiciels OpenPCI de Guido Mersmann, initialement écrits pour Amithlon, comme AmithlonTV etc).

  • J'ai porté mes propres applications (AmiVNC, swrender Warp3D et Skulpt) sous OS4.
Je fais aussi partie de la "sous-équipe" Warp3D/Nova, et je suis satisfait du cours pris par les choses sur cet axe.

J'ai aussi quelques autres projets OS4 sur le feu, mais je n'en dirai pas plus...

# Pourrais-tu nous raconter ce que tu sais de la genèse de l'OS 4.0 ? Pourquoi Hyperion s'est-il engagé dans cette voie, alors qu'il y avait déjà du travail réalisé sur MorphOS ?

Aucun commentaire là dessus :
  • Comme dit ci-dessus, je n'ai été ni actif ni spectateur de la genèse initiale d'OS4, avant d'intégrer l'équipe.
  • Je n'ai aucun point de vue sur l'alternative MorphOS, ne l'ayant jamais utilisé, et ne m'étant jamais intéressé de près à son origine, à sa conception ou à ses fonctionnalités.
Il ne m'est quasiment jamais arrivé de porter un jugement sur MorphOS, ni en public ni en privé, à l'exception de quelques propos excédés quand le flot d'inanités qui assaille tout développeur ou utilisateur OS4, déborde.

En tout état de cause, je ne connais rien à MorphOS, je ne peux donc pas avoir de point de vue légitime (bien qu'il y en ait qui ne s'arrêtent pas à ça). Quant à son historique, je considère qu'il s'est déroulé en dehors du monde Amiga, il ne m'intéresse donc pas, au même titre que BeOS (jamais vu), AROS (jamais vu) etc. J'ai déjà assez d'OS4 pour m'occuper.

# Quelles ont été les relations avec Amiga Inc et les autres équipes qui travaillent sur des projets parallèles (MorphOS, AROS...) ?

Amiga Inc n'est jamais intervenu pas dans le développement d'OS4. Amiga Inc a concédé à Hyperion une licence de développement d'OS4 pour les machines Classic/PPC et AmigaOne. Dans ce périmètre, on "fait ce qu'on veut", en s'efforçant de le faire le mieux possible.

Amiga Inc est focalisé sur sa propre technologie AmigaAnywhere. Je ne sais pas si OS4 jouera un rôle quelconque dans cette stratégie dans le futur.

Je ne suis pas dans les détails de la relation Amiga Inc/Hyperion, mais je ne ressens aucune inquiétude pour la suite des événements. Je suppose qu'on pourra continuer à développer OS4, et qu'il faudra négocier avec Amiga Inc si on souhaite le porter sur d'autres plates-formes que celles pour lesquelles Hyperion a une licence.

Je n'en sais (ni n'en pense) pas plus.

Quant aux autres systèmes "parallèles" pour reprendre tes mots, je les considère effectivement comme "parallèles", c'est-à-dire, comme dirait ma mère, qu'ils ne croiseront jamais notre trajectoire. Je ne leur porte aucun intérêt, simplement parce que, comme je l'ai dit plus haut, OS4 m'occupe suffisamment (sinon, pourquoi ne pas s'intéresser aussi à Syllabe, ReactOS, etc ?).

# Quel est ton avis sur la division de la communauté en deux blocs ?

Je ne comprends pas pourquoi ces deux blocs interfèrent, puisque leur trajectoire est "parallèle". Ce qui me surprend le plus, c'est l'agressivité omniprésente envers OS4, de ceux qui n'ont pas choisi cette voie. Pourquoi s'y intéressent-ils ? Personnellement je ne porte aucun intérêt à MorphOS, et nous ne l'avons jamais évoqué au sein de l'équipe OS4 (à part en privé lorsque j'ai fait MOSemu avec un autre des développeurs, la motivation d'alors étant réduite à "prouver le concept").

En fait, je pense qu'il y a dans l'"autre bloc" les composantes habituelles d'une communauté Internet, en particulier quelques fanatiques qui font l'essentiel du bruit, avec pour certains un comportement d'irréductible agitation agressive, qu'ils exhiberaient de toute façon dans n'importe quel contexte. Les propos du genre "l'existence d'OS4 est un crime", ou bien encore "l'AmigaOne ne marche pas" qui inondent n'importe quelle discussion à n'importe quel sujet ayant trait à OS4, ou autres insultes qui nous sont adressées sont plus ou moins facile à supporter en fonction de l'humeur, mais finalement elles en disent plus long sur le côté névrotique (inquiétant ?) de leurs auteurs que sur toute autre chose.

# Comment est organisée l'équipe de l'OS 4.0 actuellement ?

Un chef de projet : Ben Hermans. Un responsable technique : Hans-Jörg Frieden (lui-même développeur). Et les 42 autres développeurs.

# Combien y'a-t-il de membres salariés et bénévoles ?

Seuls les deux Frieden sont "salariés". D'autres ont un contrat au terme duquel ils touchent quelques droits, mais une large partie est bénévole, comme moi.

Ça a un avantage et un inconvénient principaux :
  • Avantage : on est motivés uniquement par le "bien faire".
  • Inconvénient : il est difficile de manager un projet de ce type, particulièrement sous l'angle des "deadlines" :).
Le mot des Frieden résume bien cet état d'esprit : "When it's done".

# Quelles sont les tâches en cours ?

A ce jour, principalement de la finalisation. En fait, il ne reste qu'un unique module qui n'a pas été refait en C et proprement porté PPC : console.device, et c'est en cours de finalisation.

Il reste beaucoup de choses à faire pour que nous considérions que tout soit terminé, mais ça nous laissera du travail et des motivations pour OS4.x :).

# Quelles sont les points forts de l'OS 4.0 par rapport à l'AmigaOS Classic et par rapport aux grands systèmes du marché ?

Les points forts sont à mon avis :

La réactivité. J'ai depuis peu un MacMini, le modèle le plus performant disponible, et il y a beaucoup de situations où on attend... Même un peu, mais surtout sans feedback (genre, le pointeur d'attente ne se met à tourner qu'au bout de quelques dixièmes de secondes).

La simplicité d'administration. On a des fichiers texte ou XML pour régire 99% du fonctionnement du système, avec un peu de connaissance, on peut analyser un dysfonctionnement, et le rectifier, alors qu'une fois Windows XP et sa base de registres, ou Linux et ses outils Gnome/KDE tout-va-bien-tant-que-tout-va-bien partent en vrille, même avec beaucoup de connaissances on a toutes les chances de terminer en réinstallation...

En revanche, on a aussi de gros points faibles, que ce soit le retard en termes de concepts fondamentaux (protection mémoire, streaming, firewire, etc), ou d'applications (browser web, suite bureautique, Java etc).

Tout le monde le sait, mais ça n'enlève pas à OS4 son intérêt en termes de plate-forme alternative hobbystique (ni même en termes d'autres applications plus professionnelles qui pourraient exister, sur lesquelles je n'ai aucun point de vue).

# Qu'est-ce qui pourrait motiver un ancien amigaïste, ou un utilisateur de PC/Mac, à franchir le pas ?

A ce jour, probablement l'intérêt hobbystique d'une approche différente, au même titre que les autres OS alternatifs.

# Quelles sont les gros projets à venir sur OS 4.x (logicielles et évolution du système) ?

Je ne sais pas... Nous avons une montagne de souhaits techniques et fonctionnels, ils viendront "when its done", je ne peux réellement pas en dire plus.

Mais on peut quand même noter :
  • Que quelques briques ont dores et déjà été posées pour faciliter le portage d'applications genre OpenOffice.
  • Que nous avons quasiment tous les outils nécessaires pour builder les applications Posix (dont une réimplémentation propre de ixemul/ixnet, un Perl natif, un Python natif, etc.).
  • Que des spécifications formelles existent dores et déjà pour certaines briques à venir, comme Warp3D/Nova, qui abandonne les concepts archaïques du Warp3D actuel pour embrasser les fonctions des GPU programmables (les fameux "shaders" nécessaires au portage de tous les jeux récents, voire à l'écriture d'applications 3D originales tirant parti des chips post-voodoo3), ou encore un système de gestion de la mémoire qui remplacera le système actuel.
  • Last but not least, que je ne vois absolument aucune raison pour que l'équipe ne continue pas son travail au delà de la release 4.0.
# Et maintenant, les défauts de l'OS 4.0 et de l'AmigaOne. En premier lieu, pourrais-tu faire un point sur les problèmes techniques des cartes ?

Oui. Voici l'état des lieux :

1. Les (rares) A1 G3SE (ceux qui ont un PPC 750cxe à 600 MHz soudé sur la carte mère) ont des problèmes de différentes natures, ils sont réellement à considérer comme des prototypes partiellement fonctionnels ayant précédé les XE.

2. Les A1 XE ont les problèmes suivants :

2.1 La liaison AC97link entre le VIA686b et le chip audio Sigmatel ne fonctionne pas. Conséquence fonctionnelle : pas d'audio sans carte PCI. Solution : problème ne pouvant être corrigé.

2.2 Le chip Ethernet 3Com et le VIA686b intéragissent lors des transactions IDE UDMA. Conséquence fonctionnelle : gel de la machine probable lors d'un transfert IDE DMA simultané avec un transfert Ethernet. Solutions : problème pouvant être corrigé, deux pistes à couper, deux fils à souder ; sinon, on peut utiliser une des cartes PCI IDE supportées (ATA ou SATA), ou bien encore n'utiliser le VIA qu'en mode PIO (beaucoup plus lent).

2.3 Des résistances de 15 KOhm ont été oubliées dans le câblage des ports USB. Conséquence fonctionnelle : l'USB fonctionne, mais ne détecte pas les insertions de périphériques à chaud. Solution : ajout des 8 résistances manquantes.

2.4 Le chip Articia n'assure pas la signalisation au PowerPC lorsqu'un transfert DMA sur le bus nécessite d'invalider le cache du PowerPC ("cache snooping", "hardware cache coherency"). Conséquence fonctionnelle : aucune dans OS4, puisque sous AmigaOS, il est de la responsabilité des pilotes d'assurer cette cohérence de cache. Ce point n'a aucune incidence sur les performances, au passage, car les instructions de vidage du cache utilisées par les pilotes avant de déclencher un transfert DMA ont le même résultat que le vidage provoqué par le snooping au milieu d'un transfert, seul le déclencheur est différent (logiciel dans un cas, matériel dans l'autre) ; ceux qui sont réellement intéressés pour en savoir plus peuvent me contacter. En revanche, pour Linux, il convient d'utiliser des pilotes et/ou un kernel adaptés.

3. Les (très très rares) µA1 MK2 ont les mêmes problèmes que les XE avec en plus le slot PCI non complètement fonctionel. Mêmes conséquences, mêmes solutions. Je doute de toute façon qu'il y en ait en France, pour autant que je m'en souvienne, seulement 7 ont été fabriqués, ils doivent être considérés comme des prototypes partiellement fonctionnels ayant précédé les µA1 "MK3" ou "C" qui sont ceux que tout le monde connait.

4. Les µA1 MK3 ou "C" (ce sont ceux qui sont en vente actuellement) n'ont que le problème de cohérence de cache, qui n'a aucune conséquence sous OS4.

# Concrétement, au niveau de l'utilisateur final, comment cela se manifeste, en particuliers avec les nouvelles cartes µAOne ?

Sous OS4 : aucune manifestation.

Sous Linux : nécessité d'utiliser un kernel et/ou des pilotes qui assurent la cohérence de cache de façon matérielle avant de déclencher un transfert DMA. Mais je pense que celui qui veut utiliser Linux trouve de toute façon bien meilleur compte dans une machine x86, moins chère, mieux supportée que n'importe quelle machine PowerPC.

# Un sujet très polémique est apparu ces dernières semaines, dans les forums, au sujet de la protection mémoire et du ressource tracking de l'OS 4.0. Grossièrement, de quoi s'agit-il ? Comment les choses évolueront dans le futur ?

Il se crée des polémiques tous les jours au sujet des AmigaOne et d'OS4... en dehors de la communauté AmigaOne / OS4.

En ce qui concerne la protection mémoire et le resource tracking, j'ai donné mon point de vue dans une réponse à Jérôme Senay dans un des innombrables threads AmigaImpact à vocation polémique alimentés par la bande de fanatiques habituels. Je me cite donc ci-dessous :

1. Dans OS4, comme annoncé et sans plus de résultat que l'ambition initiale, il y a un degré de protection mémoire. Entre autres, il est interdit d'écrire dans un segment de code. Nous sommes dans une étape intermédiaire, pour laquelle un layout MMU global a été introduit dans le système (AmigaOS, hein, pas un truc vaporeux situé au dessous, ou au dessus, ou sur le côté, personne ne sait trop bien, dont personne ne se servira jamais), visant à satisfaire nos objectifs sur ce plan, qui sont principalement d'ajouter un swapper, capable de décharger sur disque une page mémoire non récemment utilisée, pour l'utiliser ailleurs et vis versa. Ce swapper est fonctionnel. Il ne sera peut-être pas diffusé comme tel (encore que, on verra) car nous sommes par ailleurs en train de refaire complètement le système de gestion de la mémoire d'OS4, pour aller vers l'étape suivante, qui sera un layout MMU par tâche, et à ce moment là on en reparlera.

2. Dans os4, comme annoncé, il y a une dose de resource tracking. Nous avons ajouté un certain nombre de nouvelles fonctions aux différents sous-systèmes, visant à encapsuler les anciennes fonctions d'allocation internes à ces sous-systèmes, en ajoutant au passage l'inscription de la ressource allouée dans une liste propre à la tâche qui alloue, de façon à pouvoir libérer les ressources non libérées par la tâche elle-même à sa suppression.

C'est facile à vérifier, la documentation d'exec.library (par exemple), décrit une fonction "AllocSysObject" qui permet d'allouer (et de pré-initialiser, au passage) de façon trackée. Un rapide examen de includes/exec/exectags.h permettra de voir la liste des items qui sont supportés par cette méthode à ce jour :

* IORequest *
* Hook *
* Interrupt *
* List *
* DMAEntry array *
* List node *
* Message port *
* Message *
* Signal semaphore *
* TagItem array *
* Memory Pool *
* Item Pool *

Naturellement, tout ce qui est écrit par les développeurs OS4 s'efforce d'utiliser ces fonctions, et en tire bénéfice.

Mais ça ne va pas rendre les anciennes applications 68k plus intelligentes.

# A présent, et de façon purement spéculative, ta prévision de sortie de l'OS 4.0 ?

La date est arrêtée depuis belle lurette, mais je ne suis pas habilité à vous la communiquer. Je pense qu'elle prendra tout son sens en temps utiles ;).

# Spéculation encore : tu penses que l'OS 4.x trouveras combien d'utilisateurs, à terme ?

Aucune idée, disons quelques milliers.

# Quelle est la viabilité commerciale de l'OS 4.0 et de la pérennité de l'AmigaOne ?

Concernant OS4, je n'aurais aucune légitimité à gloser sur le sujet de sa viabilité commerciale, n'ayant jamais vu le business plan d'Hyperion ni celui d'Amiga Inc. On peut simplement noter factuellement que le point mort permettant d'équilibrer les comptes n'est pas celui de Microsoft (rapport au nombre de développeurs payés), et que l'ambition de l'équipe n'est pas non plus celle de Microsoft.

# La survie de l'OS 4.0 est totalement liée à Hyperion... tant que Hyperion existe ;) sais-tu quelle est l'activité de l'entreprise actuellement ?

Non, aucune idée. Je suppose qu'il faudrait poser cette question à Evert Carton ou à Ben Hermans.

# Que se passerait-il si Hyperion disparaissait ?

Eh bien, OS4 rentrerait certainement dans le giron d'Amiga Inc. AmigaOS est un actif d'Amiga Inc, c'est un fait qui semble mal compris, mais qui explique parfaitement le fonctionnement actuel : Amiga Inc concède des droits sur cet actif, dans le cadre de contrats.

# Spéculation toujours : que doit-on attendre d'Eyetech en terme de nouveau materiel ?

Absolument aucune idée, je suppose qu'il faudrait poser cette question à Alan Redhouse.

# Garry Hare, le PDG d'AInc, à évoqué un matériel, qui n'est pas un AmigaOne, mais qui faisait tourner l'OS 4.0... Ton avis sur le matériel en question ?

Absolument aucune idée, je suppose qu'il faudrait poser la question à Garry Hare.

J'imagine qu'il s'agit probablement d'un "tablet PC" à base de PowerPC, ou d'un set top box... aucune idée, réellement.

# Que penses-tu d'Amia Inc ?

Je l'ai dit plus haut, ces gens ont une stratégie centrée sur le développement de leur technologie Amiga Anywhere, qui en l'état actuel des choses, n'a aucun rapport avec OS4. Amiga Inc n'a jamais interféré dans le développement d'OS4.

Leur lien avec OS4 est le suivant : ils sont propriétaires des droits concernant AmigaOS, donc personne ne peut faire un AmigaOS sans leur aval. Hyperion a obtenu cet aval pour faire OS4, pour les machines Classic/PPC et les AmigaOne. Je ne connais pas le contenu du contrat, au delà ça.

Je ne sais pas du tout ce qu'il adviendra ensuite.

# As-tu testé MorphOS sur Pegasos ?

Non. J'ai seulement vu une fois MorphOS sur Pegasos pendant 5 minutes, lorsque mon ami Benjamin Yoris a apporté son Pegasos au bureau. Je retiens de cette "entrevue" que l'équivalent du Workbench était skinné, mais pas très fonctionnel. On peut aussi décorer OS4, mais je ne suis pas du tout fana du look Gnome ou MacOS. Personnellement j'aime bien la personnalité du look par défaut d'OS4, mais c'est typiquement un terrain de sensibilité personnelle.

Encore une fois, je considère MorphOS comme un autre OS, qui n'a rien à voir avec l'OS qui m'intéresse, au même titre que BeOS etc ; je n'ai simplement pas assez de temps libre pour m'intéresser à un autre OS.

# Vers quoi penses-tu que MorphOS va evoluer ?

Aucune idée.

# Qu'est-ce qui te fait rester dans la communautée Amiga en 2005 ?

La passion d'un hobby intéressant et la participation à un projet mené par une équipe qui travaille depuis 2 ou 3 ans sans jamais avoir traversé de conflit, une équipe de gentlemen.

Nota bene : OS4 n'est qu'un hobby parmi d'autres, j'ai le même genre de relations avec l'équipe qui développe PS2sdk, ou la communauté encore active de développeurs Apple 2, sans compter tout ce qui m'intéresse mais qui n'a rien à voir avec l'informatique.

# Y'a-t-il une question que j'ai oubliée de te poser et auquelle tu voudrais répondre ?

Euh... J'ai déjà beaucoup parlé :).

# Un dernier message pour nos lecteurs ?

Je suis disposé à converser avec tous ceux qui portent un intérêt sincère à OS4, que ce soit en tant qu'utilisateur, ou au titre de la curiosité. Qu'ils en profitent, il n'y a que deux Français dans les 43 développeurs cités !

Plus d'informations sur certains des projets personnels que j'ai cités dans ce texte se trouvent sur un site web que je ne mets malheureusement à jour que de temps en temps, et qui est très incomplet : s.guillard.free.fr.