tmpfs

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

tmpfs ( T e mp orary F ile Systemの略)は、多くのUnixライクなオペレーティングシステムに実装されている一時ファイルストレージパラダイムです。マウントされたファイルシステムとして表示されることを目的としていますが、データは永続ストレージデバイスではなく揮発性メモリに保存されます。同様の構造はRAMディスクであり、仮想ディスクドライブとして表示され、ディスクファイルシステムをホストします。

セマンティクス

tmpfsに保存されるものはすべて一時的なものであり、ハードドライブなどの不揮発性ストレージにファイルが直接作成されることはありません(ただし、メモリ不足の場合はスワップスペースがバッキングストアとして使用されます)。再起動すると、 tmpfs内のすべてが失われます。

tmpfsが使用するメモリは、そこに含まれるファイルに対応するために拡大および縮小します。

多くのUnixディストリビューションは、ファイルシステムの/ tmpブランチまたは共有メモリに対してデフォルトでtmpfsを有効にして使用しますこれは、次の例のように dfで観察できます。

使用されたファイルシステムのサイズ使用率使用率
tmpfs 256M 688K 256M 1%/ tmp

ただし、Debianなどの一部のLinuxディストリビューションでは、デフォルトでtmpfsが/ tmpにマウントされていません。この場合、/ tmpの下のファイルは/と同じファイルシステムに保存されます

また、ほとんどすべてのLinuxディストリビューションでは、tmpfsが/ run /または/ var / run /にマウントされ、PIDファイルやUnixドメインソケットなどの一時的なランタイムファイルを保存します。ファームウェア変数などの一時的なシステムファイルは、/sys

実装

tmpfsの概念にはいくつかの独立した変形があります。最も初期のものの1つは、SunMicrosystemsによってSunOS用に開発され BSDやLinuxなどの他のオペレーティングシステムが独自に提供していました。

SunOS

SunOS 4には、tmpfsの最も初期の実装である可能性が最も高いものが含まれています。これは、1987年後半にSunOS 4.0に初めて登場し、任意のオブジェクトをメモリマップできる新しい直交アドレス空間管理とともに登場しました。[1] [2]

Solaris / tmpディレクトリは、1992年12月にリリースされたSolaris 2.1 [3]以降、デフォルトでtmpfsファイルシステムになりました。 [4] Solarisコマンドの出力には、任意のtmpfsボリュームのバックグラウンドストレージとして スワップが表示されます。df

#df -k
 使用されたファイルシステムのキロバイトアベイルズ容量マウントされた
 スワップ6015920 601592 0%/ tmp / test

Linux

tmpfsは、バージョン2.4以降のLinuxカーネルでサポートされています。[5] Linux tmpfs(以前はshmfsと呼ばれていました)は、起動時に使用されるramfsコードに基づいており、ページキャッシュも使用しますが、ramfsとは異なり、使用頻度の低いページをスワップアウトしてスペースをスワップし、ファイルシステムのサイズとiノードの制限をサポートします。メモリ不足の状況を防ぐため(デフォルトでは、それぞれ物理RAMの半分とRAMページ数の半分)。[6]

BSD

4.2BSDはMFSを導入しました。 [7]既存のFFSディスクファイルシステムを仮想メモリ領域に 適用することによって実装されたメモリベースのファイルシステム。

MFSのパフォーマンスを向上させるために従来のメモリ内データ構造を使用して実装されたメモリファイルシステムであるtmpfsは、2005年9月10日に公式のNetBSDソースツリーにマージされました。[8] 4.0以降のバージョンで利用できます。

FreeBSDはNetBSDの実装を移植しており、7.0以降のバージョンで利用可能です。[9]

DragonFly BSDは、NetBSDの実装も移植しており、2.5.1以降のバージョンで利用できます。

OpenBSDは、NetBSDのtmpfs実装も移植しました。これは、最初はPedro Martellettoによって開始され、他の多くの人によって改善されました。2013年12月17日以降のビルドで有効になりました。[10] tmpfsを含むOpenBSDの最初のリリースは5.5でした。[11] OpenBSD 6.0は、メンテナンスが不足しているため、tmpfsを無効にしました。

利点

ディスクストレージと比較してRAMの速度が速いため、tmpfsを使用すると、キャッシュを1つに保存するとはるかに高速になり、システム全体の効率が向上します。再起動時にRAMがクリアされるため、tmpfsは、ユーザーが一時ファイルを手動で削除しなくても、システムが乱雑になるのを防ぎます。さらに、ファイルをRAMに保存すると、ディスクがすぐにいっぱいになるのを防ぎ、書き込みの量を減らすこと でソリッドステートドライブの寿命を延ばします。

短所

RAMが少ないシステムでは、tmpfsによってメモリがすぐにいっぱいになります。

キャッシュファイルがtmpfsに保存されている場合、プログラムは再起動時にキャッシュされたデータを失います。

参考文献

  1. ^ ピータースナイダー。「tmpfs:仮想メモリファイルシステム」 (PDF)2007年5月7日取得
  2. ^ ハルL.スターン。「SunOS4.1パフォーマンスチューニング」GZipped PostScript)2007年5月7日取得
  3. ^ 「SPARC:Solarisソフトウェアのインストール」(PDF)SunSoft。1992年12月。p。9 2019年4月23日取得
  4. ^ 「Solarisオペレーティングシステム(Unix)」Operating-system.org
  5. ^ ダニエルロビンス(2001-09-01)。「共通スレッド:高度なファイルシステム実装ガイド、パート3」IBMDeveloperWorks 2013年2月15日取得
  6. ^ クリストフローランド; ヒュー・ディキンズ; コサキモトヒロ。「tmpfs.txt」kernel.org 2010年3月16日取得
  7. ^ 「NetBSDmount_mfs(8)のマニュアルページ」2007-12-08 2013年2月15日取得
  8. ^ Julio M. Merino Vidal(2006-02-24)。「NetBSD-SoC:効率的なメモリファイルシステム」2013年2月15日取得
  9. ^ Xin LI(2013-04-23)。「FreeBSDtmpfs(5)マンページ」2008年12月2日取得
  10. ^ "CVS:cvs.openbsd.org:src-tmpfsを有効にして、もう少しテストされるようにします"
  11. ^ 「OpenBSD5.5」2014-05-01 2014年5月1日取得

外部リンク