• # /dev/kcore et périphériques

    Posté par . En réponse au message dev/mem mémoire physique. Évalué à 2.


    Ma question concerne /dev/mem : mémoire physique - Est ce que ça correspond au mapping et donc la possibilité d'accéder à tous les périphériques ?


    Je pense que tu fais plutôt référence à /proc/kcore qui est un fichier virtuel permettant d'accéder à l'intégralité de la mémoire physique.

    Un mmap() judicieusement utilisé sur ce fichier permet d'accéder à n'importe(s) quelle(s) pages physiques. Mal utilisé, je te promets que tu vas flinguer le système très vite (surtout si tu écris sur des pages du noyau).

    Après, pour ton périphérique, il y a 2 possibilités (sur architecture x86):

    * Soit il utilise des ports IO spécifiques (voir instructions inb/outb et compagnie) et dans ce cas mapper la mémoire ne sert à rien. On peut voir les ports IO avec le fichier /proc/ioports.

    * Soit c'est du "memory-mapped", et dans ce cas, je pense que mapper /proc/kcore fonctionnerait (en ne mappant que la zone qui t'intéresse bien sûr).
    Le fichier /proc/iomem montre les zones mémoires et les périphériques qui utilisent ces zones.

    Attention, toutes ces manips ne peuvent bien sûr se faire qu'en root.