IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation d'OS Assembleur Discussion :

Utilité et contenu d'un secteur de boot


Sujet :

Programmation d'OS Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut Utilité et contenu d'un secteur de boot
    Salut
    Alors voila, je ne comprends pas ...
    À quoi sert un BOOT ? Et qu'es-t-ce qu'il contient ?

    Je ne comprends pas pourquoi on ne peut pas directement écrire un programme quelconque a la place du boot vu que toutes les commandes utilisées par l'assembleur son déjà reconnues par le pross...

    prenons l'exemple de ce programme tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [BITS 16]
    [ORG 0x100]
    debut:
    mov ah, 0x09
    mov dx, message
    int 0x21
    ret
    message: db "COUCOU$"
    Si on l'exécute dans un fenêtre MS-DOS sur Windows par exemple... ça marche, on voie le message "COUCOU" apparaître...
    Par contre pourquoi il n'y a pas de message sur l’écran si on met le binaire dans le secteur boot d'une disquette et qu’on démarre dessus ?
    Qu’es qu'y a changé entre les deux ?

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 84
    Par défaut
    Salut,

    1- Ton code ne peut pas etre executer par le BIOS car il ne se termine pas par '55AA' aux 2 derniers octets du boot.

    2- Le fait que le boot existe viens du fait que nous devons trainer depuis +20ans une compatibilité avec les vieux logiciels.

    3- En general un secteur de boot verifie l'integrite de ton disque afin de verifier si celui ci contient bien les fichiers necessaires au demarrage du systeme, ceraints boot passe aussi le systeme en Mode Protegé.

    4- Le BIOS charge le boot (512 octets) a l'adresse 7c00h puis verifie si celui ci se termine par '55AA' sinon il continu sur les autres disques defini pour le boot dans le BIOS.

    Si tu as d'autres questions, n'hesite pas.

  3. #3
    Membre confirmé
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Par défaut
    Je rajoute que l'interruption int 0x21 est une interruption DOS et que donc elle ne peut être excecutée comme telle que lorsque DOS est chargé (donc pas au boot).

    Au boot il faut écrire directement dans la mémoire video texte (qui commence à B800:0000)
    M'en demande pas plus là dessus je suis bloqué par un segmentation fault et personne m'a encore repondus dans mon post

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Par défaut
    Au boot tu peux aussi utiliser les interruptions du BIOS, qui te permettent également d'afficher des caractères à l'ecran....

    @+

  5. #5
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    Merci pour vos réponses =)
    Donc si j'ai bien compris, pour que le pc boot sur la disquette, il suffit que celle ci termine par '55AA' et que les instructions utilisé ne soit pas des interruptions DOS.

    J'ai encore quelque petites questions...
    Comment le boot appelle les autres programmes qui ne font pas partie du boot ? ou plutot comment reconnaître un boot d’un programme normal ?
    Un boot ne pourrait t’il pas juste contenir l'appelle d’un programme normal ?

    Merci

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 84
    Par défaut
    En fait c'est exactement ce que fais un boot, en general il va chargé un autre programme (plus gros) et lui donné la main.

    Mais un boot dois aussi etre capable de dire a l'utilisateur que le disque en question n'est pas bootable.

    Ex: Quand tu crees une disquette de boot DOS le systeme copie sur le disque le fichier io.sys et ??? (je ne sais plus), si ces fichiers ne sont pas presents sur le disque a l'endroit attendu alors la disquette DOS n'est pas bootable. Si par contre les fichiers sont presents le boot les charge en memoire et leur donne la main.

  7. #7
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    Ho ! ok, merci... Alors il serait possible de faire un boot generique donnent la main au fichier debut.bin si il est present ...
    mais, es que ce fichier "debut.bin" dans cette exemple pour étre ecrit en C ? il n'y aura pas des problemme de DLL, LIB ou autre ?

    Merci

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 84
    Par défaut
    Oui c'est tout a fait possible, le seul probleme c'est que tu dois etre capable de le trouver et de le charger.

    Ainsi il te faudra savoir sa taille et le(s) secteur(s) ou il se trouve sur le disque.

    Pour info le boot qui est ecris sur les D7 quand tu le formatte sous DOS/Win et toujours le meme, il est generique.

  9. #9
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    ok... mais, he... Seul son emplacement sur le disque importe non ?
    En quoi la taille intervient elle ?

    Merci

  10. #10
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 84
    Par défaut
    et bien les commandes te permettant de charger des secteurs de disque en memoire demande un nombre de secteur a chargé, si tu ne connais pas la taille du fichier tu ne sauras pas le nombre de secteurs a chargé.

  11. #11
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    Ok, merci pour toutes ces infos ;^)

Discussions similaires

  1. Secteur de boot
    Par sheik5757 dans le forum Programmation d'OS
    Réponses: 6
    Dernier message: 01/09/2008, 12h00
  2. Secteur de boot et kernel
    Par ADABLA dans le forum Assembleur
    Réponses: 3
    Dernier message: 20/02/2008, 12h22
  3. Secteur de boot.
    Par swingNJava dans le forum C
    Réponses: 3
    Dernier message: 26/11/2007, 00h24
  4. Virus dans le secteur de Boot
    Par JACQUEY dans le forum Sécurité
    Réponses: 11
    Dernier message: 08/11/2006, 08h20
  5. Problème avec un secteur de boot en mode protégé...
    Par Nico*3-3 dans le forum Assembleur
    Réponses: 17
    Dernier message: 10/02/2005, 19h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo