secteur boot sur cd

secteur boot sur cd - ASM - Programmation

Marsh Posté le 15-02-2008 à 22:18:17    

Bonjour a tous,
 
j'ai essayé quelques tutoriels sur la creation d'un secteur boot et d'un petit kernel (les exemple ne manque pas sur le net).
 
Mon probleme c'est de faire fonctionner le noyau (kernel).
Je m'explique, j'ai deja creer le secteur boot 512 octet, et le noyau(kernel) de 12 octet.
 
J'utilise BOCHS pour mes essaie.
 
Lorsque je lance bochs en mettant comme chemin de la disquette dans son fichier de configuration le fichier boot.bin, ca fonctionne bien. La disquette boot et m'affiche un message.
 
Mais dans le code du secteur boot, je dois charger le kernel a partir d'un cylindre, secteur, tete situé sur une unité (ici disquette). Le probleme c'est que le kernel et le secteur boot ne sont pa dans un fichier image disquette de bochs.
 
J'ai pensée a graver le secteur boot sur un cd RW su le 1er secteur et le kernel sur le 2eme secteur (comme il est de petite taille) ainsi je pourrai booter du CD et charger mon kernel (avec les interruption 13 et les fonction de lecture de disque je crois). mais comment graver ces deux fichier dans les emplacement adequats sur le CD, je sais pas du tout (est ce la bonne solution???).
 
 
Alors si il y a moyen de faire un fichier unique pour le lancer sous bochs et faire mes test, je suis preneur de la solution
 
Si je dois graver sur Cd et faire mes test, comment dois je m'y prendre?
 
merci de me donner un coup de main

Reply

Marsh Posté le 15-02-2008 à 22:18:17   

Reply

Marsh Posté le 19-02-2008 à 03:13:02    

le secteur de boot d'un cd ne fait pas 512 octets.
 
pour en savoir plus, renseigne toi directement sur les normes inherentes aux cdfs, cdrom, iso9660 etc... là aussi, il y a plein de docs: http://www.osdever.net/cottontail/
 

Reply

Marsh Posté le 19-02-2008 à 09:32:34    

Merci edfed. je ne connaissait pas ce lien. Il a beacoup d'information mais disons que la plus part sont en anglais (j'ai tout de meme essayé de comprendre. MAis je n'ai pas vu un tutoriel sur comment booter et charger un OS avec le bios. Soit j'ai pas bien regarder ou le site ne propose que des spécification. (desolé mais j'aimerai vraiment comprendre simplement comment ca se passe spour le cd). J'ai commencer sur la disquette et ca marche.
 
En fait mes question:
--faire le secteur boot (sur combien d'octet pour cd)
--Faut il utiliser un graveur genre nero pour graver le boot.bin et kernel
--comment acceder au kernel (noyau) sur le cd et le charger
--comment lire et charger une zone memoire du cd
 
je m'excsue si ces question paraissent stupide et merci de m'aider

Reply

Marsh Posté le 19-02-2008 à 09:34:05    

S'il ya en plus un exemple ce serait parfait (meme si c'est juste un morceau de code ou un tutoriel expliquant pas a pas la procedure)

Reply

Marsh Posté le 05-07-2008 à 17:40:19    

Bonjour, en ce moment j'ai les memes questions que sajaris, j'ai cherché de la doc sur internet, mais j'ai rien trouvé concernant les bootsector et les CD
 
Vous sauriez ou chercher ou auriez un tutoriel expliquant les bases svp
 
 
Merci

Reply

Marsh Posté le 06-07-2008 à 13:00:24    

salut mat000
depuis j'ai trouvé et meme implementé un CDLive mais ma prise en charge du mode protégé n'est pas au point(en fait c'est la table des interruption qui me joue des tours)
tu peut trouve des source sur codes-sources et c'est fait par un nommé PATATALO(juste pour info) courage, c'est assez fastidieu mais tres interessant

Reply

Marsh Posté le 06-07-2008 à 18:30:43    

Merci sajaris mais est-ce que le mode protégé est differant a mettre en place sur un cd ? ou est-ce que quand on écrit times 510-($-$$) db 0, les secteurs sont plus grand que 512 octets, est quelle est la signature (pour les disquettes c'est 0xAA55) pour un cd ?
 
 
Merci

Reply

Marsh Posté le 07-07-2008 à 09:08:01    

en fait le mode protege ne se met pas en place sur un cd, le code est sur le cd, mais tout est en memoire, tu travail plus en memoire que sur le cd ou la disquette,
 
pour un cd, pour la norme "el torito"(recherche par la), la taille d'un secteur est de 2048 et non de 512. la signature est pratiquemement la meme. Donc ton bootloader ne fait plus 512 mais 2048 (tu dois donc le remplir comme tel) ensuite pour le mettre sur CD, on legrave pas automatiquement, on cree une image de cd (tjr en programamtion, c'est cela qui est interessant, car tu vois comment sont en general les image bin ou iso)
 
une fois ton image crée tu peut le graver sur cd, il devient alors bootable.

Reply

Marsh Posté le 13-07-2008 à 20:00:34    

on systeme qui se demarre depuis une disquette ne bootera jamais sur CD sans reecrire les routines d'I/O, parce que les interruptions ne sont pas les memes pour le lecteur de disquette et optique.
 

Citation :

j'ai rien trouvé concernant les bootsector et les CD


le nom: ISOLINUX
 
autrement si vous travaillez sous Linux, la commande dd est tres intéressante pour la copie brut sur des secteurs déterminés.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed