Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Entrevue avec Almos Rajnai
(Entrevue réalisée par Tommi Toivanen et extraite d'AmigaRulez - février 2006)
|
|
Note : traduction par David Brunet.
Voici une entrevue avec le développeur Almos Rajnai, auteur notamment de l'émulation JIT Petunia pour AmigaOS 4.
Pouvez-vous nous en
dire un peu plus sur vous ? Que faites-vous dans la vie et où habitez-vous ?
J'ai 31 ans et je vis à Szombathely en Hongrie. Je suis programmeur indépendant, j'écris des programmes pour
divers clients, principalement des applications multimédias. Je conçois parfois des pages Web, mais je déteste
ça. J'enseigne également dans un lycée local des disciplines spéciales comme la création de contenu multimédia.
Mon passe-temps est mon travail, je suis donc chanceux. J'aime aussi regarder des films et, parfois, je lis des
livres (je jure que c'est vrai !).
Comment a été
votre premier contact avec les ordinateurs ?
J'étais très jeune quand j'ai eu mon premier contact avec des bornes d'arcade dans des cafés, principalement des
flippers et des machines à sous. J'étais vraiment intéressé par le fonctionnement de ces machines. J'ai donc posé
des questions à tout le monde mais personne ne savait exactement ce qu'il y avait dans ces machines. Un peu plus
tard, mon père ramena de son travail une calculatrice programmable Texas Instruments. Je fus médusé par le rouleau
sur lequel il imprimait avec cette petite chose toute bête. Je savais dès lors que j'avais un but dans la vie :
écrire des programmes.
A l'âge de 10 ans environ, j'étais à l'école avec ma mère (elle était enseignante). Là, je fus en étroit contact
avec les premières machines : un Sinclair ZX-81 et un tas de HT 1080Z (un ordinateur hongrois basé sur l'ordinateur
Video Genie d'EACA, qui était en gros un TRS-80 de Tandy). A cet instant, j'étais à présent certain de vouloir
devenir programmeur une fois devenu grand.
Quand avez-vous eu
votre premier Amiga ? Pour quelles raisons l'avez-vous choisi ?
J'en ai vu un pour la première fois chez un ami. Nous avons longtemps discuté en feuilletant des catalogues d'ordinateurs.
Et comme ses parents n'avaient pas de problèmes d'argent, il a pu en acquérir un. C'était un Amiga 500+. Je fus choqué, étonné
puis étonné et choqué. J'en voulais un ! (j'avais à cette époque un Commodore 16... qui ne soutenait pas la comparaison avec cet Amiga).
A quoi ressemblent vos configurations
informatiques actuellement ?
Eh bien, ce n'est pas vraiment intéressant. J'utilise surtout un vieil Amiga 4000 et plusieurs PC. J'ai encore mon vieux Commodore Plus/4
dans un placard, accompagné d'autres vieux ordinateurs. J'ai vendu mon Amiga 1200 (qui était doté d'un bus Mediator et d'autres cartes)
car j'ai pensé que quelqu'un d'autre pourrait en faire un meilleur usage que moi.
Comment se porte l'Amiga
en Hongrie ? A quoi ressemble la base d'utilisateurs ?
L'Amiga était populaire en Hongrie au milieu des années 1990, mais de nos jours, il ne reste que quelques utilisateurs.
La plupart des anciens utilisent UAE (houuuu !). Certains fous utilisent encore des Amiga classiques, le reste a acheté
des Pegasos (bon marché) et il y a aussi quelques AmigaOne. Au total, nous ne sommes plus qu'une centaine d'utilisateurs
ronchonnants. Il n'y a pas vraiment de nouveaux venus.
Comment s'est déroulée votre
carrière de programmeur ?
Vous voulez parler de ma carrière professionnelle ? J'ai gagné quelques prix lors de concours au lycée, alors le fraîchement
créé Département d'Informatique me proposa de devenir enseignant. Mon travail de thèse était probablement intéressant
pour eux, il s'agissait des techniques de compression. Plus tard, l'enseignement a fini par m'ennuyer et je suis devenu
développeur indépendant. Avez-vous un projet pour moi ? :)
Quels langages de programmation
utilisez-vous et préférez-vous ?
J'aime surtout programmer en C et en assembleur. C'est un mélange idéal. Mais je programme aussi en d'autres langages
comme le PHP ou avec l'environnement .NET. Pour vous dire la vérité, le langage n'importe pas vraiment, je peux tout
apprendre et j'en ai vu beaucoup... :)
Quels programmes
avez-vous développé avant Petunia ?
Sur Amiga ? J'ai réalisé quelques programmes pas très intéressants. La plupart de mon travail n'a même pas été publié.
Mes seuls projets à long terme furent l'émulateur Commodore Plus/4 (nommé Flamingo) et un magazine électronique
hongrois (nommé FONT!).
Interface graphique de Flamingo
Pourquoi ce nom de Petunia ?
J'aime nommer mes projets avec le nom de créatures vivantes. Le pétunia est une de mes plantes préférées.
Comment se fait-il que
vous ayez été choisi pour développer Petunia, et comment avez-vous été impliqué dans le développement d'AmigaOS 4 ?
En fait, c'était mon idée de commencer Petunia, dès l'an 2000. J'avais vu quelques émulateurs en mode interpréteur, et
j'avais déjà l'expérience de Flamingo (mon émulateur de Commodore Plus/4), donc j'étais sûr de pouvoir faire mieux avec
une recompilation dynamique. Plus tard, j'ai montré mon travail à Steffen Häusser (développeur AmigaOS 4) et il était vraiment excité après
avoir vu de quoi mon émulateur était capable (il était cependant à un stade très précoce à ce moment-là, nous étions
vers le début de l'année 2001). A cette époque, Haage & Partner prévoyait de développer un nouvel AmigaOS natif PowerPC
mais Steffen Häusser m'a alors conseillé (je dois lui dire merci). Nous savions tous que cela n'allait pas se matérialiser
et Steffen Häusser m'a conseillé de contacter Amiga Inc. et Hyperion car ils avaient besoin d'un émulateur 68k plus rapide
que ce qu'ils avaient à l'époque. Ben Hermans m'a envoyé mon contrat et je faisais à présent partie de l'équipe. Mon
rêve devint réalité ce jour-là.
L'émulation de la MMU
vous prendrait combien de temps ? Cela en vaudrait-il la peine ? Que gagnerait-on ?
Je ne pense pas que cela en vaille la peine. AmigaOS Classic ne l'a jamais vraiment utilisé, donc la plupart du temps,
cette fonction a été improprement implémentée. Seul un petit nombre de programmes l'ont utilisé, donc nous avons
décidé de laisser tomber cette fonctionnalité. Cela nécessiterait un accès direct à la MMU PowerPC, ce qui serait
un peu compliqué. Seriez-vous capable de me donner le nom de trois programmes importants utilisant la MMU ? Non ?
Vous avez donc la réponse.
Dans quelle mesure
Petunia utilise les pipelines et le cache du processeur ? Il y a un risque de blocage ou est-ce empêché ?
J'ai essayé de faire de mon mieux, malheureusement, c'est vraiment difficile à cause de la fonctionnalité limitée
nécessaire pour implémenter l'émulation d'une instruction en langage machine. La meilleure façon d'optimiser les
pipelines est d'entrelacer les fils d'exécution des instructions, mais la plupart du temps, ce n'est pas possible
dans mon cas.
Petunia a permis
d'accélérer AmigaOS 4 pour l'exécution des applications 68k. Pouvez-vous nous dire sur quelles optimisations
vous travaillez actuellement, s'il y en a ?
Non, je ne peux pas. Désolé. :)
Si AmigaOS se
tourne vers d'autres processeurs que le PowerPC, sera-t-il difficile de faire fonctionner Petunia sur,
par exemple, les processeurs x86 ?
Petunia a été écrit principalement en assembleur PowerPC (environ à 80%), donc il faudrait une réécriture totale.
Mais je ne le ferais pas, je ne programme pas en x86.
Quelles sont les
applications les plus demandées sur AmigaOS 4 en ce moment, d'après vous ?
Une suite bureautique et un navigateur Internet. Je suppose que tout le monde le savait déjà très bien. De plus, je voudrais
également voir arriver un environnement de développement décent, quelque chose comme Visual Studio. Cela
renforcerait l'efficacité du développement.
Quelles fonctionnalités
manquent à AmigaOS 4 ?
Hum... Je ne sais pas. J'ai tout ce dont j'ai besoin, mais je suis un programmeur expérimenté, vous savez ;).
La gestion de l'impression pourrait probablement être meilleure. Je n'ai jamais essayé par moi-même, mais
je sais que les utilisateurs AmigaOS 4 se battent pour arriver à quelque chose. Enfin, ce serait bien d'avoir
plus de matériels gérés.
Quelle est votre opinion
sur AROS et MorphOS ?
J'ai mon opinion, oui. :)
Que comptez-vous
faire maintenant que Petunia est terminé ? Que développez-vous à présent ?
J'ai quelques idées en tête, et certaines d'entre elles prennent lentement forme. Mais je ne veux pas faire
du vaporware, donc vous connaissez la réponse : cela sortira quand ce sera fait ;). J'ai tout de même une
chose que je pourrais vous révéler : je travaille sur un article concernant la programmation en assembleur PowerPC
sous AmigaOS 4. Je ne sais pas quand il sera prêt, mais j'espère bientôt (dans quelques mois).
Quand allez-vous
implémenter l'AltiVec dans Petunia ?
Je ne vois pas un besoin réel d'AltiVec dans l'émulation, car celle-ci n'a pas besoin de parties avec des calculs périodiques,
à part quelques optimisations dans l'exécution de la translation et de la copie de la mémoire. Je verrai plus tard si un
code machine avec SIMD pourrait être utilisé.
Est-ce difficile (ou simplement
possible) d'implémenter une vraie gestion de l'AGA pour Petunia sur Amiga Classic afin de faire tourner un jeu AGA dans
un environnement logiciel protégé par Petunia ?
Sommes-nous sûrs d'avoir encore besoin de cette bidouille pour l'émulation de l'AGA ? Combien de programmes en ont besoin ?
Je ne pourrais en nommer que quelques-uns qui pourraient valoir la peine d'être lancés depuis le système plutôt que par
UAE (par exemple Brilliance). Mais je pense que la création de correctifs pour ses programmes ou le développement des solutions spéciales
(comme l'a fait Stephen Fellner avec LightWave) seraient probablement plus faciles. Mon travail se concentre sur l'émulation
uniquement logicielle du processeur et non sur une gestion complète du matériel. Les dépendances liées aux circuits spécialisés
d'un programme AGA sont difficiles à combler. Vous savez probablement qu'il n'y a pas d'approche "bac à sable" sur AmigaOS 4 pour
les anciens programmes, donc pour un programme qui voudrait sortir/arrêter le système, cela ne fonctionnerait probablement pas.
Cela dit, beaucoup de vieux jeux fonctionnent déjà. Il n'existe qu'une façon de faire fonctionner la plupart des vieilles
applications : utiliser UAE. Vous pouvez utiliser une version native d'UAE pour AmigaOS 4, et cela fonctionne bien. A mon
avis, 90-95% des programmes 680x0 respectueux du système fonctionneront avec Petunia, mais j'espère que vous pourrez le voir
par vous-même.
Quelles sont les instructions et
les procédures les plus faciles à émuler pour Petunia ? Quel code optimisé pour processeur est utilisé ici par Petunia ?
Le code optimisé pour les 68040/68060 peut fonctionner plus rapidement que ceux pour les autres processeurs de cette famille.
Quelle est l'explication derrière ce fait ? C'est très simple : il y a un certain nombre d'instructions complexes qui ne sont
pas gérées par l'architecture 68040/68060, donc l'optimisation du code passe par un autre chemin lors de la compilation.
Il peut y avoir un problème mineur avec la modification des fichiers : Exec ne signale que les 68020+FPU pour les applications,
certaines personnes pourraient donc penser que le code 68040/68060 ne peut pas être appliqué, mais les deux émulations (interprétée
et dynamique) sont préparées pour les architectures 680x0 supérieures.
Cette limitation a été introduite en tant que marge de sécurité, certains programmes non respectueux du système en demandent
trop au processeur, et cela entraîne une utilisation de la MMU, une mauvaise utilisation de la structure de pile du FPU
ou tout ce que le programmeur pense être sûr. Nous essayions d'éviter cela avec Petunia, même si cela n'est pas vraiment nécessaire.
|