Précédent   Forum du club des développeurs et IT Pro > Autres langages > Assembleur > Programmation d'OS
Programmation d'OS Programmation de systèmes d'exploitation
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2010, 10h25   #1
golden boy
Membre confirmé
 
Avatar de golden boy
 
Homme
Étudiant
Inscription : 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 : 224
Points : 224
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 :}
golden boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 16h49   #2
Forthman
Membre expérimenté
 
Avatar de Forthman
 
Homme François
conception mécanique
Inscription : janvier 2005
Messages : 330
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 37
Localisation : France, Tarn et Garonne (Midi Pyrénées)

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

Informations forums :
Inscription : janvier 2005
Messages : 330
Points : 532
Points : 532
Citation:
* Déjà, ai-je tout bon pour ci-dessus ?
C'est pas mal

Citation:
* 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

Citation:
* 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

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

a+ François
Forthman est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/12/2010, 19h15   #3
golden boy
Membre confirmé
 
Avatar de golden boy
 
Homme
Étudiant
Inscription : 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 : 224
Points : 224
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 !
golden boy est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2010, 09h18   #4
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 078
Points : 11 078
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.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/12/2010, 17h09   #5
golden boy
Membre confirmé
 
Avatar de golden boy
 
Homme
Étudiant
Inscription : 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 : 224
Points : 224
Merci, en effet là je comprends bien la chose. Et au fait, vous savez si un EFI fonctionnerait pareil qu'un BIOS à ce niveau ?
golden boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 18h30   #6
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 078
Points : 11 078
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.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2010, 18h49   #7
golden boy
Membre confirmé
 
Avatar de golden boy
 
Homme
Étudiant
Inscription : 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 : 224
Points : 224
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 :)
golden boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h20.


 
 
 
 
Partenaires

Hébergement Web