GNU/Linux >> Tutoriales Linux >  >> Linux

Permisos de acceso de /dev/mem

¿Qué produce lo siguiente:

cat /dev/mem | wc

obtengo:

cat: /dev/mem: Operation not permitted
   1908   11791 1048576

Entonces, para mí, se detiene en 1 MB.

Tenga en cuenta que cat usa open, no mmap, por lo que no es una prueba idéntica.

¿Está seguro de que está leyendo más de 1 MB?


  1. Sí, tiene razón, /dev/mem le permite asignar cualquier dirección física, incluidas las E/S asignadas a la memoria no RAM. Esto puede ser útil para un truco rápido y sucio para acceder a algún dispositivo de hardware sin escribir un controlador de kernel.

  2. CONFIG_STRICT_DEVMEM hace que el kernel verifique las direcciones en /dev/mem con devmem_is_allowed() en arch/x86/mm/init.c , y el comentario allí explica:

    * On x86, access has to be given to the first megabyte of ram because that area
    * contains bios code and data regions used by X and dosemu and similar apps.
    * Access has to be given to non-kernel-ram areas as well, these contain the PCI
    * mmio resources as well as potential bios/acpi data regions.
    

    tu dirección 0xFFFF0000 es bastante probable que no sea RAM, ya que los BIOS normalmente colocan la memoria de E/S justo por debajo de los 4 GB, por lo que es posible asignarla incluso con STRICT_DEVMEM.


Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. ¿Qué es /dev/mem?

  3. DD de /dev/zero a /dev/null... lo que realmente sucede

  4. Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

  5. Cómo usa Linux /dev/tty y /dev/tty0

tty (/dev/tty) vs pts (/dev/pts) en Linux

¿Cómo codificar en base64 /dev/random o /dev/urandom?

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

kernel:deshabilitar /dev/kmem y /dev/mem

¿Está mal vincular /dev/random a /dev/urandom en Linux?

Diferencias entre /dev/sda y /dev/sda1