Obligement - L'Amiga au maximum

Mercredi 28 juin 2017 - 17:54  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Actualité : Le point sur AROS (août 2003)
(Article écrit par Olivier Adam - août 2003)


The Amiga Research Operating System

L'histoire

Après la chute de Commodore Amiga, et considérant que l'architecture de l'IBM/PC allait dominer, l'idée d'un clone du système AmigaOS 3.1 pour plate-forme ix86 naquît.

Aaron "Optimizer" Digulla se proposa donc pour cette tâche, qui consistait à traduire, fonction par fonction, l'ensemble des 1500 routines de la ROM 3.1, la documentation de celles-ci étant libre et disponible pour tous, sous la forme des ROM Kernel Manuals accompagnés des fichiers du Development Kit (les headers .h du C).

Seul le code étant propriétaire à la maison mère Amiga, pas l'API. Le projet fut donc créé dès 1995.

Les objectifs de AROS sont :

1) Rester compatible avec AmigaOS 3.1.
2) Être portable sur différentes architectures et différents processeurs.
3) Être compatible avec les binaires et les sources Amiga.
4) Être démarrable et natif ou en tant qu'émulation.
5) Améliorer les fonctions d'AmigaOS.

Avec les années est né un véritable système d'exploitation, qui tourne nativement sur n'importe quel PC.

Une bonne partie de l'API originelle est reproduite, on retrouve exactement les sensations du système 3.1. Tous les concepts de base sont présents : le "look & feel" avec Intuition et MUI, les DataTypes, le répertoire Libs:, le répertoire Devs:, le Shell classique.

La licence de ce logiciel est une licence "libre", l'AROS Public License, dérivée de la licence de Mozilla, ce qui garantit la pérennité du projet et son ouverture. Il faut juste s'inscrire au CVS formellement si l'on veut participer au développement. Voilà pour la partie administrative.

L'aventure

La ROM est l'objet le plus sacré de tout le culte Amiga. A cet égard, j'ai toujours pensé qu'il régnait une mystique autour de ces 500 ko de code assembleur, véritable code génétique. Presqu'à elle seule, exec.library focalisait tous les fantasmes : le coeur d'un système multitâche temps réel qui une fois déployé en mémoire, ne laissait qu'une empreinte dérisoire de quelques kilooctets.

Une curiosité.

Mais, fermé, propriétaire et surtout programmé pour la majeure partie en assembleur, son analyse restait vraiment obscure pour le profane.

Ce qui attisait d'autant ma curiosité ; AROS vînt à point pour la combler.

Écrit en C, langage rustique mais portable dont un excellent compilateur libre existe (GNU/GCC), et pourvu d'une couche d'abstraction matérielle (hidd), il me donnait l'occasion rêvée d'étudier le comportement interne d'un Amiga. Il me donnait aussi la possibilité d'en modifier, pour mon compte ou pour la communauté, tout ou une partie des sources, ne le négligeons pas ; étant tout à fait médiocre en programmation système, je me proposais donc pour traduire les .catalog de la locale de AROS en français. C'est à ce titre que je participe à ce projet. Ainsi qu'à la publication d'une poignée de comptes-rendus de bogue sur le site qui héberge le projet, à savoir aros.sourceforge.net.

Après avoir décanté pendant de nombreuses années, consistant alors en un ensemble de "wrappers" (adaptateurs) courant vers des fonctions vides, le projet a vu sa progression s'accélérer récemment, la quantité de sources disponibles augmentant alors par paliers abrupts. A présent, AROS implémente environ 75% des fonctions d'un Amiga 1200, les manquantes se situant dans des domaines particuliers comme audio.device (en relation avec le jeu de composants Amiga), card.resource (idem), etc. En bref, tout ce qui concerne AGA ou le matériel en général n'est pas géré, et c'est naturel, puisque pour rester portable, AROS ne peut reproduire ces particularismes ailleurs que sur du matériel Amiga.

Le rêve d'un OS Amiga tournant sur un i386 est une réalité.

Mais cet élan ne s'arrête pas là, d'autres portages sont en cours, dont un sur PowerPC, pour lequel Genesi, fournisseur des cartes Pegasos, a confié une carte mère et je peux déjà affirmer que AROS démarre sur Pegasos.

D'un autre côté, AmigaOS 4 intègre du code de AROS dans son gadget de palettes, par exemple.

MorphOS doit beaucoup aux échanges avec AROS aussi, et par renvoi d'ascenseur, certaines technologies des deux autres aboutissent à AROS : AHI devient le système de pilotes de cartes son commun aux trois. MUI (appelée Zune sous AROS) devient l'interface universelle. OpenPCI, CyberGraphX, sont partagés. La gestion de l'USB devrait aussi être amenée à se standardiser.

Restons modestes

Malgré tout, un ensemble de fonctionnalités absentes freinent encore AROS. Ainsi, certains des concepts de l'Amiga ont dû disparaître ou être modifiés : les paquets de commandes vers un système de fichiers, par exemple. Mais la programmation d'applications reste identique à celle de l'environnement classique : les exemples fournis avec le Kit de Développement de Commodore compilent toujours (Kickstart 2.0 pourtant) avec quelques modifications mineures, voire sans modifications du tout.

Les fonctions les plus typiques sont là : DataTypes, LIBS:, DEV:, Commodities, Shell et commandes C:#? sont clonées à l'identique. Quelques absents, dont le Workbench, remplacé pour cause de propriété intellectuelle par Wanderer, implémenté sous Zune et surtout, la pile TCP/IP, dont le manque se fait cruellement sentir, bien qu'un adaptateur devrait voir le jour rapidement et garantir le développement des applications liées au réseau, au moins sous la version coquillée dans GNU/Linux. A noter que les exécutables sont compatibles entres les différentes "saveurs" de AROS pour un même processeur : un exécutable AROS-pc-i386 fonctionne sur AROS-linux-i386. Et l'absence de certaines routines d'une bibliothèque n'empêche pas le développement d'applications de couches supérieures...

Partons dans l'autre sens

On peut m'objecter qu'en fait, à réimplémenter AmigaOS on recrée ses faiblesses. Faiblesses connues, comme l'absence de protection mémoire, l'absence de mémoire virtuelle, l'absence d'un système de fichiers moderne (journalisé, sécurisé, multi-utilisateurs) et l'absence de gestion des ressources (resource tracking).

Mais plusieurs de ces points, depuis un certain temps déjà, me semblent en mesure d'être écartés.

Soit des parties tierces ont montré des solutions viables, voire innovantes, soit ces solutions sont déjà présentes dans AROS (rt, mungwall).

En fait, à y regarder de plus près, on s'aperçoit que les difficultés auxquelles les développeurs avaient à faire face tenaient uniquement dans la fermeture du code de ces fameuses sources, qu'il fallait systématiquement contourner à la perceuse à main ce qui n'arrangeait pas la clarté de certains processus (exec.library, intuition.library, audio.device, etc.).

Notons de plus que la couche de sous-abstraction aux .resources d'AmigaOS, les .hidd de AROS, permettent d'écarter les différentes architectures du fonctionnement logique du système. Un mmu.hidd est prévu pour gérer l'espace mémoire protégé et virtuel de tout le système, les appels à la mémoire ne pouvant qu'aboutir là.

Les étapes
  • Compatibilité AmigaOS 3.1.
  • Compatibilité 3.5 et 3.9.
  • Compatibilité MUI.
  • Applications standards comparables.
  • Gestion du son.
  • Gestion du réseau.
  • Gestion du compilateur natif.
  • Documentation de développement.
  • Documentation d'utilisation.
  • Tests.
  • Version 1.0.
Conclusion

On ne peut terminer sans parler des personnes qui ont rendu AROS possible, qui sont tous passionnés et experts de l'Amiga depuis de nombreuses années : Aaron Digulla, Adam Chodorowski, Alien / Paradox, Bernardo Innocenti, Branko Collin, Cyb0rg / Resistance, Daniel Holmen, David Le Corfec, Emmanuel Lesueur, Eric W. Schwartz, Fabio Alemagna, Flavio Stanchina, Georg Steger, Henning Kiel, Iain Templeton, Johan Alfredsson, Kars de Jong, Kjetil Svalastog Matheussen, Lars Bischoff, Lennard Voor Den Dag, Luke A. Guest, Magnus Holmgren, Martin "Mason" Merz, Martin Recktenwald, Matt Parsons, Michael Schulz, Nico François, Nils Henrik Lorentzen, Ola "4pLaY" Jensen, Paul Smith, Peter Eriksson, Richard Kapp, Sebastian Bauer, Sebastian Heutling, Sebastian Rittau, Staf Verhaegen, Stefan Berger, Stefan Rieken, Sven Drieling, The MorphOS Team...

Vous remarquerez parmi eux des figures très connues de la communauté Amiga, chacun y étant allé de sa contribution, souvent de très haut niveau, et par là nécessitant de très longues heures de travail acharné. Toujours ouverts et accessibles, vous reconnaîtrez sans doute aussi des internautes très actifs par leurs communications régulières et la transparence de leurs objectifs. Ne manquez pas de rendre visite à leur site, où vous pourrez télécharger les dernières moutures des différentes saveurs de AROS, voire leurs sources, afin que, comme moi, vous approfondissiez vos connaissances, que vous participiez à sa construction, au développement ou au portage d'applications pour ce système, et même, finalement la seule chose vraiment fondamentale... que vous vous en serviez.


[Retour en haut] / [Retour aux articles]