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 :

Programmation d'un mini-OS/kernel


Sujet :

Programmation d'OS Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de LeoBeutel
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 139
    Par défaut Programmation d'un mini-OS/kernel
    Bonsoir.

    Je m’appelle Léo Endor, 14 ans et programmeur en VB/BATCH/CPCDOSC+/C/ASM

    Je me suis attaqué a un défi: Programmer un mini-os/kernel.
    Je suis le tuto de Pepin: http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.TutoOS

    Malheureusement, au moment de passé a la partie de rechargé la GDT, je ne comprends plus comment on compile. En fait je comprend PLUS RIEN.
    J'ai déjà fait un mini-truc-quiressemblepastrop-kernel qui affiche JUSTE quelques messages. Mais pour le reste, ???.
    C'est pareil pour les autres parties! Je ne sais pas dans quel fichier il faut placer mon code!!

    Que faire?


    Cordialement,
    Léo Endor.

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 167
    Par défaut
    Pour commencer, sais tu ce qu'est la GDT, à quoi ça sert et comment ça marche ?

    que cherches tu as faire en rechargeant la GDT ?

    Tu as crée un programme qui boote ou s’exécute sur un OS existant ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre très actif
    Avatar de LeoBeutel
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 139
    Par défaut
    Merci de ta réponse.

    Enfaite, je m'en fous un peu de la GDT mais je ne comprends vraiment rien. Je ne sais pas ou placer le code dans mes fichiers.

    J'ai juste crée un bootloader, un mini-kernel qui affiche un message a l'écran et c'est tout.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut, pourrais tu poster ton projet ici pour voir d'ou vient ton problème ?

    Après quel est ton but, à quoi va ressembler ton OS.

    Voiçi un petit questionnaire que j'ai dréssé pour aider a se fixer cette objectif:

    • Mode texte ou mode graphique*.

    • 16 bit, 32 bit ou 64 bit.

    • Quel langage ? asm, asm/c, ...

    • Tester l'OS sur une vraie machine ou un emulateur**.

    • Quel OS utiliseras tu pour construire ton project

    • Quel est le cpu cible ?



    Et aussi lire sans modération les docs intel: http://www.intel.com/content/www/us/...r-manuals.html

    *:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Le mode texte est déjà mis aprés que le BIOS saute sur le bootloader au lieu du mode graphique.
     
    Pour utiliser le mode graphique, la seule façon est, avec cette configuration (rien), est d'utiliser le driver vesa (vbe) (implémenté dans le BIOS)
     
    Et même si l'organisation vesa (http://www.vesa.org/) ont stoppé le développement de leur driver, (le dernier est le VBE Core 3.0 [Sep. 1998]), ce driver peut tourner sur tous les gpu actuel et continue de l'être pour les futurs gpu aussi
    (Pour le voir, tu peux démarrer grub dans qemu, puis une fois que tu es dans le shell, tapes vbeprobe et ainsi tu vois tous les mode graphiques compatible avec la carte graphique)
     
    Malheureusement comme on ne peut gérer la RAM en mode flat en x64 (un unique tableau) ou je ne sais pas comment le faire, pas comme en 32 bit où on peut le gérer en flat mode. Donc ça sera un peu difficile de gérer vesa en 64 bit.
     
    Parce que pour accéder à la video RAM avec le driver vesa, on a besoin d'utiliser la méthode MMIO (Memory Mapped Input/Ouput) (zone mémoire qui est programmé à transférer ses bytes dans la mémoire/registre des autres hardware (gpu/imprimente/usb/...)), comme le PMIO (Port Mapped Input/Ouput) mais cela utilise les ports plutôt que la RAM)
    **:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Ca dépend de la capacité de ton cpu (pour la voir, entre la marque de ton cpu dans bing et tu choisis le premier lien (ark.intel)), puis tu regardes dans la section Instruction Set Extensions list)
     
    Et à propos de tester l'OS, tu peux choisir un émulateur comme qemu, bochs, .., mais je te mets en garde, c'est juste mieux de le tester via une vraie machine, pour la raison que même si un émulateur est performant, ce n'est pas à 100% identique d'une vraie machine.
     
    Donc en résumant, ton OS peut fonctionner dans qemu, mais pas sur une vraie machine et vice versa aussi (qemu ne supporte pas l'extension avx, idem pour bochs (enfin d'après mes tests)).
    Je poste ici deux sortes d'os (compile sous windows), l'un est en mode texte (x64) et l'autre en mode graphique (x86), pour le premier tu peux le tester avec qemu, mais ne touche pas à la souris pendant, sinon elle sera considérée comme un clavier
    Et pour l'autre, qemu ne marche pas, seulement avec une vraie machine:

    -http://wqaxs36.perso.sfr.fr/Project/...0_(64bits).zip

    Vesa driver documentation: http://wqaxs36.perso.sfr.fr/Project/...0Extension.zip

  5. #5
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Moi je pense que vu ton jeune age et surement ton peu expérience dans la programmation , ce genre exercice est particulièrement ardu même pour des programmeurs confirmés.
    Ce qui explique pour moi que tu ne comprend pas grand chose , il y a quand même aussi pas mal de connaissance a avoir sur l'architecture des ordinateurs pour bien comment fonctionne la création d'un OS sans s'amusé a bidoullé (donc de faire des chose qu'on ne comprend pas).

  6. #6
    Invité
    Invité(e)
    Par défaut
    Kannagi > Salut, personnellement j'ai 22 ans et je trouve qu'il a une chance incroyable à son âge de découvrir l'informatique de cette façon et avec beaucoup de ressources disponibles/accessibles facilement, j'aurais aimé être dans la même situation que lui.
    Malheureusement à cette période je n'ai commençer a apprendre que par le binaire

    Voilivoilou pour la contre-attaque
    Dernière modification par Invité ; 09/04/2015 à 19h08.

Discussions similaires

  1. programmation d'un mini-irc
    Par SeRiALP dans le forum IRC / mIRC
    Réponses: 10
    Dernier message: 25/04/2010, 19h05
  2. Réponses: 10
    Dernier message: 26/10/2006, 12h35
  3. Réponses: 4
    Dernier message: 09/10/2006, 22h12
  4. Réponses: 2
    Dernier message: 07/06/2006, 12h12

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