nono17pero
Messages postés5Date d'inscriptionmardi 28 décembre 2010StatutMembreDernière intervention 9 janvier 2011
-
8 janv. 2011 à 18:33
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 2014
-
9 janv. 2011 à 14:20
Bonjour à tous !
Je suis en train de programmer un petit OS en mdoe texte en langage C. Il devrait être achevé d'ici février, mais il me reste un détail règler.
Je n'arrive pas à écrire de secteur boot. Les tutoriels sont mals expliqués, et je ne trouve pas de code source compréhensible (en ASM, bien sur !).
Alors si quelqu'un s'y connait en Assembleur (NASM), il est plus que bienvenue !
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 9 janv. 2011 à 02:31
Le projet a pris plus de 6 mois, mais les connaissances pour y arriver, c'est l'histoire d'une vie.
Quand j'ai commencé, internet n'existait pas. Je me rappelerais toujours de mon premier livre sur la programmation système et de la personne bénie qui me l'a offert car il était bien trop cher pour ma propre bourse. Payer pous apprendre, c'est une idée de capitaliste sous développé.
Vous avez une chance innouie d'avoir accès à la bibliothèque phénoménale que représente internet car le plus gros travail est d'arriver à se documenter correctement sur les diverses spécifications.
"specification" est un mot qui t'apporteras beaucoup dans tes recherches mais tu en trouveras d'autres...
bon courage et, ...
@++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 9 janv. 2011 à 14:20
Je pense que cela devrait être possible a voir si un compilateur C peut compiler un binaire 16 bits à une adresse définie (0x7C00). De plus, le problème est qu'un code mbr est limité à (512-(4*16)-2) octets pour un hd/fd et 2048 pour un cd. Optimiser pour la taille sera peut-être nécessaire.
Le code C comprendra forcement de l'assembleur car le peripherique de boot est transmis dans le registre dx et seule une instruction asm peut le recuperer. De même que les appels a l'API du bios.
La table des partitions doit être également à une adresse fixe (0x1BE) suivie du nombre magic 0x55AA (ou AA55, je ne sais plus) dans le code C.
Si on peut produire un .com avec le compilateur, alors, cela doit être possible mais, a mon avis, cela sera beaucoup plus dur que de le coder directement en asm.