第15章 /proc ディレクトリー

Linux の /proc ディレクトリーは /dev と比べると段違いに複雑なので説明は簡単にはできないですかね。

まあ /proc を使うのはシステム管理者や DevOps の人たちでしょうかね。

procinfo
システム内の情報を /proc からかき集めて表示
sysctl
カーネルパラメーターの設定に使える。 /proc/sys/ に表示されてるものが対象

ですが純粋なソフトウェア開発者でも頻繁に /proc/ ディレクトリーを確認することは十分にありえます。

それが mmap 関数による仮想メモリーアドレスの割り当てです。

mmap
プロセスの仮想アドレス空間内に(任意のファイルとの)新しいメモリーマップを作る。メモリーマッピングを行うと情報が /proc/[pid]/maps に反映される

[pid]とは、プロセスのIDのことですが ps コマンドなどで表示されますね。

それで mmap って何ですかの? 的な疑問もあるでしょうね。

まあ考えかたとしてはハードディスク等の非メモリーの領域をメモリーとして使うための関数です。

このハードディスク等のアドレス領域をメモリーかのように使うことをメモリーマッピング(メモリーマップを作る)と言います。

例えば C/C++ のポインター変数に mmap でマップしたディスクのアドレスを代入することができます。

ただハードディスクに毎度アクセスするとプログラムの反応速度が遅くなるので共有メモリーとゆうタイプのメモリーにマップするのが一般的かと思います。

Copyright 2018-2019, by Masaki Komatsu