Je voulais avoir un émulateur modulaire qui soit flexible pour lequel il soit facile de développer de nouvelles fonctionnalités. Je voulais aussi quelque chose qui soit très près de la réalité. Par exemple, je voulais être capable de développer un nouveau périphérique que je pourrais "brancher" dans mon émulateur, de la même façon que l'on branche des périphériques dans une machine.
J'ai décidé d'utiliser un modèle à trois couches. Voici ces trois couches dans un schéma :
La couche noyau (core) contient tous les composants, et seulement eux, nécessaires pour avoir un ordinateur qui fonctionne. Cela signifie que l'on peut instancier un noyau seul et jouer avec lui. C'est intéressant dans un but d'étude mais cela donne un ordinateur sourd et aveugle. Le noyau peut être vu comme l'ordinateur vu depuis l'intérieur de lui même (dans cette couche, les programmes tournent comme s'ils étaient dans un ordinateur réel).
La couche matériel (hardware) est la représentation logicielle de l'ordinateur émulé. Cette représentation est indépendante de l'interface graphique. Par exemple, la sortie vidéo est représentée par une matrice de pixels et le bouton d'un joystick par un simple booléen.
Cette couche doit contenir la représentation de tous les objets du monde émulé, comme les disquettes ou les cartouches. Elle doit aussi contenir toute la logique de l'émulateur de façon à ce que la couche suivante ne soit en charge que de l'interface homme machine.
La couche Interface Homme-Machine (GUI) est chargée de représenter à l'utilisateur la couche matériel.
Précédent | Sommaire | Suivant |
Qu'est-ce qu'un ordinateur ? | Niveau supérieur | Processeur |