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
|
|
|
|
Point de vue : 20e anniversaire de l'Amiga 500
(Article écrit par Gilles Dridi - novembre 2007)
|
|
En cette année 2007, on fête le vingtième anniversaire de la sortie de l'Amiga 500, ordinateur multimédia conçu par
Commodore-Amiga et destiné au grand public. L'Amiga 500 compléta la gamme composée de l'A1000 (le modèle d'origine)
et l'A2000 (plutôt haut de gamme).
En 1987, j'étais en terminal et je possédais un Amstrad 6128 qui me procurait déjà de belles mélodies synthétiques.
A cette époque, j'étais comme tous les jeunes de ma génération accro aux radios FM. C'est donc par le son et non par
l'image que j'ai été impressionné par l'Amiga 500.
L'Amiga ou une machine qui fait battre son coeur !
En effet, je me suis rendu à Paris, dans le magasin Ami (quel drôle de nom pour celui qui allait me vendre un "Amiga" dont
la traduction est, je le rappelle "amie" en espagnol) non loin de la place de la République, où j'ai rencontré la machine
au premier étage, grâce à des vendeurs passionnés dont je ne souviens plus le nom mais qui ont, ensuite, fondé leur propre
magasin appelé MAD. Alors introduit dans la maison, au premier étage, j'ai entendu le générique de la série Miami Vice
(Deux Flics à Miami). J'ai cru à de la radio. Il s'agissait d'une lecture en continu de données échantillonnées à partir
d'une disquette avec une qualité FM. Moi, qui croyait que seuls de lourds matériels dans les radios FM permettaient de
faire de la diffusion de "musique" de qualité ; j'étais époustouflé par cette démo.
L'Amiga 500 a fait battre le coeur de plus d'un !
Ainsi, l'Amiga, pour bon nombre d'entre nous, c'est la possibilité de jouer une musique, de lire des données à partir du
lecteur de disquette pour l'intro d'un jeu ou d'une démo et de faire des affichages de fou en 3D ou d'autres animations
avec une indépendance des trois opérations. Comment cela est-il possible ?
A l'origine était le multitâche
L'Amiga c'est d'abord un système d'exploitation multitâche : faire tourner plusieurs programmes en même temps. Mais c'est,
en plus, un multitâche "préemptif", c'est-à-dire que l'on interdit à une tâche de continuer à monopoliser le processeur
lorsque son quantum de temps est fini. Rien n'interdit, d'ailleurs, de changer la priorité d'un programme pour qu'il soit
prioritaire mais c'est dangereux et inutile.
Il faut savoir que les priorités avec AmigaOS ne sont utiles que pour les
programmes systèmes : les "devices", ou périphériques logiciels, sont dans ce que l'on peut appeler un anneau de haute
priorité. Les programmes utilisateurs font des requêtes qui sont satisfaites par des programmes système plus prioritaires.
Nous traiterons un exemple plus tard dans cet article. Et pourtant, on se souvient tous avoir bêtement voulu accélérer un
programme de lancer de rayons par la dangereuse commande "ChangeTaskPri". Le lancer de rayons est essentiellement du calcul mathématique
qui ne peut être accéléré que par des coprocesseurs arithmétiques.
Qu'est-ce qui fait vraiment la différence entre un Amiga et un PC ?
La différence c'est le "DMA time slot allocation", une planification des tâches élémentaires de transfert-mémoire. Ainsi,
l'allocation des espaces de temps commence par le transfert des données disque, puis des données audio, puis des données
de plans de bits (bitplanes) et lutins (sprites). Ainsi, chaque machine RISC (Reduced Instruction Set Computer - ensemble réduit d'instruction, tel que le
Copper, mais citons aussi le Blitter (pour remplir, faire des lignes) et Paula pour la synthèse FM et le disque)) est aidée par
un canal DMA, dont l'ordre vient de nous être donné, qui s'échine à transférer des données d'une partie à une autre de la
mémoire "chip" (pour créer des animations) ou vers des registres du "chipset" (pour alimenter un convertisseur de son
numérique-analogique) directement sans l'intervention du processeur central (un 680x0). D'où le nom DMA (Direct Memory Access).
L'Amiga a été pensé comme une machine multimédia dès le départ et pas le PC. Comme pour le lancer de rayons à l'époque, la compression
de données est aujourd'hui le grand consommateur de cycles processeur. Peut-être que le processeur Cell changera cela ?
Une machine avec une architecture processeur dans l'esprit Amiga ?
Comment avoir une machine multimédia avec les nouveaux systèmes Amiga (AmigaOne/AmigaOS 4, Pegasos/MorphOS,
PC/AROS...) qui n'utilisent pourtant pas le puces spécifiques ?
A vrai dire, je ne sais pas précisément (je n'ai pas d'AmigaOne). Mais mon avis est que le logiciel, par exemple les bibliothèques
graphiques de l'Amiga pour exploiter les modes vidéo et les opérations élémentaires graphiques, est si bien conçu au niveau de
l'API (Application Programming Interface) qu'il a été possible d'avoir une indépendance vis-à-vis du matériel.
Et là, on touche à la multiprogrammation. Le DOS d'un PC n'est pas prévu pour être multiprogrammé car les appels système passent
par des interruptions logicielles : disons qu'il est conçu avec un esprit de protection du système vis-à-vis des utilisateurs,
or une interruption n'est pas réentrante (NdA : une routine réentrante peut être appelée par d'autres programmes alors qu'un
premier programme l'a déjà appelée et est "dedans").
Tiens une Thinking Machines !
AmigaOS, lui, est fourbu à la multiprogrammation. Tous les appels à l'API, ici aux bibliothèques Amiga, demandent aux programmes
qui les utilisent d'allouer leurs propres espaces de travail pour leur donnée ; ce qui autorise la réentrance. Dans le cas des
périphériques logiciels, le niveau de priorité de la tâche qui traite la requête équivaut à un niveau d'interruption en mettant en
attente, ou non, les requêtes suivantes. Nous allons l'expliquer.
Le point fort, c'est le passage de message : il existe au niveau du noyau
(Exec) et au niveau d'AmigaDOS avec les paquets. AmigaDOS ou la commande-disque (dir DF0:) que vous avez lancée, communiquent
avec les processus DOS "DF0:" qui, à son tour, interroge le "trackdisk.device" ou plutôt une des unités, une pour chaque lecteur
de disquette. Les unités sont des émanations virtuelles des unités physiques d'un même périphérique matériel. En fait, celles-ci
sont aussi des processus mais leur port-message est inversé par rapport aux processus DOS. On se retrouve donc avec des
programmes qui communiquent (et des priorités qui définissent la hiérarchie des opérations classiques d'exploitation :
interroger le disque, faire de la synthèse vocale, des animations...). Cela est comparable à un réseau de machines avec
en mode client : les commandes lancées sous AmigaDOS, et en mode serveur : les "devices" ou périphériques logiciels ; les
processus DOS tel "DF0:", "DF1", etc. sont eux, en mode client et serveur.
Conclusion
L'Amiga 500 a été la machine qu'il fallait avoir en 1987. Pourtant mon premier programme était un traceur de courbes sous MS Basic !
J'aurais pu l'écrire sous un Mo5 ! C'est une machine compacte, innovante et remplie d'astuces matérielles et logicielles ; les
demomakers s'y sont donnés à coeur joie. Bravo à eux pour leurs démos. Idem pour le domaine vidéo-ludique avec des jeux comme
Shadow Of The Beast qui permirent de montrer l'énorme avance technologique de l'Amiga par rapport à ses concurrents "ludiques"
de l'époque : Atari et Amstrad.
Le logiciel est vraiment ce qui fait la différence aujourd'hui entre les matériels : PC, Mac, consoles de jeux, super calculateur...
et AmigaOS a plus qu'un atout. On peut penser qu'un jour un langage comme le C++ facilitera l'écriture des "devices" pour leur
création et pour gérer ces dispositifs virtuels. Enfin, le BCPL, ancêtre du langage C a été remplacé partout par du C dans
AmigaDOS. A-t-on perdu la possibilité d'interpréter du code facilement au niveau d'AmigaDOS ? Pourtant au niveau d'ExecSG
(le noyau d'AmigaOS 4) un MiniShell a été (ré-)introduit...
Remarque : j'espère que le langage Java ne restera pas longtemps en manque pour AmigaOS 4, sinon on pourra se tourner vers
l'interprète REBOL : cocorico !
Références
Soutenez le travail de l'auteur
|
|
|