+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 710
    Points : 16 764
    Points
    16 764

    Par défaut [Tutoriel] Pépin OS : apprendre à réaliser son propre système d'exploitation

    Réaliser son propre système d'exploitation
    La base de la construction du noyau de Pépin OS

    Bonjour,

    Je vous présente un tutoriel de Michelizza :



    Programmer le noyau d'un système d'exploitation est un très bon moyen pour en comprendre le fonctionnement, et c'est dans cette optique que Michelizza a commencé le développement de Pépin. Ce tutoriel tente de guider le programmeur dans ses premiers pas en décortiquant la base de la réalisation d'un noyau et en en présentant les composantes élémentaires.


    Une partie du noyau est codée en Assembleur i386 et le reste est codé en langage C. La maîtrise de ce dernier ainsi que la connaissance des notions de base en Assembleur sont donc un préalable à la compréhension de ce tutoriel.

    À lire également :



    Et vous ?
    Que pensez-vous de ce tutoriel ?
    Avez-vous déjà touché à la réalisation d'un OS, ou seriez-vous tenté(e) de vous lancer ?
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2014
    Messages : 17
    Points : 21
    Points
    21

    Par défaut Excellent

    C'est en suivant ton tutoriel sur ton site que j'ai commencé le développement d'un OS, il m'a permis de comprendre certain mécanisme et de m'initier à la programmation d'un OS. Ce tuto à été un point de départ de qualité pour moi et je suis vraiment content de le retrouver sur ce site ! J'espère que ton excellent travail pourra en inspirer plus d'un.

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 710
    Points : 16 764
    Points
    16 764

    Par défaut

    Merci pour l'auteur.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre éprouvé

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    février 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : février 2004
    Messages : 488
    Points : 986
    Points
    986

    Par défaut

    Quel boulot! Bravo et merci du partage.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    décembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : décembre 2013
    Messages : 12
    Points : 0
    Points
    0

    Par défaut OS en assembleur 8086...

    Bonjour

    Du TRES bon travail mais je préfère l'asm sur 8086 au c

    Donc le site de MikeOS qui n'a pas la même approche ....et j'utilise qemu qui ne demande pas de fichier texte pour le paramétrer.

    Je suis sur Debian...qui n'est pas trop mauvais dans son genre...

    BozoKernel en assembleur est aussi excellent....


    Cordialement.

  6. #6
    Expert éminent
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 2 147
    Points : 6 166
    Points
    6 166

    Par défaut

    S'il y a bien un assembleur qui me donne envide d'écrire du C , c'est bel et bien le x86 :p
    Autant le M68000 et le 6502 je les trouve sympa a programmer en asm !

  7. #7
    Membre confirmé

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    juillet 2002
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juillet 2002
    Messages : 241
    Points : 574
    Points
    574

    Par défaut

    J'ai enfin pris le temps d'y jeter un œil, super tuto ! Bravo!

    Ça me donne envie de m'y remettre ... je vais encore manquer de sommeil ...
    portfolio - " Standards are awesome. Everyone should have one! "

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2010
    Messages : 117
    Points : 141
    Points
    141

    Par défaut

    salut,
    au niveau de cette partie, http://michelizza.developpez.com/rea...systeme/#LIV-C

    je n'arrive pas à comprendre pourquoi l'auteur a choisie ces valeur pour le DS : 0x10


    concernant maintenant le CS, je pense que le programme kernel est logé à l'adresse 0x1000 alors pourquoi il a fait : jmp dword 0x8:0x1000
    c'est quoi ce 0x8 et d'ou vient elle ? !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    next:
        mov ax, 0x10        ; segment de donne
        mov ds, ax
        mov fs, ax
        mov gs, ax
        mov es, ax
        mov ss, ax
        mov esp, 0x9F000    
     
        jmp dword 0x8:0x1000    ; réinitialise le segment de code
    merci

  9. #9
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 710
    Points : 16 764
    Points
    16 764

    Par défaut

    La valeur de DS correspond au descripteur de segment de données.

    L'instruction jmp dword 0x8:0x1000 permet de mettre à jour le TLB (Translation Lookaside Buffer), cache de la MMU.

    Relis-bien la partie 4 A.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  10. #10
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2010
    Messages : 117
    Points : 141
    Points
    141

    Par défaut

    merci pour la réponse,

    Citation Envoyé par chrtophe Voir le message
    La valeur de DS correspond au descripteur de segment de données.
    oui j'ai compris que la valeur de DS correspond au descripteur de segment de données mais je veux just savoir si la valeur 0x10 est choisie au hazard par l'auteur ou qu'il s'est basé sur quelque chose pour prendre cette valeur


    Citation Envoyé par chrtophe Voir le message
    La valeur de DS correspond au descripteur de segment de données.

    L'instruction jmp dword 0x8:0x1000 permet de mettre à jour le TLB (Translation Lookaside Buffer), cache de la MMU.

    Relis-bien la partie 4 A.
    de même pour le CS, il a choisie la valeur 0x8 pour l'initialiser , est-il un choix ou s'est il basé sur un calcul ou des contraintes

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2010
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : août 2010
    Messages : 117
    Points : 141
    Points
    141

    Par défaut

    voila j'ai compris
    ça pourrait aider d'autre, pour expliquer alors, je disais que cela provenait de la taille des sélecteurs qui est de 8 octet,

  12. #12
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    7 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 7 710
    Points : 16 764
    Points
    16 764

    Par défaut

    0x8 correspond au 1er descripteur utilisable, le 1er devant rester vide. Un descripteur fait 8 octets. L'auteur aurait très bien pu utiliser 0x10 pour CS et 0x18 pour DS et donc ne pas utiliser le 1er descripteur.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Réponses: 12
    Dernier message: 22/04/2016, 14h53
  2. Réponses: 0
    Dernier message: 20/10/2015, 17h46
  3. Créer son propre système de fichiers
    Par L'immortel dans le forum Programmation d'OS
    Réponses: 15
    Dernier message: 15/12/2013, 23h16
  4. Réaliser son propre CMS ?
    Par soony dans le forum CMS
    Réponses: 4
    Dernier message: 26/08/2007, 15h06
  5. Utiliser son propre système d'éclairage
    Par nicoenz dans le forum OpenGL
    Réponses: 6
    Dernier message: 07/05/2007, 17h00

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