E-mail: [damien.picard@etudiant.univ-brest.fr] URL: [xoa-dos.sourceforge.net]
|
XOA-DOS
|
|
eXperience
Of A
Disk Operating System
|
|
|
*Introduction*Qu'est ce que XOA-DOS? XOA-DOS est un projet de programmation d'un système d'exploitation de type DOS. Il a pour but principal l'apprentis- sage de la programmation d'un tel système, il n'a pas pour prétention de vouloir remplacer MS-DOS ou autres et ni celle de vouloir être commercialisé (ça serait difficile mais c'est pour situé les choses :)). Donc ce système est developpé pour apprendre, comprendre et éventuellement partager des idées. Il se veut simple et fonctionnel. Personnellement je suis novice dans la programmation de ce type et mon niveau n'est pas extraordinaire en Assembleur, donc ne vous étonnez pas de voir parfois du code pas très "propre". Il faut un début à tout :) Toutes les sources sont disponibles en plus des binaires, ils peuvent être distribués GRATUITEMENT et comme bon vous semble. Bonne programmation!Picard Damien
-Description:
Nom: XOA-DOS
Auteur: Picard Damien
Version: 1.0 Beta
Catégorie: Système d'exploitation (Operating system)
Spécificité: Programmation 16 bits et en mode réel.
Système mono-tâche, mono-utilisateur.
Programmé en langage Assembleur, syntaxe NASM.
Programmé pour les processeurs x86.
Système de fichier: FAT12
Kernel monolithique.
Remarque: Le support du système est une disquette 1.44mb.
-Chronique:
20/01/2002
Lançement du projet XOA-DOS.
22/01/2002
Programmation du secteur de boot. Il charge le noyau "cmd.bin" en mémoire.
23/01/2002
Programmation du module principale "cmd.asm". Fonctions gérant l'affichage des caractères dans "SCREEN.INC".
Début de la programmation de la console:
-Ligne de commande
-Saisie et affichage des touches appuyées
24/01/2002
Mise en place d'un gestionnaire de commandes.
Programmation de la commande "ver" qui indique la version du noyau "cmd" (On ne peut pas faire plus simple comme
commande :)).
Fonctions de comparaison de deux chaînes de caractères.
27/01/2002
Possibilité de saisir une seule commande du fait d'un bug dans la fonction de comparaison de chaînes.
29/01/2002
Bug résolu. Gestionnaire de commande prêt à l'emploi.
Commande à programmer:
-Reboot, comme son nom l'indique il redémarre le sytème.
-Cls, efface l'écran.
30/01/2002
Commandes mises en place.
Systéme de fichiers de type FAT12.
5/02/2002
Utilisation et adaptation d'un secteur de boot qui charge un programme en mémoire via la FAT. (temporaire)
24/02/2002
Programmation d'un gestionnaire d'interruptions logicielles.
25/02/02
Interruption 21h mise en place.
Programmation d'une fonction "essai" dans le gestionnaire de commande qui appelle cette interruption, pour l'instant
elle afiche "int21" à l'écran.
Ca marche!!!!!!!!!!!!!! :))
Plusieurs fonctions similaires à MS-DOS sont en projet.
26/02/02
Gestionnaire de l'int 21h pour répartir les fonctions, fonctionnelle.
Programmation de l'int 22h qui redémarre totalement le système.
28/02/2002
Bientôt, une doc des api's disponible sur XOA-DOS sera disponible en download.
Début de la programmation des fonctions de l'interruption 21h.
04/03/2002
Interruptions sont disponibles et fonctionnelles:
Int 21h, Fct 00h et Fct 01h (voir doc)
10/03/02
Fonction convertissant au "format FAT" les noms de fichiers tapés en ligne de commande, fonctionnelle.
17/03/2002
Fonction pour la recherche de fichiers en debugging.
02/07/02
Et c'est reparti! Aprés ma petite pause de 3 mois (avec les études on fait pas tout le temps ce qu'on veut...) :)
05/07/2002
Driver pour le clavier français debuggé et fonctionnel.
Projets:
Reprise de la programmation de la fonction pour la recherche de fichier.
programmation d'un bootloader utilisant le systéme de fichier FAT12.
Driver FAT.
(Ca en fait du boulot! :P)
04/08/2002
Hébergement chez sourceforge.net. XOA-DOS est désormais sous license GPL, celle-ci sera dorénavant fourni avec les
packages.
Bientôt une version anglaise du site sortira (quand j'aurai le temps là je me consacre à 100% à xoa-dos vu le peu de
temps libre que j'ai...)
09/08/2002
Commande "search" fonctionnelle en debugging.
Commande pour éxecuter des programmes en avancement.
Driver FAT fonctionnel et débuggé.
10/08/2002
Ajout d'une partie archives où vous pourrez télécharger les dernières sauvegardes du kernel mais je ne garantie pas
la stabilité des versions sachant qu'aucune version stable de XOA-DOS n'est encore sortie. Donc soyez prudent,
étudiez plutôt les sources, que de vouloir les compiler...
31/08/2002
NOTE: Dans le fichier kernel.asm, je conseil de changer la valeur de SS et de la mettre à 0x1000 car j'ai fait l'erreur
de la laisser à 0x0000, je vous laisse imaginer les conséquences :( je corrigerai moi même plus tard.
03/09/2002
Version 1.0 Beta fonctionnelle en debugging.
Driver FAT12: ajout de divers fonctions liées à Load_File, debuggées et fonctionnelles :)
Commande pour l'éxecution d'un programme fonctionnelle.
Commande ls en cours...Vu les bugs qu'elle produit je dois utiliser une mauvaise méthode.
Projets:
Mise au propre du code source, plus ajout des commentaires.
Amélioration du gestionnaire d'interruptions.
Programmation des interruptions de manipulation de fichiers.
18/09/2002
Sortie de la première version stable de xoa-dos. Version 1.0 :)
Beaucoup encore à faire mais je continue et la motivation est la même!
Version 1.1 en cours...
Problème avec la fonction "DrvFAT.Name_FAT", la fonction convertit uniquement les noms mis dans la variable
"VAR.Kernel.linevar" et ensuite pointé par DI. Donc la fonction ne convertie pas n'importe quel nom pointé
par DI :(
22/09/2002
Problème résolu. Doc à propos mise en ligne.
21/10/2002
Sans être sur à 100%, je pense arrêter le développement de XOA-DOS aprés la sortie de la version 1.1.
Je n'abandonne pas l'"osdev" mais je désire me lancer dans un projet plus sérieux et élaboré c'est à
dire un OS en mode protégé, multi-taches, multi-utilisateurs et programmé en C/ASM...Je n'ai pas trouvé
encore de nom pour le projet, je communiquerai l'url ici, je vous tiens au courant pour ceux qui s'y
intéresse ;)