Obligement - L'Amiga au maximum

Samedi 24 mai 2025 - 16:37  

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

 


Point de vue : Mon histoire du VD0, l'invention du RAM Disk récupérable
(Article écrit par Perry Kivolowitz et extrait d'Amiga.org - mars 2010)


Mon nom est Perry Kivolowitz. J'ai écrit le premier disque mémoire récupérable.

À l'époque, ASDG (la société que j'ai fondée début 1985 avec Dan Esenther et un troisième partenaire dont presque personne n'a jamais entendu parler) ne fabriquait que des produits matériels - notamment une carte mémoire. On fabriquait également le boîtier dans lequel la carte mémoire était insérée car il n'y avait aucune capacité d'extension dans un Amiga 1000 (autre que la mémoire vive).

J'avais entendu dire qu'un concurrent, je ne me souviens plus qui - peut-être que c'était les super gars de Microbotics ou les sacs à merde de C Ltd, allait sortir un RAM Disk qui survivrait aux redémarrages. Incroyable, wahou, ça serait une tuerie - ça donnerait un avantage compétitif incroyable pour eux - une raison impérieuse d'acheter leurs cartes mémoire.

Je me suis dit que je devais les devancer.

La clé de notre "RRD" (Recoverable RAM Disk) ou "VD0" (Virtual Disk) était que l'appel d'allocation mémoire d'AmigaOS vous permettait de spécifier d'où la mémoire nouvellement allouée devait provenir. L'appel initial alloue toujours la mémoire à partir de la mémoire basse vers le haut. Mais il y avait cet autre appel (ou peut-être était-ce le même appel) qui allouait la mémoire de haut en bas.

J'ai sorti un des manuels Amiga les moins connus, je suis presque sûr que c'était un manuel imprimé, qui décrivait les pilotes de périphériques Amiga. L'exemple de pilote de disque était extrêmement complexe et écrit en BCPL ou peut-être en B. Quel était le nom de ce langage dans lequel ces cinglés dont personne n'a plus jamais entendu parler écrivaient ? Je ne m'en souviens plus.

Je suis rentré du travail (j'étais chez AT&T) un vendredi après-midi et j'ai commencé à programmer. J'ai programmé jusqu'au dimanche soir. Sans arrêt. J'ai quelque part une photo de moi devant mon A1000, enveloppé dans une couverture (je ne pouvais pas vraiment me permettre de chauffer l'appartement) à la fin de ce week-end. Je n'avais pas l'air bien.

Mon RRD était écrit en assembleur. J'adorais le langage assembleur 68k. J'avais été parmi les premiers programmeurs C dans le milieu universitaire (quand Unix a quitté Bell Labs) et j'avais programmé en assembleur 68k à peu près à la même vitesse tant les deux langages étaient proches.

Un défi important était de décider quand on pouvait faire confiance au RRD après un redémarrage. Il n'y avait pas d'isolation/protection de la mémoire - tout processus pouvait accéder à n'importe quel octet en mémoire. La première chose que le code faisait était d'essayer de trouver les premiers octets alloués au RRD en mémoire, en commençant par le haut de la mémoire et en poursuivant vers le bas à la recherche d'une sentinelle. Lorsque/si cela était trouvé, il suivait ensuite une structure de données vers le bas pour déterminer si tous les blocs alloués au RRD étaient encore là.

Je ne me souviens plus - est-ce mon RRD qui était redimensionné dynamiquement ou celui qui est arrivé plus tard ? C'est peut-être le mien qui redimensionnait dynamiquement. Si toute la mémoire allouée au RRD était toujours là, elle était réallouée (un autre truc amusant du gestionnaire de mémoire de l'Amiga) et ensuite vérifiée avec un simple "CRC" (contrôle de redondance cyclique). C'est la principale chose qui ralentissait le RRD - calculer et vérifier les CRC pour s'assurer que personne d'autre n'avait détruit la mémoire à notre insu.

Mise à jour : Oh, je me souviens maintenant. Mon disque ne se redimensionnait pas dynamiquement - il allouait dynamiquement. Certains des autres disques mémoire récupérables, qui sont arrivés plus, tard allouaient tout leur espace en une seule fois. Je pense qu'il y en a eu un qui, au final, allouait dynamiquement et se redimensionnait dynamiquement mais ce n'était pas le mien. En fait, pour être honnête, je ne me souviens pas avec certitude si le mien allouait dynamiquement ou non, je sais que j'ai fait quelque chose de mieux que la version suivante de RRD. J'ai des bandes de sauvegarde qui contiennent le code source de tout ce qu'ASDG a fait mais aucun moyen de les lire (en supposant qu'ils soient encore lisibles).

Il y avait une quantité incroyable de code là-dedans pour imiter le fatras que j'ai trouvé dans l'exemple de pilote de disque à partir duquel je travaillais. Les RRD qui sont arrivés plus tard n'avaient pas ce fatras car d'autres moyens furent trouvés pour écrire des pilotes Amiga. Je n'avais rien d'autre pour travailler que cet exemple pourri.

Finalement, il s'est avéré que le RRD des autres gars n'est jamais sorti. Il n'a jamais existé. Il s'agissait juste d'une rumeur. Le mien fut un énorme succès et nous a fait vendre beaucoup de cartes mémoire. Les gens pensaient que c'était magique.

Pendant longtemps, mon RRD n'était disponible qu'avec les cartes mémoire d'ASDG et il vérifiait le matériel d'ASDG. À un moment donné, j'ai supprimé la vérification du matériel d'ASDG, mais il n'était toujours fourni "légalement" que par nous.

Après cela, je l'ai rendu partagiciel pour 10 $. Je crois que c'était l'un des produits partagiciels les plus réussis jamais réalisés sur Amiga. Je peux vous dire que j'ai survécu grâce à ces chèques de dix dollars et aux factures envoyées par la poste.

On ne l'a jamais dit, mais j'ai travaillé pendant des années sans être payé tout en développant la société ASDG. Je vivais sur les économies de mes travaux (consultations) chez AT&T - que Dieu les bénisse. C'est plusieurs années (trois ?) après l'existence d'ASDG que j'ai reçu mon premier chèque. Je gagnais 6 dollars de l'heure. Et j'étais sacrément fier.

Quelque temps plus tard, un jeune Allemand a fait de l'ingénierie inverse sur mon RRD et en a sorti un bien meilleur. Des années plus tard, nous en avons parlé et je l'ai félicité. C'était vraiment mieux.

Enfin, apparu le jour où les disques durs sur Amiga n'étaient plus si mauvais. Jusque-là, les disques durs Amiga étaient incroyablement lents à cause d'une architecture mal conçue. Les premiers disques durs étaient plus lents que les disquettes. Surtout comparés aux disquettes accélérées par Facc et Facc II - d'autres logiciels d'ASDG que j'ai écrits. Les disquettes Facc II fonctionnaient à la vitesse de la mémoire car elles étaient des clones basés sur la mémoire de la disquette qui était chargée à ce moment-là.

À propos, VD0 signifiait "Virtual Disk 0". Le VD0 original a été écrit en 1985 ou peut-être début 1986 car je vivais encore dans le New Jersey.

Quel est le rapport entre VD0 et le disque RAD fourni ensuite dans AmigaOS ?

VD0 pourrait être l'arrière-grand-père de RAD. Probablement un grand-père. La version modifiée du jeune Allemand serait le fils-de-VD0.

En dehors de cette distinction de redimensionnement/allocation dynamique, il y avait peu de différence fonctionnelle entre eux. En termes pratiques, cependant, les nouveaux RRD étaient plus rapides et plus petits. La taille n'était pas très importante - il ne s'agit que de quelques kilo-octets tout au plus.

Je pense que les principales choses qui rendent VD0 important sont :
  • La date précoce du programme, c'était le début de la vie commerciale de l'Amiga, en 1985 ou 1986.
  • L'importance du problème qu'il a résolu - je suis certain que plusieurs logiciels importants auraient été beaucoup plus difficiles à écrire si les auteurs avaient dû se contenter de développer uniquement sur des disquettes. Roman Ormandy, par exemple, a été très enthousiaste pendant le développement de Caligari, son logiciel de rendu 3D.
  • Le fait que cela n'avait jamais été fait auparavant. C'était considéré comme de la magie pure à l'époque.
  • Cela a changé la direction d'ASDG. Nous étions une société de matériel informatique de A à Z. Le RRD a été notre premier produit logiciel et nous a orienté vers la fabrication de logiciels. C'est presque aussi déterminant que la course en taxi que j'ai prise et qui a complètement changé ASDG. Mais c'est une histoire pour un autre jour... :)
  En résumé, ce n'est pas tant la qualité de la danse de l'ours qui compte, mais le fait que l'ours danse tout court.


[Retour en haut] / [Retour aux articles]