tmpfs

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

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は/dev/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日閲覧。

外部リンク[編集]