GNU/Linux >> Linux の 問題 >  >> Linux

/dev/mem のアクセス権限

以下は何をもたらしますか:

cat /dev/mem | wc

私は得る:

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

したがって、私にとっては 1MB で止まります。

cat は mmap ではなく open を使用するため、同一のテストではないことに注意してください。

本当に 1MB を超えて読んでいますか?


<オール>
  • はい、その通りです。 /dev/mem を使用すると、非 RAM メモリ マップ IO を含む任意の物理アドレスをマップできます。これは、カーネル ドライバーを作成せずにハードウェア デバイスにアクセスするための簡単で汚いハックに役立ちます。

  • CONFIG_STRICT_DEVMEM は、カーネルが /dev/mem のアドレスを devmem_is_allowed() でチェックするようにします arch/x86/mm/init.c で 、そしてそこにあるコメントは次のように説明しています:

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

    あなたの住所 0xFFFF0000 通常、BIOS は IO メモリを 4GB のすぐ下に配置するため、RAM 以外である可能性が非常に高いため、STRICT_DEVMEM を使用してもマッピングできます。


  • Linux
    1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

    2. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

    3. Linux の /dev/zero および /dev/null ファイルとは

    1. /dev/mem とは何ですか?

    2. /dev/zero から /dev/null への DD ...実際に何が起こるか

    3. Linux:/dev/console 、 /dev/tty 、 /dev/tty0 の違い

    1. / dev/randomを使用してLinuxでランダムパスワードを生成する方法

    2. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

    3. /dev/tcp を使用するために < または > が必要な理由