begin process at 2010 02 09 20:57:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Systeme

 > "MORTIMER": UN HOBBY OS

"MORTIMER": UN HOBBY OS


 Information sur la source

Note :
Aucune note
Catégorie :Systeme Classé sous :os, fat, commande Niveau :Initié Date de création :03/05/2008 Date de mise à jour :01/02/2009 18:33:43 Vu / téléchargé :4 078 / 170

Auteur : bofur

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

03 mai 2008 15:48:05 :
j'ai rajouté des explication
14 mai 2008 14:58:19 :
quelques corrections création de lisezmoi.txt rajout des programmes keyboard et clavier(gestion des codes touche)
28 mai 2008 15:13:39 :
mode réel en Flat! gestion du clavier allemand
30 mai 2008 14:24:46 :
j'ai rajouté une image de la disquette et rassemblé les programme de configuration de clavier en un seul: CLAV (tapez clav/? pour avoir les type de clavier disponible) avec rajout des clavier belge, canadien et suisse
27 août 2008 13:01:19 :
correction orthographique
01 février 2009 18:33:44 :
version 0.9

 Sources du même auteur

Source avec Zip TESTEUR DE COMPATIBILITTÉ VESA (SUPER VGA)
Source avec Zip BOOT DEPUIS UNE DISQUETTE FORMATTÉ DOS

 Sources de la même categorie

DÉPLACEMENT D'UN RÉCTANGLE ROUGE A L'AIDE DE LA SOURIS par KIMI1632
Source avec Zip SCHEDULEUR TEST par patatalo
Source avec Zip Source avec une capture LIVE CD OMF par patatalo
Source avec Zip Source avec une capture LE SYSTÈME D'EXPLOITATION LOGRAM par steckdenis
SOURIS, BOUTONS, CURSEUR par PCBill

 Sources en rapport avec celle ci

Source avec Zip COMMENT FAIRE UN LIVECD par aloneinthedark
Source avec Zip BOOT DEPUIS UNE DISQUETTE FORMATTÉ DOS par bofur
Source avec Zip [WIN32ASM] ARGUMENTS LIGNE DE COMMANDE par Dean

Commentaires et avis

Commentaire de bofur le 03/05/2008 15:53:16

j'ai oublier de dire le plus important
pour tester les programme: copier le dossier "acopier" dans une disquette vide et executer amorc4 du répertoire "uttilitaire"

et ensuite rebooter avec la disquette dans le lecteur

Commentaire de steckdenis le 03/05/2008 20:03:32

Bonjour,

Bravo pour ce magnifique système d'exploitation, certe simple, mais complet (gestion des applications et API). Les sources sont bien, même si pas beaucoup commentées, et le principe est bien trouvé. J'aime bien l'interface d'appel des fonctions systèmes, directement par des call, même si une petite manipulation de la table des INT pourrait rendre cet OS plus comptatible avec ses futures version.

En tout cas très bonne source, et bonne continuation.

Commentaire de steckdenis le 30/05/2008 14:53:52

Bonjour,

J'ai t?l?charg? l'image IMG.BIN et je l'ai lanc?e dans Qemu, en mode disquette.

L'OS d?marre, affiche le caract?re ">", puis bloque. Quand je tappe sur des touches, elles ne s'affichent pas.

Pouvez-vous me dire si le probl?me est connu ou si c'est un bug.

A plus.

Commentaire de bofur le 30/05/2008 15:05:05

c'est un bug inconnue car je n'uttilise pas d'emulateur
je ne sait pas d'ou ça pet venir mais je vais chercher

hypothèse: le pic émulé n'as pas put etre modifié par mortimer et les irq pointe au mauvais endroit

Commentaire de bofur le 18/06/2008 21:52:14

j'ai cherché et j'ai pas trouvé
je l'ai aussi testé sur qemu et j'ais eu le meme résultat
je l'ai testé sur plein de vrai ordi et j'ai eu aucun bug de ce genre
je sèche


Commentaire de Bombela le 28/07/2008 10:24:45

Salut,

Dans SYST.ASL:

Le passage en mode protégé peut être corrigé comme suis :

Original :

mov cx,8
mov eax,cr0
mov ebx,eax
or ebx,1
jmp $+2
mov cr0,ebx ;passe en mode protégé
mov ds,cx
mov es,cx
mov fs,cx
mov gs,cx
mov cr0,eax ;mode en mode réel flat ;
               ^^^^^^^^^^^^^ Ceci ne veut rien dire, le mode flat, c'est une organisation de la mémoire qui consiste à avor deux segement englobant chacun toute la RAM, un pour le code, un pour les données. En réalité à ce moment là, tu demande au CPU de passer en mode protégé, c'est à dire que tu va pouvoir profiter des fonctionnalités de droits et autres sur les pages mémoires.
jmp $+2

Correction:

; Indique au CPU de passer en mode protégé.
mov eax, cr0
or ax, 1
mov cr0, eax

; Réinitialise le segment de code.
; un jmp $2 marche aussi, mais je trouve plus propre d'indiquer clairement ce que l'on fait.
; Ce saut va forcer le processeur à vérifier le registre cs, et charger dedans le segment de code comme définit dans la gdt. Nous avons donc accès  à 4go de ram, tout en étant encore en mode d'instruction 16bits.
jmp .CS_OK
.CS_OK

; Mise en place des selecteurs de DS, ES, FS, GS et SS.
mov ax, 8
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ss, ax

; Plus bas, le "jmp 1000h:0000h" passera le CPU en mode d'instruction 32 bit.

Au sujet de tes problèmes de boot dans un émulateur, essaye d'intervertir l'ordre du chargement de la GDT et l'activation de la ligne A20. Cela parait complètement irrationnel, mais un vague souvenir d'avoir eu ce problème.

Commentaire de bofur le 28/07/2008 14:45:29

en fait le but de ce bout de code n'est pas de passer en mode protégé mais de débloquer la taille des segment de données de 64Ko à 4Go

pour la compatibilité avec l'emulateur je vais voir mais c'est pas vraiment ma priorité

Commentaire de Bombela le 29/07/2008 00:36:56

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.

Commentaire de bofur le 29/07/2008 09:05:49

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

Commentaire de Bombela le 29/07/2008 17:07:18

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 ;)

Commentaire de bofur le 30/07/2008 08:08:46

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?    

Commentaire de Bombela le 30/07/2008 13:49:33

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Cherche développeurs asm pour OS [ par Shinji ] Salut, je cherche des gens intéressés par le développement d'un système d'exploitation sur x86 en asm (pour commencer).J'essaie seul pour le moment et Programmation d'un os [ par aladdin ] je suis developpeur d'un mini OS 16bits pr l'instant, et jaimerais bien savoir si qqn connet comment on peut obtenir des information systeme en mode r Partition ntfs et fat [ par phoenix1969asm ] Salut je souhaiterais pouvoir activer ou desactiver une partion de mon disque dur ... que se soit une partition fat ou ntfs ... et en MASMje remercie Creation commande port série [ par hypotamtam ] Bonjours, je suis novice dans l'electronique et je voudrais savoir si quelqu'un pourrais m'aide ou me donner des liens internet.Je souhaiterai juste s Projet X-OS (un mini système d'exploitation 16/32bits) [ par aladdin ] je suis entrain de développer un mini OS en 16/32 bits (surtout 32bits)et j'aimerais avoir des idées des propositions, et de participation au developp Boot / Os [ par the_best ] Qui peut m'aider ??!!:j'ai envie de faire un os mais je ne sais pas coment rendre une disquette bootale et la faire executer mon noyeau.Qui peut me t OS sur CDROM [ par MagicVirus ] Salut,je suis entrain d'essayer de developper un OS, j'arrive a booter sur disquette, mais j'aimerai savoir comment on fait pour booter sur un CD ( et Microbes Os alternatif [ par SystemOfAXav ] Salut, Microbes est un projet d'OS alternatif que j'ai démarré il ya quelques jours . Dont le but est d'apprendre le fonctionnement du PC et d'un syst la commande pop [ par The_Sin ] Bonjour,ma question va paraitre débile mais POP SI ça sert à quoi? merci d'avance compilateur Multi-OS [ par frobinet ] Bonjour,Je redéveloppe actuellement en Assembleur 32 (MASM32) la plupart de mes logiciels écrit initialement en Visual Basic (pour des problèmes de ra


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales