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 OS] Comment compiler un bootsector + un kernel ???


Sujet :

Programmation d'OS Assembleur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [Création OS] Comment compiler un bootsector + un kernel ???
    Salut à tous !

    J'essaie de faire un petit OS mais j'ai quelques soucis. Quand j'ai commencé mon OS je n'avais qu'un bootsector qui affichait un message. Ensuite j'ai décidé de créer un bootsector + un kernel.

    J'ai pas eu trop de problèmes au niveau de la programmation. Après compilation (NASM) j'obtiens mes deux fichiers compilés. J'ai pensé à les mettre sur disquette avec Rawwrite mais quand je boot sur ma disquette ça ne fonctionne pas. Est-ce que c'est juste comment je fais ??? Faut-il bien mettre les deux fichiers assemblés sur la disquette ???

    Merci d'avance !

    ++

  2. #2
    Invité
    Invité(e)
    Par défaut
    Ta question manque un peu (beaucoup) de precision.

    Tu utilise quel systeme de fichier sur ta disquette?
    Tu load comment ton kernel en memoire?
    Quand tu le load, est tu en real mode?

    Ensuite, quelle est la base address de ton kernel? (il faut etre certain que tu le load bien a cette adresse)

    Si ca peux t'aider, dans mon cas j'utilisais le fs fat12 sur la disquette, j'avais mon boot sector qui initialise le pmode, et charge le kernel (un binaire flat) a l'adresse 0x20000. Le code du boot sector est responsable de lire et "decoder" le contenu de la fat pour trouver le kernel sur la disquette.

    Mais, tu peux faire encore plus simple en faisant comme suit:
    ecrire le boot sector sur le premier secteur, et ton kernel a partir du 2e. Pour ce faire j'utiliserais dd

    Ou encore ce que plusieurs conseillent (methode que j'ai finit par utiliser moi aussi) est de ne pas se casser la tete avec le boot sector, et en utiliser un epouve et fiable, question de se consacrer au kernel tel quel. J'utilise grub.

    Bonne chance, j'espere avoir repondu a ta question. Hesite pas a donner plus de details si ce n'est pas le cas

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Est-il possible de placer notre fichier du kernel en binaire pur sur un secteur du disque sans système de fichier ? Diskette ou hdd, de le charger en mémoire avec l'adresse sur le hdd ou il se trouve ? Car si on fait son propre système de fichier, il faudrait dabord créer un programme Format pour formater le disque au nouveau système de fichier et ensuite y placer le fichier quelque part. Il faut donc implanter la lecture de ce nouveau système de fichier dans le bootloader puis finalement aller chercher le kernel au bon endroit ? Ce qui signifie que les bootloader supporte divers système de fichiers différents ? Il me semble que ça fait lourd pour un code d'au maximum 512 octets

    De plus, une fois le système de fichiers fait avec format. Comment je copie mon fichier de kernel sur le disque ? Je dois me créer une programme copy en binaire pur pour pouvoir copier mon fichier du format FAT32 sur mon nouveau format ?

  4. #4
    sdx
    sdx est déconnecté
    Membre régulier Avatar de sdx
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 106
    Points : 90
    Points
    90
    Par défaut
    Est-il possible de placer notre fichier du kernel en binaire pur sur un secteur du disque sans système de fichier ?
    Oui.

    De plus, une fois le système de fichiers fait avec format. Comment je copie mon fichier de kernel sur le disque ? Je dois me créer une programme copy en binaire pur pour pouvoir copier mon fichier du format FAT32 sur mon nouveau format ?
    Non, toutes ces opérations peuvent être faites depuis un autre OS, genre Windows, Linux ...

    Quand tu es sur un OS qui fonctionne déjà, utilise un programme genre debug (DOS) ou dd (Linux) pour copier tes binaires à des endroits précis sur un disque (ou une disquette).

Discussions similaires

  1. comment compiler un module kernel ?
    Par rufa11 dans le forum RedHat / CentOS / Fedora
    Réponses: 14
    Dernier message: 17/09/2008, 15h32
  2. Réponses: 11
    Dernier message: 10/02/2007, 01h56
  3. [CR] Comment compiler un etat ?
    Par glachant dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 20/02/2004, 17h19
  4. Comment compiler un projet en ligne de commande ?
    Par mathieutlse dans le forum EDI
    Réponses: 3
    Dernier message: 11/07/2003, 13h32
  5. Réponses: 2
    Dernier message: 05/12/2002, 16h55

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