Skip to content

Spartacus 2.0

Latest
Compare
Choose a tag to compare
@pg-cse pg-cse released this 10 Jan 12:50
· 51 commits to master since this release

Release of Spartacus 2.0

(La version française suit)
The Spartacus project has not been updated for about 2 years. This is a major update. Since Spartacus is now moving away from being a game/challenge environment to becoming mainly a learning tool, the current update breaks compatibility with version 1.0.

Major changes in Spartacus 2.0
-Game environment has been removed and is no longer available
-Instructions have been added: ACTI, DACTI, HIRET, INT and SFSTOR
-Instruction format for some operations have changed
-Registers D to G have been added
-Support for interrupts (both hardware and software) has been added
-Support for software building of mutex-like constructs is now available (through SFSTOR)
-A virtual console is now available (this allows display output and keyboard input)
-A virtual “Hard drive” is now available (effectively allowing data persistence across boot)
-A virtual interrupt clock is now available (allowing for process preemption should someone build an OS or anything else requiring timed interrupts)
-Support for a virtual boot process has been added through a firmware (this is working but still in progress)
-A tool to help create new virtual hard drives has been added to the project
-Memory management unit has been removed (this was tied to the game)
-Spartacus thread multiplexer has been removed (this was tied to the game)
-A quick start guide is now available to help setup Spartacus
-Documentation has been updated and is now available in the form of a markdown file
-Many changes have been made to the test and configuration files in order to support all of these changes
-Spartacus is now dependent on python 3 tkinter

New direction for Spartacus
Spartacus originates from a challenge that was made for a specific event. The modifications that were made for the current revision deviates from the challenge/game orientation. Spartacus’ new mission is to become a learning aid that can be used by students and teachers as part of either structured computer class or operating system classes.

Areas of contribution
Presently, many areas in Spartacus could use some public contributions. These are mainly:
-Virtual memory system (no support at current time)
-Floating point arithmetic (no support at current time)
-C (or other language) compiler (no compiler at current time)
-Debugger improvement (step into, step over, ...)
-".o" file format improvement (current format is prone to bugs)
-Assembler rewrite
Please make sure to contact us before starting development efforts on any of these.

Dévoilement de Spartacus 2.0
Le projet Spartacus n’a pas été mis à jour en environ 2 ans. Cette mise à jour doit être considérée comme majeure. Comme Spartacus se transforme d’un environnement de jeu/défi en un outil d’apprentissage, la mise à jour actuelle brise la compatibilité avec la version 1.0 du projet.

Changements majeurs dans Spartacus 2.0
-L’environnement de jeu a entièrement été retiré
-Les instructions ACTI, DACTI, HIRET, INT et SFSTOR ont été ajoutées
-Le format de certaines instructions a changé
-Les registres D à G ont été ajoutés
-Les interruptions logicielles et matérielles sont maintenant supportées
-Il est maintenant possible de faire des construction de type mutexes (avec SFSTOR)
-Une console virtuelle est maintenant disponible (affichage en sortie et saisie au clavier)
-Un disque rigide virtuel est maintenant disponible (pouvant être utilisé pour l’enregistrement de données entre les démarrages)
-Une horloge d’interruption est maintenant disponible (permet l’interruption d’applications dans un contexte de système d’exploitation ou tout autre interruption à intervalle)
-Un processus de démarrage virtuel est maintenant en place (à partir d’un “firmware”, ceci fonctionne mais est toujours en développement)
-Un outil d’aide à la création de disque rigide virtuel a été ajouté
-L’unité de gestion de la mémoire a été retiré (en lien avec le jeu)
-Le multiplexeur de fils d’exécution a été retiré (en lien avec le jeu)
-Un guide de démarrage rapide est maintenant disponible
-La documentation a été mise à jour et est maintenant disponible dans un fichier de type markdown.
-Plusieurs changements ont été faits aux fichiers de tests et de configuration afin de supporter les nouveautés
-Spartacus est maintenant dépendant de python 3 tkinter

Nouvelle orientation de Spartacus
Spartacus était, à l’origine, un environnement de jeu/défi produit pour un événement spécifique. Les modifications apportées par la version actuelle changent l’orientation du projet. La nouvelle mission de Spartacus est de devenir un outil d’apprentissage pouvant être utilisé par les étudiants et professeurs dans le cadre de cours sur la structure des ordinateurs et sur les systèmes d’exploitation.

Contribution
À l’heure actuelle, plusieurs éléments pourraient bénéficier de la contribution du public. Ces éléments sont:
-Mémoire virtuelle (aucun support actuellement)
-Opérations en virgule flotyante (aucun support actuellement)
-Compilateur C (ou autre langage) (aucun support actuellement)
-Ajout au débugueur (step into, step over, ...)
-Amélioration du format".o" (current format is prone to bugs)
-Réécriture de l'assembleur
Veuillez vous assurer de nous contacter avant de commencer vos efforts de développement.