GNU/Linux >> Znalost Linux >  >> Linux

Přístupová oprávnění /dev/mem

Co přináší následující:

cat /dev/mem | wc

Chápu:

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

Takže pro mě se to zastaví na 1 MB.

Všimněte si, že cat používá open, nikoli mmap, takže to není identický test.

Jste si jisti, že čtete více než 1 MB?


  1. Ano, máte pravdu, /dev/mem vám umožňuje namapovat jakoukoli fyzickou adresu, včetně IO namapovaných na non-RAM paměť. To může být užitečné pro rychlý a špinavý hack pro přístup k některému hardwarovému zařízení bez psaní ovladače jádra.

  2. CONFIG_STRICT_DEVMEM kontroluje adresy jádra v /dev/mem pomocí devmem_is_allowed() v arch/x86/mm/init.c a komentář v něm vysvětluje:

    * 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.
    

    vaše adresa 0xFFFF0000 je docela pravděpodobné, že to není RAM, protože BIOSy obvykle dávají IO paměť těsně pod 4 GB, takže to je důvod, proč ji můžete mapovat i pomocí STRICT_DEVMEM.


Linux
  1. Jak vygenerovat náhodné heslo v linuxu pomocí /dev/random

  2. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  3. Kdy použít /dev/random vs /dev/urandom?

  1. Co jsou soubory /dev/zero a /dev/null v Linuxu

  2. Jak kódovat base64 /dev/random nebo /dev/urandom?

  3. Co je /dev/mem?

  1. DD z /dev/zero do /dev/null...co se vlastně stane

  2. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  3. jádro:deaktivace /dev/kmem a /dev/mem