J'ai une adresse de mémoire physique, quel pilote me fournit via ioctl. Comment puis-je y accéder dans mon application sous Linux?Comment accéder à la mémoire physique dans Linux à partir de l'espace utilisateur?
2
A
Répondre
5
Si vous devez absolument, utiliser les fonctions mmap et mprotect de l'en-tête <unistd.h>
Ouvrir/dev/mem
3
Habituellement, pour accéder que userspace vous utiliseriez copy_to_user()
pour obtenir une copie de l'espace utilisateur valide.
4
Ceci est mal, vous allez avoir des problèmes subtils avec cette approche, et vous allez très probablement corrompre la mémoire. Comme le dit abyx, l'IOCTL retourne lui-même la mémoire qui vous intéresse.
Questions connexes
- 1. accéder à la mémoire interne de l'ARM à partir d'un processus utilisateur sur GNU/Linux
- 2. Comment puis-je accéder à la mémoire à une adresse physique connue dans un module noyau?
- 3. Création de mémoire physique à partir de l'espace utilisateur à utiliser pour les transferts DMA
- 4. Comment trouver l'adresse physique d'une variable à partir de l'espace utilisateur sous Linux?
- 5. Accéder aux informations de diagnostic Linux à partir de JavaScript
- 6. Comment accéder à l'emplacement de la mémoire dans Java?
- 7. Allocation de mémoire de l'espace utilisateur sous Linux (affinité du contrôleur de mémoire)
- 8. Comment obtenir la mémoire physique totale dans Bash pour l'assigner à une variable?
- 9. Comment accéder à la QueryString dans Windows Phone 7 à partir d'un contrôle utilisateur
- 10. Comment accéder à une structure de données à partir d'un processus Python sous Linux?
- 11. Comment accéder à mbeans pool de mémoire
- 12. Comment accéder à Team Foundation Server (TFS) à partir de Linux
- 13. Accéder au profil utilisateur à partir de Facebbook
- 14. Accéder à proc_dir_entry à partir de proc_fops.open?
- 15. SVN hébergé sur Windows pour accéder à partir de Linux
- 16. Dans WPF, comment accéder à un objet défini dans Window.xaml à partir d'un contrôle utilisateur imbriqué?
- 17. Comment accéder à la SRAM haute vitesse dans les CPU ARM à partir du code en mode utilisateur sur WinCE?
- 18. HttpContext.Cache Utilisation de la mémoire physique
- 19. Accéder aux paramètres utilisateur de l'iphone à partir de javascript
- 20. Comment accéder à ConfigurationSection personnalisée à partir de la bibliothèque?
- 21. Comment accéder à une base de données SQL Server à partir d'un script Perl sous Linux?
- 22. Accéder à une variable dans l'espace noyau à partir de l'espace utilisateur
- 23. Linux Les fichiers mappés en mémoire réservent beaucoup de mémoire physique
- 24. Comment puis-je accéder à un rôle utilisateur dans Drupal à partir d'une application distincte?
- 25. Comment accéder à ActiveRecord :: AutosaveAssociation.marked_for_destruction? à partir de modèle parent
- 26. Comment accéder à $ {SRCROOT} dans un script utilisateur?
- 27. Comment accéder à l'objet utilisateur dans le contrôleur de grails
- 28. Accéder à la mémoire du bloc-notes à partir de C
- 29. Comment puis-je accéder à une propriété publique d'un contrôle utilisateur à partir de codebehind?
- 30. Onglets de l'interface utilisateur JQuery: Comment accéder directement à un onglet à partir d'une autre page?
Cela nécessiterait des privilèges root car un utilisateur non-root normal se verrait refuser l'accès à/dev/mem! – t0mm13b
Oui, j'ai supposé qu'il ne pouvait pas accéder à la zone mémoire via l'interface du pilote. Ou bien il n'aurait pas posé la question en premier lieu. La question n'a pas mentionné le niveau de privilège. –
Oui mmap/dev/mem. Mais c'est sucky :) – MarkR