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 :

Théorie avant la pratique : le commencement. secteur de boot


Sujet :

Programmation d'OS Assembleur

  1. #1
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut Théorie avant la pratique : le commencement. secteur de boot
    Bonjour, comme c'est sûrement le fantasme de quasiment tous programmeurs (Bien que je ne me considère pas comme tel) je voudrais créer un petit noyau d'OS affichant mon prénom.

    J'ai déjà appris quelques trucs (Que en théorie) mais cela reste tout de même assez sombre, j'aimerais donc éclaircir tout cela avant de passer à la pratique.

    1. Il faut créer un secteur de boot en ASM, il doit faire 512 octets, il doit être chargé par le BIOS sur 0000:7C00 et enfin il doit avoir $AA55 je ne sais où. D'après ce que j'ai compris, il doit être exécutée en 16 bits en mode réel ?

    2. Il faut créer un kernel (En C dans mon cas, et c'est lui qui affichera mon message) qui doit être lancé par le secteur de boot ?


    • Déjà, ai-je tout bon pour ci-dessus ?
    • Je ne comprend pas beaucoup le coup du $AA55...
    • On peut faire le secteur de boot en 32 bits ?
    • Pourquoi 512 octets ?


    Merci d'avance de votre aide :}

  2. #2
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    * Déjà, ai-je tout bon pour ci-dessus ?
    C'est pas mal

    * Je ne comprend pas beaucoup le coup du $AA55...
    C'est une signature (qui se trouve sur les 2 derniers octets du secteur de boot
    et qui est "lue" par le BIOS avant d'exécuter le code

    * On peut faire le secteur de boot en 32 bits ?
    Par défaut le proc est en 16 bits au démarrage donc boot en 16 bits

    * Pourquoi 512 octets ?
    Parce qu'un secteur de boot est ... un secteur !
    et qu'un secteur de disque fait 512 octets

    a+ François

  3. #3
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut
    Bonsoir,

    désolé de ma réponse tardive (mais lycée oblige...) et surtout merci d'avoir répondu. je comprends enfin ces histoires de 512 octets et de $AA55 !

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    J'ajoute que la signature en fin de secteur de boot est nécessaire pour faire comprendre au BIOS que ledit secteur contient bien du code exécutable. Sans cette indication, un secteur contient toujours 512 octets, quels qu'ils soient. Ça peut être des 00, des F7, des FF, etc.

    Exécuter du code qui n'en est pas pourrait alors avoir des conséquences assez désastreuses.

  5. #5
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut
    Merci, en effet là je comprends bien la chose. Et au fait, vous savez si un EFI fonctionnerait pareil qu'un BIOS à ce niveau ?

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    C'est le contraire qui serait étonnant. Cela casserait définitivement la compatibilité avec tout ce qui existe jusqu'à maintenant. Donc, je pense que cela va perdurer au moins quelque temps.

  7. #7
    Membre actif Avatar de golden boy
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 120
    Points : 230
    Points
    230
    Par défaut
    Oui, c'est vrai que le contraire serait étonnant, je vais me renseigner la dessus, même si les EFI ne sont pas encore à l'ordre du jour (hélas !).

    Merci :)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche de Min et Max en théorie, mais en pratique ?
    Par dasycarpum dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 01/01/2012, 18h34
  2. BI entre la théorie et la pratique
    Par chagala dans le forum Contribuez
    Réponses: 0
    Dernier message: 01/03/2011, 23h39
  3. Réponses: 124
    Dernier message: 30/08/2010, 20h16
  4. Utilité et contenu d'un secteur de boot
    Par Ekinoks dans le forum Programmation d'OS
    Réponses: 10
    Dernier message: 14/04/2005, 22h39
  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