Obligement - L'Amiga au maximum

Samedi 20 avril 2024 - 00:46  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Entrevue avec Pavel Fedin
(Entrevue réalisée par Olivier Tigréat - octobre 2011)


Pour se faire une idée de la santé actuelle du développement d'AROS, on peut consulter la page suivante : www.ohloh.net/p/aros. Mais ce lien montre que le développeur russe Pavel "Sonic" Fedin est à lui seul à l'origine de plus de 3400 contributions SVN en onze ans. Les autres quatre plus grands contributeurs sont inactifs ou presque depuis cinq ans, sauf Georg Steger qui était encore actif il y a un an. On voit donc la place considérable qu'est celle de Pavel dans le développement actuel d'AROS.

- Pouvez-vous nous parler de vous : famille, passe-temps, travail... Quelle est la place d'AROS dans tout cela ?

J'ai 32 ans et je suis marié. J'aime tout ce qui a trait à la technique. Dès mon plus jeune âge j'ai montré l'intérêt le plus vif pour l'électricité et l'électronique. J'ai un diplôme d'ingénieur en conception électronique. Mais je travaille en tant que développeur de logiciels, parce que le secteur de la conception matérielle est inexistant en Russie.

- Pouvez-vous nous expliquer vos motivations quand vous avez acheté votre premier Amiga ? Et pourquoi une telle machine en 1999 : n'était-ce pas une machine plus démodée que "différente" ? Et pourquoi cet intérêt pour les matériels non standard ?

J'ai toujours aimé les matériels non standard. Je ne sais pas pourquoi. Peut-être parce que j'aime la connaissance pour elle-même, et que j'aime découvrir le fonctionnement des choses. Les PC sous Windows sont inintéressants car ils sont dédiés à des tâches triviales, comme le traitement de texte de bureau ou la navigation sur Internet.

- Et qu'est-ce qui vous a conduit au Pegasos II et à MorphOS ?

Je souhaitais rester à jour.

- Je pense que certains utilisateurs MorphOS aimeraient savoir si votre projet BootX (permettant le démarrage de Mac OS X sur Pegasos) a abouti ?

Non.

- Avez-vous pu continuer le développement de FireWorks, votre pile FireWire ?

Non. J'ai perdu ma motivation avec l'arrêt du développement de l'architecture PowerPC. Je conserve encore mon Pegasos, uniquement parce que je serais malheureux de le jeter. Le protocole FireWire est mort lui aussi, et remplacé par l'USB. Et je n'ai plus de matériel : la caméra DV qui m'avait été donnée pour ce projet est en panne, et je n'ai jamais pu la réparer.

- Et AROS : comment a-t-il suscité votre intérêt ?

Dès que j'ai entendu parler d'AROS, j'ai aimé l'idée. D'abord, il devenait possible de faire tourner un système compatible Amiga sur les deux machines (à l'époque j'avais un PC avec un Pentium I, construit avec des pièces récupérées, pour faire tourner MS Office). Ensuite, j'avais un Mac 68k portable, et ça paraissait chouette d'avoir un système Amiga portable.

- On vous doit la possibilité de découvrir les écrans superposés (écrans tirables), comme le permettent les Amiga originaux. Pouvez-vous décrire votre implémentation ?

Bien sûr. J'ai implémenté une procédure ShowViewPorts() dans le pilote graphique, qui prend une liste chaînée simple des bitmaps : elle représente les bitmaps à afficher, empilés. Un bitmap comporte également les champs XOffset et YOffset, qui correspondent à la représentation des champs Offset du ViewPort pour le pilote. C'est au pilote de gérer tout cela.

L'implémentation logicielle est un simple greffon pour la graphics.library, et intercepte trois fonctions :
  • 1. LoadView()
  • 2. ScrollVPort()
  • 3. modifications des Bitmaps
Le greffon assurant la composition des écrans a simplement à ouvrir son propre écran, et y refléter les modifications portées aux bitmaps composés. Il n'y a pas besoin de faire quoi que ce soit de particulier avec les dispositifs d'entrées d'Intuition, parce que cette simulation se trouve à un niveau très bas dans le système, et l'Intuition d'AROS gère le déplacement des écrans de façon native.

Les pilotes qui ne gèrent pas la composition matérielle continuent donc à n'afficher qu'un seul bitmap : celui dans lequel les autres bitmaps se reflètent.

- Prévoyez-vous de continuer à améliorer la graphics.library et Intuition ?

Oui. Je n'ai pas le temps pour l'instant, mais j'ai des projets. Par exemple, je veux développer un cadre pour la construction des pilotes d'affichage gérant le déplacement des écrans.

- Serait-il possible dans certains cas (pilotes accélérés matériellement ?) de réduire la taille (comme la fonction BitMapScale() de la graphics.library) du reflet des écrans dans le bitmap d'avant-plan ? Par exemple pour les rendre tous visibles à la fois, comme Exposé sous Mac OS X...

Oui, c'est possible. On peut étendre le greffon gérant la composition, avec des sous-systèmes permettant diverses représentations.

- Est-ce que les écrans peuvent être rendus en temps réel ?

Ils sont rendus en temps réel.

- Avez-vous réfléchi aux besoins relatifs à l'implémentation d'une vraie transparence au niveau des fenêtres (ou des layers ?), comme le permettent déjà MorphOS et AmigaOS 4 ?

J'y ai pensé. Mais je manque de temps, et de connaissances. Je n'ai jamais été un artiste, et le graphisme (y compris dans sa programmation) m'est totalement étranger. Je comprends à peine GL.

- Vous avez fait un travail considérable au niveau du noyau i386, en particulier pour ce qui est de regrouper le code des différentes versions. Elles sont maintenant à peu près au niveau du noyau du portage Sam (et en fait elles l'améliorent sur bien des points), qui était l'état de l'art des travaux de Michal Schulz. Quels seront les bénéfices d'un tel travail ?

Principalement une réduction des différences entre les noyaux, et une augmentation de la réutilisation de code. Cela permet à chaque changement apporté au noyau d'être testé sur une base aussi large que possible, comme cela a été le cas pour les nouvelles alertes et pour le suivi de l'utilisation de la pile.

- Vous vous êtes porté volontaire pour la cagnotte ACPI phase 1. Quels bénéfices pouvons-nous en attendre pour AROS sur les plates-formes gérées ?

La phase 1 n'est qu'un petit pas vers tout cela, mais l'ACPI permet :
  • 1. L'utilisation de plusieurs coeurs.
  • 2. L'utilisation des interruptions matérielles de l'IOAPIC. Certaines machines sont lentes pour l'instant sous AROS (comme les Mac mini à base d'Intel par exemple) parce que tous les pilotes partagent IRQ0.
  • 3. L'utilisation d'horloges de haute précision, permettant une amélioration des opérations utilisant les délais.
- Pensez-vous qu'AROS pourrait bientôt être étendu pour tirer parti des processeurs multicoeurs ? Quelles sont vos idées sur ce sujet ?

Oui, c'est possible. Peut-être d'abord par l'ajout d'une bibliothèque type Exec permettant de faire tourner des tâches dédiées sur les autres coeurs (approche type PowerUP). C'est beaucoup plus facile à développer qu'un SMP complet (parce que la nouvelle bibliothèque est sans héritage), mais c'est déjà très utile (par exemple, les encodeurs et décodeurs vidéo pourraient en tirer parti).

- Je sais que vous avez aussi pensé à la protection mémoire... pouvez-vous en parler ?

Oui, je peux. Les "pools" d'Exec sont déjà prêts : ils ont été réécrits pour utiliser des blocs de taille fixe. Il n'y a plus de taille seuil, et la taille des flaques (puddles) est toujours un multiple de la taille des pages processeur. Si un gros bloc est alloué (plus gros que la taille d'une flaque), une flaque élargie est allouée. C'est pourtant toujours une flaque, dont la fin peut être utilisée pour de petites allocations. Cela permet d'utiliser les "pools" pour séparer les pages mémoire (obtenues avec l'alloueur du noyau) en blocs de taille variable. Un AllocMem() avec la protection mémoire active est censé être simplement un AllocPool() système par défaut.

L'alloueur du noyau existe au stade de brouillon et n'est pas encore utilisé. Je n'ai pas le temps de le tester. Par ailleurs, avec l'implémentation actuelle des "pools", AllocMem() serait lent, parce que le pool serait mixte. Le même "pool" pourrait contenir des blocs avec des drapeaux différents. Le gestionnaire de "pools" supporte cela, mais c'est lent. Je réfléchis à la façon de l'améliorer.

- Que souhaitez-vous ajouter ?

Je ne sais pas, vraiment. Je manque de temps et d'imagination...

- Vous avez souvent amélioré AROS avec des éléments très inspirés de MorphOS. Quelles sont vos relations avec les développeurs de MorphOS ? Avez-vous eu accès aux sources de MorphOS ?

Je n'ai pas de relation avec l'équipe de développement de MorphOS. Et je n'ai vu que du code public, ou fuité : si vous vous en rappelez, ça a été le résultat d'un conflit interne de l'équipe de développement. À cette époque, j'ai publié des améliorations non officielles pour MorphOS, basées sur ces sources fuitées.

- La version d'AROS hébergée sous Windows est beaucoup plus utilisable qu'aux premiers jours, mais il arrive encore qu'elle "avale" quelques caractères lors de la frappe au clavier, et elle plante encore de façon aléatoire (très rarement cependant). Pourrez-vous vous pencher à nouveau dessus ?

Oui, je le ferai. Je ne sais pas quand, mais je souhaite le faire. En fait, j'utilise cette version moi-même, pour installer les fichiers nouvellement compilés sur les partitions natives de mon portable. Et je sais déjà quoi faire pour la frappe au clavier. Je rencontre également les blocages, mais je n'en ai pas encore trouvé la cause.

- Pourriez-vous expliquer brièvement comment on peut compiler AROS sous Windows ?

Comme sur toute autre plate-forme. "configure", puis "make". MinGW est nécessaire.

- Maintenant qu'AROS tourne sur les terminaux portables d'architecture ARM, grâce à votre incroyable travail (et à celui de Michal), est-il facile pour les développeurs de porter des applications sur ces systèmes ? Et y a-t-il une seule sorte d'exécutable, comme c'est le cas sous i386 où les exécutables fonctionnent sous toutes les moutures ?

Oui, il n'y a qu'une sorte d'exécutable ARM :-) pour processeur ARMv6, avec FPU VPF, sous ABI softbloat. D'autres moutures sont proposées (par exemple ARMv7 et Neon hardfloat), mais ce n'est pas en production actuellement.

- Le portage Android semble être particulièrement abouti. Qu'en est-il du portage iOS ?

iOS est un système très restrictif. Il est par exemple impossible d'allouer de la mémoire en permettant à la fois la lecture, l'écriture ou l'exécution de code. Cela ne peut être qu'en lecture-exécution, ou bien en lecture-écriture. Cela implique que la gestion de la protection mémoire est indispensable pour qu'AROS fonctionne sous iOS.

Je suis revenu vers ce portage récemment, et j'ai amélioré le pilote d'affichage. Je peux tester ce pilote sur un simulateur, qui utilise l'architecture i386 et n'est pas concerné par les restrictions relatives à la mémoire. Quand j'en aurai fini avec cela, je terminerai la protection mémoire.


[Retour en haut] / [Retour aux articles]


Soutenez le travail d'Obligement