|
||||||||||||||||||||||||||||||||||||||||||||
|
A partir de l'entrevue publiée dans Amiga Magazine, nous avons voulu faire le point sur les projets de Phase 5, en intégrant et en l'enrichissant par des considérations personnelles et des données, des entrevues et autres informations officielles (et officieuses) émanant de Phase 5 lui-même ou de programmeurs de sociétés en étroit contact avec ladite société allemande sur le projet PowerUP, parmi lesquels Haage & Partner et ProDAD. Les grandes lignes de développement de la société allemande sont quatre :
PowerUP pour tous Une fois terminées, les versions pour développeurs basées sur le PowerPC 603e et le MC68060 (Bruce Lepper : ça y est), au printemps seront disponibles les versions finales des cartes accélératrices PowerUP pour A3000 et A4000. Les nouvelles cartes seront équipées de PowerPC variés : de l'économique 603e au plus puissant 604e. Combinés à un 68040 ou un 68060, ils auront un bus de données du processeur vers la mémoire de haute prestation et en 64 bits. La carte PowerUP pour A1200 demandera cependant un boîtier tour à cause du besoin de dissipation de chaleur. Pour les mises à niveau vers le PowerPC, les possibilités sont nombreuses et moins chères pour les possesseurs de CyberStorm Mk2, grâce à une carte sans processeur 680x0 qui lui, sera fournie par l'usager qui le prendra de son ancienne carte. Par exemple, l'option la plus économique pour les possesseurs d'A4000/060 à 25 MHz est l'installation de leur ancien processeur 68040 (prélevé de leur A3640) sur une carte PowerUP avec PowerPC 604e ou 603e. Après la migration printanière de programmes et d'utilisateurs vers PowerUP, Phase 5 a dans ses plans des mises à jour successives de PowerUP vers l'A\Box. Les idées en cours d'évaluation de l'équipe commerciale comprennent des remises intéressantes allouées pour chaque paquetage et/ou des remises en échange d'anciennes cartes accélératrices. Programmer sur PowerUP : les nouvelles bibliothèques exec et PowerPC Dans PowerUP, le PowerPC n'a pas le rôle d'un coprocesseur local pour accélérer les calculs mais peut accéder à l'espace entier d'adressage Amiga, mémoire Chip et cartes Zorro comprises. La division logicielle de Phase 5 a développé il y a quelque temps un clone de la bibliothèque exec Amiga écrit en C pur et donc beaucoup plus propre et portable que l'original (qui est en assembleur 680x0). Le "nouvel" exec doit endurer plusieurs mois de tests intensifs pour s'assurer de l'absence absolue de bogues et incompatibilités par rapport à la bibliothèque originale. La "nouvelle" bibliothèque exec pourrait prendre la place de l'ancienne, mais pourra surtout être adjointe au PowerPC, qui pourra ainsi compter immédiatement sur un vrai micronoyau multitâche, stable, robuste, et connu de la communauté des programmeurs Amiga. Du côté du 680x0, Phase 5 fournit une ppc.library en cours de développement mais déjà dotée des fonctions de base pour gérer le PowerPC comme AddPPCTask() pour lancer les tâches PowerPC chargées en mémoire par PPCLoadSeg(). Pour le PowerPC, il existe déjà un mini exec compatible AmigaOS 3.1 qui implémente le multitâche, la gestion de la mémoire et les primitives pour la communication entre les tâches PowerPC et le compagnon 680x0 : sont implémentés le PsgPort, les messages (exec) et aussi les signaux. Outre le mini exec PowerPC dans la trousse de développement logiciel de la carte PowerUP, Phase 5 inclut un assembleur PowerPC librement distribuable et le GNU C configuré pour générer du code au format ELF (ELF est aussi le format standard adopté par Linux). Mis à part la rudimentaire mais efficace trousse de développement logiciel de Phase 5, on trouve aussi StormC, l'ensemble de développement intégré de Haage & Partner (avec interface et guide en anglais), et peut-être aussi Maxon C++ (interface et manuels seulement en allemand). Compiler et optimiser pour PowerPC Si on veut jouer les perfectionnistes, on peut compiler plusieurs versions optimisées pour chaque type de PowerPC de façon à bénéficier au mieux des particularités architecturales de chaque modèle comme la taille de cache, le numéro d'unité d'exécution, etc. Pour les plus experts, la génération de code spécifique pour un processeur se réduit à spécifier dans le makefile plus d'une cible, avec options spéciales de compilation sur la ligne de commande. Prenons un exemple à la portée de tous. Avec GCC pour compiler un programme en code RISC, il suffit d'écrire :
Le compilateur C/C++/Objective-C GCC est accompagné de beaucoup d'autres outils de développement dans le paquet ADE de Fred Fish. Le portage de programmes sur PowerUP Le chemin choisit en son temps par Apple, pour la migration du Macintosh 680x0 vers PowerPC, était l'émulation logicielle du 68040 (lente, complexe et limitée). Les cartes PowerUP disposent, elles, d'un vrai 68040/68060 pour garantir des prestations maximales et une compatibilité totale avec le parc logiciel Amiga existant. Cela permet aussi à tous les programmeurs de faire le portage de leurs propres programmes très facilement, pas à pas, tâche après tâche. Le portage d'un programme modulaire (par ce terme nous entendons un programme dans lequel l'élaboration pure est facilitée par la gestion de l'interface utilisateur) se réduit à la définition du protocole de communication entre deux tâches Amiga via MsgPort et la recompilation du seul module de calcul pour le PowerPC. Avec des programmes réalisés de cette façon, le portage et l'adaptation en PowerPC de modeleurs (LightWave, Real 3D ou POV-Ray), de programmes de PAO (PageStream), de création graphique (ArtEffect, ImageFX) ou de terraformeurs comme World Construction Set, ne prendra que quelques semaines. Enfin, il n'est plus nécessaire de réaliser deux versions en parallèle d'un programme (680x0 et PowerPC) ou d'abandonner le 680x0 pour développer des versions uniquement PowerPC. Il suffit de fournir un programme d'interface graphique commun (en code 680x0) et quelques versions du seul module de calcul optimisé pour le PowerPC (ou 680x0) installé. Au début, l'utilisateur lui-même, ou mieux, un chargeur automatique, choisira et lancera la version appropriée et optimisée du programme pour le matériel installé. Tout comme aujourd'hui on lance un exécutable pour 68881, 68040 ou 68060. CyberGraphX natif pour PowerPC Un des premiers programmes natifs PowerPC qu'offrira Phase 5 est CyberGraphX. Sur PowerUP, les applications Amiga continueront à utiliser l'ancienne bibliothèque 680x0, ou mieux un simulacre de celle-ci qui fera un pont vers une bibliothèque jumelle pour PowerPC qui s'occupera de tout l'affichage sur carte graphique et/ou puces originales Amiga. Grâce à un CyberGraphX natif sur un système PowerUP, le 680x0 sera libéré de la gestion graphique (qui est l'une des tâches les plus lourdes pour un processeur généraliste : traditionnellement, l'Amiga déléguait justement ces tâches aux puces spécifiques). Ce n'est pas un hasard si l'A\Box suit le même chemin commencé sur Amiga en 1985, un système basé sur des puces spécialisées sophistiquées avec capacités audio/vidéo, et un processeur puissant dédié à l'exécution de programmes et autres. PowerPC : la gestion multiprocesseur avec PowerUP Phase 5 a déclaré qu'après le PowerUP mono-PowerPC, il pourra produire des modèles beaucoup plus puissants, dotés de plusieurs PowerPC en parallèle. Si d'un point de vue matériel, une grande part de la logique matérielle nécessaire à la gestion multiprocesseur (fonctionnement de plusieurs processeurs en parallèle) est déjà intégrée dans chaque PowerPC, la multiplication des processeurs ne présente pas de difficultés techniques particulières. Par contre, au niveau logiciel, la question est plus épineuse. Étendre directement l'ancien exec à la gestion multiprocesseur n'est pas vraiment facile, surtout si on tient compte des répercussions sur le reste du système d'exploitation. Certains de ses points critiques (multitâche, interruptions, accès à des structures partagées, des sémaphores) doivent fonctionner sur un seul des processeurs ou mieux, qu'une seule tâche soit exécutée à la fois. En outre, Phase 5 sait qu'il n'est pas facile d'effectuer, pour des raisons techniques et légales, le "reverse engineering" (ou rétro programmation : désassembler pour reconstruire le code source original) d'AmigaOS 3.1 entier, l'étendre à la gestion multiprocesseur et le porter/optimiser sur PowerPC en moins de deux ou trois ans. Andy Finkel, ex-responsable AmigaOS chez Commodore et chargé par AT de porter le système d'exploitation sur Power Amiga, prévoyait un an de travail intense pour une équipe d'experts du système d'exploitation qui commenceraient avec le code source original entre les mains. Pour un portage officiel, cependant, il faut posséder les droits intellectuels, les codes sources et la documentation interne de Commodore ou au moins une licence de propriété (Bruce Lepper : suite au rachat de l'Amiga par Gateway 2000, il y a actuellement une réelle possibilité que Phase 5 participe au portage officiel d'AmigaOS sur PowerPC. C'était en tout cas le souhait exprimé par Wolf Dietrich dans un entretien avec Amiga News à l'expo World of Amiga à Londres. Il aimerait qu'AmigaOS soit le système principal sur A\Box). Pour conclure la discussion sur la carte PowerUP multi-PowerPC, abordons le sujet du prix. A la différence d'un Pentium Pro ou d'un Alpha, le prix d'un simple PowerPC ne pèse pas beaucoup sur le prix global de la carte qui, elle, est relativement élevée compte tenu du nombre réduit d'exemplaires produits. En clair, une hypothétique carte PowerUP avec quatre PowePC coûtera moins du quadruple d'une carte mono-PowerPC. La même chose ne serait pas vrai, par exemple, pour une carte avec quatre Pentium Pro, dont le processeur est sûrement puissant mais très coûteux. AmigaOS et la gestion multiprocesseur Examinons maintenant les alternatives à la disposition de Phase 5 et des programmeurs Amiga pour une transition vers une architecture PowerPC multiprocesseur. En attendant des informations plus précises sur le noyau du pOS de ProDAD (qui sera sûrement multiplate-forme, mais gérera-t-il le multiprocesseur ?) et sur l'évolution d'AROS (réécriture d'AmigaOS en C par plusieurs programmeurs indépendants du monde du domaine public, voir Amiga News n°100), voyons quelles autres solutions se pointent à l'horizon. Il faut se rappeler que sur PowerUP, AmigaOS 3.1 tourne seulement sur le côté 680x0. Le PowerPC reste libre, il est coupé de l'hérédité du passé et est ouvert à des solutions innovatrices. La première, la plus proche avec la tradition Amiga, serait une extension d'exec déjà réalisée par Phase 5, conforme à la programmation multiprocesseur. Si Phase 5 suivait cette direction, nous assisterions probablement à une sélection et une évolution naturelle des logiciels Amiga, semblable à celle survenue suite à la diffusion des premières cartes graphiques RTG comme la Picasso et la CyberVision64. Les programmes les moins bien écrits et inutilement liés aux anciennes puces Amiga, resteront scotchés au monde du 680x0, exactement comme les anciens programmes OCS/AGA. Ils laisseront la place à de meilleurs logiciels, écrits par des programmeurs plus informés qui, avec peu de modifications, pourront bénéficier d'une architecture multiprocesseur puissante. Pour la majorité des programmes, les modifications à apporter au code source seront bien moins importantes que celles nécessaires pour implémenter la gestion RTG de CyberGraphX. En vérité, on peut conserver la pleine compatibilité au niveau source (écrit en langage de haut niveau comme le Pascal Modula-2 ou C/C++) avec le système Amiga 680x0 standard. Autres solutions Les autres solutions, elles, sont nombreuses. Elles viendraient cependant d'un autre noyau, micro ou macro, commercial ou du domaine public, sur lequel AmigaOS serait encapsulé dans une sorte de boîte de comptabilité ayant la gestion du multiprocesseur, de la mémoire virtuelle et protégée, de l'émulation du 680x0 et de l'OCS/AGA (emprunter d'UAE), etc. Les noyaux adaptés à ces ajouts sont nombreux, même s'ils ne sont pas tous à maturité et très proche de la philosophie Amiga. On pourrait prendre en considération les noyaux de Linux m68k, NetBSD, OpenBSD (tous déjà disponibles et fonctionnels pour l'Amiga), QNX ou Chorus (deux OS temps réel commerciaux célèbres), le Mach de Camegie Mellon University (son développement a été arrêté pour recommencer avec Fluke), le nouveau Hurd (basé sur Mach) de chez Free Software Foundation (similaire à GNU), etc. Avant de se donner le vertige, c'est mieux d'arrêter ici les spéculations et d'attendre les décisions de Phase 5, les nouveaux développements éventuels, l'évolution de la situation concernant les droits de l'Amiga, et du marché informatique en général. En tout cas, nous souhaitons vivement que les gens arrêtent de programmer en AMOS Pro, ou pire, d'optimiser leur programmes en code 680x0 : même dans les meilleures hypothèses, cela est du temps de perdu. Et ce genre de programmes ne fonctionnerait de toute façon pas sur l'A\Box, autrement que dans le cadre d'une émulation A500... Le système d'exploitation de l'A\Box Si tous les projets apparentés d'une façon ou d'une autre à l'Amiga et/ou ses variantes et ses descendants étaient couronnés de succès, ce serait bien embarrassant. Parmi les descendants d'AmigaOS, nous trouverions pOS de ProDAD et le projet AROS, les clones d'AmigaOS du domaine public qui pourraient tous offrir une participation et une contribution et qui, actuellement, tournent en hôte sous Linux. A ces deux-là nous devons ajouter UAE, l'émulateur logiciel de l'(ancien) Amiga : pour le moment, il émule l'A500 Plus avec 68020/881 mais très lentement. Phase 5 soutiendra activement le développement de Linux et BSD (pour l'A\Box) en les dotant des extensions et instruments spécifiques pour Caipirinha. Phase 5 est également intéressé à offrir d'autres systèmes d'exploitation "standard" pour PowerPC, via portage ou émulation, qu'ils soient hostiles (comme pour ShapeShifter) ou consentants. Phase 5 ne donne pas de noms mais Mac OS (pour PowerPC), BeOS et Windows NT sont seulement quelques-unes des options plausibles qui s'offriront aux acquéreurs d'un A\Box basé sur le PowerPC. On peut présumer qu'à moins d'un miracle, les intéressés directs (pour le moins Apple et Microsoft, ou bien Be Inc. qui est extrêmement plus ouvert et flexible) se garderont bien de bouger un doigt pour le portage de leur OS sur un matériel à contre-courant comme l'A\Box. Des produits comme A-Max, Emplant, ShapeShifter et Emplant PC sont la preuve vivante, qu'il s'agisse de matériel ou de logiciel, qu'il faudrait plus que des sociétés comme Microsoft ou IBM pour décourager les portages plus ou moins orthodoxes pour l'Amiga. Avec cette abondance de gros calibres, et même sans évoquer le phénomène Java, la carence de programmes natifs ne devrait pas poser de problème pour un système de "niche" (en gros tous les systèmes non Wintel) comme l'A\Box de Phase 5. Conclusion Les lecteurs les plus attentifs se rappelleront que Phase 5 a surgi il y a quatre ans au salon de Francfort, où, sous le nom d'Advanced Systems & Software, il présenta le Fastlane, un rapide contrôleur SCSI-2. Il était alors clair dès ce moment qu'il ne s'agissait pas d'un constructeur de pacotilles numériques, comme ils en fleurissaient à l'époque en Allemagne et dans d'autres pays, mais qu'il ferait quelque chose de différent. En fait, en quelques années, il a réussi à s'établir comme le numéro un indiscutable du secteur, suggérant et réalisant de nombreux produits innovants avec des caractéristiques inégalées. De la CyberVision64 à CyberGraphX, à la CyberStorm et Blizzard 68060, et à toutes les cartes PowerPC pour Amiga (et Mac). Le fait le plus notable est encore qu'aujourd'hui, Phase 5 est une des peu nombreuses, voire l'unique société européenne, à proposer sans complexe d'infériorité, des produits informatiques de masse, des cartes d'extension, et bientôt des puces d'avant-garde et des ordinateurs complets. Notre impression est que dans ces dernières années, Phase 5 s'est préparé à faire le grand saut de la qualité, jouant toutes ses cartes sur le PowerPC et Caipirinha (réunis dans l'A\Box), afin d'atteindre ceux qui ont la capacité, l'habileté de créer, produire et commercialiser des nouvelles technologies informatiques réellement originales et innovantes.
|