tmpfs

tmpfsUnix系OSにおける一時ファイルのためのファイルシステム名。tmpfsはファイルシステムとしてマウントされることを意図しており、これによりHDDをはじめとする永続性をもつ記憶装置の代わりに揮発性メモリに保存されるようにできる。RAMディスク(仮想的なディスクドライブ)とは異なり内部に別のファイルシステムを作成せずに使用することができる。

tmpfsのふるまい[編集]

tmpfsに保存されるすべてのファイルはハードディスクに保存されないと言う意味では一時的なものであるが、メモリ不足に備えてバッキングストアとしてスワップ領域が使われることがある。リブートするときtmpfsに保存されているすべてのファイルは失われる。

tmpfsで使用されるメモリ量は格納するファイルの容量によって伸縮するが、スワップ領域にスワップアウトされることもある。

多くのUnixディストリビューションでは、初期設定の時点でtmpfsを使用することができ、具体的には/tmpディレクトリや、共有メモリの形で現れる。 以下はUnixコマンドのdfでファイルシステムを観察した例である。

Filesystem            Size  Used Avail Use% Mounted on tmpfs                 256M  688K  256M   1%  /tmp 

一部のUbuntuやDebianのようなLinuxディストリビューションでは、/tmpは通常のディレクトリで、tmpfsは/run/shmマウントされている。

実装[編集]

Linux[編集]

tmpfsは以前shmfsとして知られており、Linuxカーネルのバージョン2.4からサポートされるようになった[1]。これはramfsのコードをもとにしており、起動中に使用されるほかにページキャッシュの目的でも使用される。また、ファイルシステムと同等のサイズのページファイルをスワップアウトしたり、inodeがメモリ不足(out of memory)の状態になるのを防ぐための制限(デフォルトでは物理RAMとページングは全メモリ容量を半々)をしたりといったramfsにはない機能が追加されている[2]

脚注[編集]

  1. ^ Daniel Robbins (2001年9月1日). “Common threads: Advanced filesystem implementor's guide, Part 3”. IBM DeveloperWorks. 2013年2月15日閲覧。
  2. ^ Christoph Rohland, Hugh Dickins, KOSAKI Motohiro. “tmpfs.txt”. kernel.org. 2010年3月16日閲覧。

外部リンク[編集]