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 :

Création d'un OS / Boot / Noyau


Sujet :

Programmation d'OS Assembleur

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut Création d'un OS / Boot / Noyau
    Bonjour !
    J'ai besoin d'aide pour créer un os.
    Il faudrait que l'on m'explique comment :
    • 1) rendre une disquette bootable
      2) Comment charger le noyeau
      3) Comment lancer le noyeau

    Comme je suis débutant, ce serai sympa de mette des comentaires a chaque ligne de code que vous poster.
    MERCI DE VOTRE AIDE !!!!

  2. #2
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 29
    Par défaut
    tu veux du code????
    y a pas de code ici ; que des urls:http://inferno.cs.univ-paris8.fr/~am...utorial00.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut
    trop parfait !

  4. #4
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Par défaut
    tu peux jeter un coup d'oeil à http://delphine.sf.net

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut
    Merci !!!!!!!!!!!!

  6. #6
    Membre confirmé Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Par défaut
    Pour avoir utilisé la methode de Boso kernel pour charger un OS sur une disquette (rendre un disquette bootable),
    Je sais que la methode ne me convenait qu'a moitié : c'est du bricolage,
    Windows n'écraira jamais le premier secteur d'une disquette avec TON os,
    si tu as la chance d'avoir linux, il y a une commande adéquate :
    dd if=[fichier a inscrire] of=[destination]
    voilà, je fais bref, mais le cas échéant, sous linux, man est ton ami...
    Bon code!

  7. #7
    Membre confirmé Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Par défaut
    Inutile que par cette methode, c'est le bios (ou le chargeur lilo/grub)
    qui se charge de mettre ton prog en ram et de l'executter....
    attention cependant : je crois que grub passe en mode protege pour toi...
    JE RECOMMANDE FORTEMENT A TOUT LE MONDE
    http://sos.enix.org/wiki/wakka.php?wiki=PagePrincipale
    c'est une addresse que l'on a pas encore cité trente fois,
    et qui, meme si elle est ambiance linux, donc C,
    est tout a fait adaptée ! 8)
    Bon code !

  8. #8
    Membre confirmé

    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Par défaut
    Salut,
    Bon déjà, j'imagine que tu veux faire un OS en rmode, c'est de loin ce qu'il y a de plus simple si tu débutes et surtout tu pourra utiliser les interruptions du BIOS.
    Je te conseille de faire toi même un petit programme qui écrira sur les secteurs d'une disquette avant d'utiliser des logiciels tout fait. Ca te permettera de bien te familiariser avec les interruptions du bios et de comprendre comment marche une disquette.
    Si tu bosses sous windows, télécharge HexWorkShop, tu pourras voire directement les données sur n'importe quel secteur de ta disquette.
    Renseigne toi pour savoir comment le BIOS boot et détecte qu'il faut booter sur la disquette.
    Pour rendre une disquette bootable, il faut qu'à la fin du premier secteur, il y ait ce nombre: 0x55FF (ou un truc comme ça). En suite, le BIOS va se charger de charger en mémoire ce premier secteur de la disquette à l'adresse 0x7C00 (je crois) et passe la main à ce bout de code (qui ne doit donc pas exéder 510 octets: car un secteur fait 512 octets - 2 octets pour le nombre magic)
    Mais fait quand même une recherche parceque je ne suis plus trop sûr de ce que je viens de dire.

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 339
    Par défaut
    Effectivement, il y a une petite erreur dans ce qu'à dit Albus, c'est pas 0x55FF mais 0AA55h (autrement dit 0xAA55) mais tout le monde fait des erreurs même les plus vieux

    Un petit conseil supplémentaire si tu fais un OS en mode réel(rmode), essaye de trouver avec ton ami Google la "Bios Data Area" (ou BDA), elle te donne toutes les zones qui sont potentienllement utilisées par les BIOS donc des zones mémoires où tu ne devras rien charger du tout (quand tu sera à un OS de plus de 510 octets)

    Bienvenu dans le mode des OS, c'est un apprentissage long et périlleux, où le courage et le courage et le courage (et les produit dopants aussi ) sont de rigueur dès qu'on veut sortir un peu de l'ordinaire

  10. #10
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    Le premier site donné dans ce post est vraiment très intéressant.
    Je me pose tout de même quelques questions :

    dd if=[fichier a inscrire] of=[destination]
    Ca ne rend pas la disquette bootable il me semble, si ?

    Concernant bochs, je cherche encore comment choisir le fichier sur lequel il boot. Je suis en train de lire la doc et je pense que c'est en rapport avec le fichier de config : bochsrc. Si quelqu'un savait comment faire, je pourrais gagner un peu de temps. Merci

  11. #11
    Membre expérimenté
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Par défaut
    dd est une commende qui permet d'ecrire directement sur un secteur si on specifie /dev/fd0 en sortie
    apres si tu met n'inportequoi sur la diskette forcement ca ne boot pa

  12. #12
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    Tu veux dire que cette commande écrit sur le premier secteur et première piste (face 0) de la disquette si celle ci est vierge ?
    Donc, je suppose qu'il faut ensuite mettre son programme de boot avec 0AA55h et c'est bon. Ok, je vais essayer. Merci
    Pour windows, je crois bien que je vais me faire mon propre programme pour écrire à un secteur donné (j'ai déjà fait un programme pour la lecture, donc ca devrait pas être trop difficile ) car j'en ai pas encore trouvé...

  13. #13
    Membre expérimenté
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Par défaut
    Citation Envoyé par SteelBox
    Tu veux dire que cette commande écrit sur le premier secteur et première piste (face 0) de la disquette si celle ci est vierge ?
    meme si elle est pas vierge...
    consulte les pages man car il faut preciser (meme si ca doit marché par defaut dans le cas d'un fichier (if) de 512 octets) plusieurs parametres

    BonDev'

  14. #14
    Membre éclairé Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Par défaut
    D'accord, je vais me renseigner alors...

    Si quelqu'un connait l'équivalent de dd sous windows, je suis preneur ...(même si la commande dd de linux me satisfais pleinement )
    Merci

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2004
    Messages : 12
    Par défaut
    De toute façon j'ai 5 ordi dont 1 avec Linux donc la comande dd sera utilisable...

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 10
    Par défaut
    Pour rendre une disquette bootable, il faut qu'à la fin du premier secteur, il y ait ce nombre: 0xAA55
    Heu le nombre magique jusqu'a preuve du contraire ne sert a rien... le bios s'en tape comme de l'an 40... si tu fait un bouzouf compatible fat12... alors met le mais sinon... bah... c'est pas obligé.

  17. #17
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    339
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 339
    Par défaut
    Il est vrai que le nombre magique ne sert à rien aussi avec mon BIOS par contre j'ai testé avec un autre vieux BIOS (époque du pentium 1) et lui il lui fallait ce nombre magique. C'est juste pour être sûr de la compatibilité des systèmes. D'ailleurs ce nombre magique, d'après ce que j'ai lu, est aussi obligatoire pour un disque dur mais là j'en sais pas plus et je retrouve pas où j'ai lu ça....

  18. #18
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 055
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par le mage tophinus
    D'ailleurs ce nombre magique, d'après ce que j'ai lu, est aussi obligatoire pour un disque dur
    Sur les anciens BIOS, en effet, que ce soit pour un lecteur de disquette ou un disque dur, le 1er secteur est chargé à l'adresse 0000:7C00.

    Si le code AA55h est détecté, cela indique qu'il s'agit d'un secteur exécutable et le BIOS fait un branchement vers le 1er octet du secteur qui a été chargé (code d'amorçage).
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  19. #19
    Invité de passage
    Inscrit en
    Août 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 1
    Par défaut
    Citation Envoyé par Arnaudv6
    Pour avoir utilisé la methode de Boso kernel pour charger un OS sur une disquette (rendre un disquette bootable),
    Je sais que la methode ne me convenait qu'a moitié : c'est du bricolage,
    Windows n'écraira jamais le premier secteur d'une disquette avec TON os,
    si tu as la chance d'avoir linux, il y a une commande adéquate :
    dd if=[fichier a inscrire] of=[destination]
    voilà, je fais bref, mais le cas échéant, sous linux, man est ton ami...
    Bon code!
    Tu peux ecrire comme avec linux sur le premier secteur de la diskette avec la commande debug

  20. #20
    Membre confirmé Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Par défaut
    Steel Box,
    si tu as la chance d'avoir linux,
    tu verras que dd permet aussi de copier au debut d'une partition de disk
    (fais gaffe : c'est comme si tu formattais cette patoche),
    ca vaut vraiment le coup, pour avoir son OS
    aux cotés de linux et windobe le cas echeant dans lilo (ou grub)

Discussions similaires

  1. Explication d'un code assembleur et création d'un module du noyau
    Par thoron67 dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 29/04/2011, 15h53
  2. [Mandriva] Création d'un CD boot personnalisé
    Par franchouze dans le forum Administration système
    Réponses: 0
    Dernier message: 06/08/2010, 15h19
  3. Création d'un mini boot loader
    Par Alucard95 dans le forum Programmation d'OS
    Réponses: 14
    Dernier message: 08/02/2009, 18h42
  4. Problème de boot sur nouveau noyau
    Par Grett dans le forum Administration système
    Réponses: 1
    Dernier message: 20/11/2007, 18h02
  5. création d'un multi boot
    Par GritNatz dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 18/01/2005, 23h23

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