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.
|
|