"mortimer": un hobby os

Soyez le premier à donner votre avis sur cette source.

Vue 8 275 fois - Téléchargée 1 752 fois

Description

Mortimer 0.7 est un petit système d'exploitation,
il tient sur une disquette
c'est un système par ligne de commande
uttilise le système de fichier FAT12(le standard de la disquette sous windows et dos)
n'uttilise les fonction du bios que pour lire/écrire sur la disquette et changer de mode video(uttilise le vesa)
il possède quelque fonctions(détaillé dans mrtj.txt)
peut emuler un mode texte avec un mode video(256 couleur seulement)
commande:
ver donne la version du système
af/XXX affiche un message XXX(en vert)
modv/XXX passe en mode video XXX
efe eface l'écran
st XXX.xxx execute une liste ce commande contenue dans le fichier XXX.xxx

programme qui vont avec:
TERM: terminal de communication par port série
VCM: visionneur du contenue de ma mémoire
VESAINF:voit les modes video disponible
CFCOM: configurateur des port com
DATUM: donne l'heure et la date
DIR: montre le contenue de la mémoire
CHRGPOL:charge la police pour l'émulation texte
VOIR: lit un fichier texte

Conclusion :


C'est pas parfait mais je compte sur les "uttilisateur" pour me dénoncer les bugs

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008

Salut,

L'effet de bord, c'est ce que tu as très bien expliqué avec les caches de segment !
Car en effet, pour ne pas aller en permanence relire la gdt, le cpu garde les segments en cache. En théorie, cela n'est sensé rester actif après être revenu en mode réel. Apparement, sur une machine réel, le cache n'est pas vidé. Mais c'est un effet de bord.

Un autre exemple d'effet de bord, serait de prend un registre tel que ax par exemple, lui affecter 65535, la valeur maximum, puis de l'incrémenter de 1. L'effet de bord sera que le registre reviendra à 0.

Le compteur, on dit plutôt le timer. Me rappelle plus du numéro de PIC non plus.
Pour ce qui est du système de fichier, la FAT12, FAT16 et FAT32 possède quelques avantages pour commencer : C'est simple à comprendre et à implémenter, et beaucoup d'outils existe pour vérifier la valider des FAT.

Oublie pas le DMA pour les accès disquettes et disques dur. Mais un conseil, travaille avec une machine virtuelle, si possible qemu, avec gdb connecter pour déboguer par exemple. C'est vraiment pratique. Et pour pouvoir retrouver les symbols du code (Les labels en assembleur), je te conseille de compiler un objet de type ELF en parallèle du binaire et de charger ce dernier ELF dans gdb.

Enfin, je te recommande chaudement de passer au C pour coder ton OS, c'est vraiment plus productif et plus efficace.

Si tu veux, envoie moi ton mail par mp, nous pourrons continuer à discuter tranquillement.
Messages postés
39
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
5 juin 2009

je croie que c'est dût en fait a un registre caché du processeur
pour chaque selecteur de segment il y a un registre caché qui contient la limite du segment, en mode réel la limite n'est pas modifié mais en mode protégé ce registre est chargé avec la valeur contenue dans le descripteur de segment

en fait dans mortimer j'essaye de coder les drivers moi même, pour le moment j'ai déja codé des pilote pour le clavier, les port com, le compteur (un 8??? je me rapelle plus), et le disque dur. il me reste le lecteur disquette, le cdrom et le port lpt pour avoir un bon petit système de base

je cherche aussi a créer un système de fichier propre a mon os (pour le moment j'uttilise fat12 mais c'est pas terrible, ça limite aux disquettes)

question: qu'est ce qu'un effet de bord?
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008

En effet, c'est une bidouille, qui marche par hasard sur la plupart des PC réels, mais ça ne doit pas être exempt d'effet de bord. C'est probablement dû aux systèmes de caches mémoire et compagnies.

Évidemment, quand tu passe en 32/64 bits, tu peux plus compter sur le BIOS, et il faut coder tous les drivers. D'un autre coté, c'est un challenge amusant ;)
Messages postés
39
Date d'inscription
lundi 13 novembre 2000
Statut
Membre
Dernière intervention
5 juin 2009

lorsque que l'on charge un selecteur de segment avec une limite de 4Go et que l'on revient en mode réel les limite reste 4Go! (sous réserve que j'ai bien comprit)

en fait le système a été conçu pour le mode réel et j'en prépare un en mode protégé, là c'est une bidouille pour avoir 4Go de donnée
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008

Tu n'as pas besoin de modifier le registre cr0 alors. Je n'avais pas vu que tu activais le mode protégé avant de... le désactiver. C'est inutile. Ne me dis pas que t'espère que cs reste en mode protégé. C'est un effet de bord sur les machines réelle, pas dans les émulateurs.

Par contre, tu peux effectivement passer en mode protéger, mais ne pas activer le mode 32 bit du cpu. Ainsi, tu reste en mode réel, mais avec des adresse 32 bit... jusqu'au moment où tu feras un farjump avec selecteur de segment.
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.