タグ

linuxとファイルシステムに関するpukumanのブックマーク (3)

  • 知っておきたいLinuxファイルシステムの概念 - Qiita

    ファイルシステムとは ファイルシステムとは、データとメタデータをある構造に従ってストレージデバイス上に格納したものを指す。 ファイルシステムの作成には mkfs(8) コマンドを使用する。 全体アーキテクチャ 以下の図の通りである。詳細は以下で説明する。 ファイルシステムの構造 ここでは、古典的ファイルシステムであるext2をベースに説明する。 ファイルシステム内で領域を割り当てる基単位を論理ブロックという。ディスクデバイスの連続する物理ブロックから構成される。論理ブロックサイズ1024,2048,4096バイトのいずれかを選択できるが、これは mkfs(8) のパラメータとして与える。 ディスク上では、以下のように格納される。※ext2の構造はブロックグループごとに分かれており、もう少し複雑になっている。 ブートブロック・・・OSを起動する情報を保存する。すべてのファイルシステムでブー

    知っておきたいLinuxファイルシステムの概念 - Qiita
  • [プラットフォーム編]シンボリックリンクを不用意に使ってはいけない

    システム内に散在する設定ファイルを一カ所に集め,管理効率を上げたいという要望はないだろうか。UNIX系OSにはファイルを別名で参照する「シンボリックリンク」という機能があり,これを利用することで実現可能だ。 リンク先の実ファイルとシンボリックリンクは同等に扱えるため,どちらからどちらにリンクを張ってもよいと思われるかもしれないが,そうではない。 リンクには,ハードリンクとシンボリックリンクの二つがある。UNIX系OSのファイル・システムでは,ファイルに複数のファイル名を付けることができる。一つのファイルに対し,複数の実名を付ける処理がハードリンクである。ハードリンクの場合,複数あるファイル名はどれも対等なものとなる。 これに対しシンボリックリンクは,別名を付けることに相当する。シンボリックリンクを作成すると,新たにファイルが生成され,その内容として,リンク先のファイル名とパスが保持される。

    [プラットフォーム編]シンボリックリンクを不用意に使ってはいけない
  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

    ディレクトリの中にある大量のファイルを高速に読み込む方法が知りたかったので、実験してみた。想定しているシチュエーションは、一つ一つのファイルは数KB程度だが数が多い、という場合である。適当な順番でアクセスすると、ランダムアクセスになってしまいとても時間がかかる。個々のファイルを読み込む順番はどうでも良く、すべてのファイルを処理することさえできればいいので、原理的にはシーケンシャルアクセスで処理できてしかるべきである。 まず、ファイルシステムについて。HDDやSSDなどのハードウェアにアクセスする際には、ファイル名などという概念はもちろん存在しない。ファイル名と実際のディスク上の対応を管理するのがファイルシステムの主な役割である。ファイルシステムは、ファイル名からそのファイルに対応するブロック番号(メモリアドレスみたいなもんだな)を調べて、そのブロック番号を指定してHDDやSSDにアクセスす

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
  • 1