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

x86 16-bits Assembleur Discussion :

Quelle est l'utilité de la mémoire système réservée


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut Quelle est l'utilité de la mémoire système réservée
    Bonjour,

    Puis-je avoir un exemple pratique en "assembleur nasm" qui utilise les plages d'adresses réservées de la mémoire système

    J'ai obtenu avec Int 15/AX=E820h une carte de la mémoire système, sur cette carte il y a des zones disponibles à OS et d'autres qui sont réservées

    Voilà la carte que j'obtiens sur vmware :

    0) Adresse mémoire 0, taille 653 312, 01h memory, available to OS
    1) Adresse mémoire 653 312, taille 2048, 02h reserved, not available (e.g. system ROM, memory-mapped device)
    2) Adresse mémoire 901 120, taille 147 456, 02h reserved, not available (e.g. system ROM, memory-mapped device)
    3) Adresse mémoire 1 048 576, taille 3 219 062 784, 01h memory, available to OS
    4) Adresse mémoire 3 220 111 360, taille 61 440, 03h ACPI Reclaim Memory (usable by OS after reading ACPI tables)
    5) Adresse mémoire 3 220 172 800, taille 4096, 04h ACPI NVS Memory (OS is required to save this memory between NVS sessions)
    6) Adresse mémoire 3 220 176 896, taille 1 048 576, 01h memory, available to OS
    7) Adresse mémoire 3 758 096 384, taille 268 435 456, 02h reserved, not available (e.g. system ROM, memory-mapped device)
    8) Adresse mémoire 4 273 995 776, taille 65 536, 02h reserved, not available (e.g. system ROM, memory-mapped device)
    9) Adresse mémoire 4 276 092 928, taille 4096, 02h reserved, not available (e.g. system ROM, memory-mapped device)
    10) Adresse mémoire 4 294 836 224, taille 131 072, 02h reserved, not available (e.g. system ROM, memory-mapped device)
    11) Adresse mémoire 4 294 967 296, taille 1 711 276 032, 01h memory, available to OS
    Voilà une plage d'adresse réservée : 0xe0000000 - 0xf0000000

    Puis-je avoir un exemple pratique en "assembleur nasm" qui utilise la plage d'adresse 0xe0000000 - 0xf0000000 ou autres.

    La documentation dit que les plages d'adresses réservées peuvent mapped des périphériques en mémoire ou appartenir à la system ROM mais je n'arrive pas à trouver un exemple d'utilisation de ces zones mémoires

    Je précise que je suis sur vmware, que j'utilise l'assembleur nasm et que je suis sur un secteur de démarrage en mode protégé

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    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 : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    l'adresse 0xe0000000 correspond au 1er octet du 3ème Go de RAM. Si un device utilise cette adresse sur une machine de 4 Go par exemple, le bloc d'adresse réservé par le device chevauche une plage d'adresse de RAM, il faut donc la réserver pour ne pas l"utiliser ou faire un remapping.

    Exemple plus parlant, certains ordinateurs bon marché utilisent des GPU vidéo qui n'ont pas de RAM et vont bloquer une partie de la RAM des barettes mémoire pour la vidéo. La quantité de mémoire partagée est en général réglable dans le BIOS.

    Pour l'utilisation de ces adresses mémoire, comme déjà expliqué ce n'est pas forcément de la mémoire mais ça peut être un mappage de registres en lecture ou écriture pour configurer ou dialoguer avec un device.

    Pour l'exemple, sans savoir quel est le device qui mappe cette plage d'adresse, impossible de donner un exemple d'utilisation, il faut savoir quel devoce mappe cette plage d'adresse et regarder sa documentation.
    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 du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Pour l'exemple, sans savoir quel est le device qui mappe cette plage d'adresse, impossible de donner un exemple d'utilisation, il faut savoir quel devoce mappe cette plage d'adresse et regarder sa documentation.
    Comment faire pour savoir quel device mappe cette plage d'adresse, et au pire il n y a pas d'exemple d'utilisation pour d'autres E/S mappées en mémoire, je ne trouve rien

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    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 : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Je commencerais par regarder du coté de SMBIOS.
    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

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Je commencerais par regarder du coté de SMBIOS.
    Je n'ai pas d'exemple d'utilisation de smbios

    Puis-je avoir un exemple concret et utile de MMIO (Memory-mapped I/O).

    Un exemple écrit en assembleur (NASM) ou en python.

    Si c'est en langage assembleur ça sera sur un secteur d'amorçage ou kali linux sur vmware.

    Le code devra dans un premier temps détecter un mmio

    - Comment les systèmes d'exploitations font pour détecter les mmio ?
    - Les mmio sont déjà là avant même de lancer un système d'exploitation ? Sur le secteur d'amorçage ?
    - Int 15/AX=E820h n'indique pas la position des mmio

    Je ne trouve aucun exemple d'utilisation en assembleur sur google

    En python j'ai trouvé un code d'exemple qui ne fonctionne pas : https://python-periphery.readthedocs...test/mmio.html

    Il y a des problèmes de restriction de sécurité avec /dev/mem qui m'empêche de lancer le code et impossible de me servir de /dev/fmem à cause des linux-headers

    De plus il n y a pas de ligne de code pour détecter un mmio, il y a une adresse mémoire physique qui ne fonctionnera pas forcément chez moi

    Cet autre exemple python ne fonctionne pas non plus car je n'ai pas le matériel spécifiques : https://github.com/Xilinx/PYNQ_Works...4/3_mmio.ipynb

    Est-ce techniquement possible d'obtenir ce que je demande ?

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    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 : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Il y a des problèmes de restriction de sécurité avec /dev/mem
    Heureusement que tu ne peux pas faire ce que tu veux sur /dev/mem, sinon tu n'as aucune protection système.

    Oublies 0xint 15 qui est obsolète.

    Comment les systèmes d'exploitations font pour détecter les mmio ?
    Avec SMBIOS justement.

    Je n'ai rien à ajouter.
    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

Discussions similaires

  1. [SQL2005] Quelle est l'utilité de la CLR?
    Par Danny Blue dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/08/2006, 14h48
  2. Quelle est l'utilité des Relations & Foreign Keys?
    Par Danny Blue dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/06/2006, 12h18
  3. Réponses: 1
    Dernier message: 11/03/2006, 09h55
  4. [Requete][Where] Quelle est l'utilité d'une clause: 1=1 ?
    Par alpachico dans le forum Langage SQL
    Réponses: 8
    Dernier message: 25/12/2005, 18h40
  5. [D7] Quelle est l'utilité de MySQL Embedded avec Delphi ?
    Par raoulmania dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/11/2005, 18h40

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