コンピュータフォルダとは何か?: ファイルシステムとオペレーティングシステムについて知っておくべきことすべて

最終更新: 19 1月2024
フォルダ、ファイルシステム

私たちは皆 ファイルまたはファイル 毎日、私たちも使っています フォルダまたはディレクトリデスクトップPC、ラップトップ、モバイルデバイスなどのファイルシステムでも、この記事では、それについて知っておくべきすべてのことを説明します。 情報とは何か、そしてどのように保存されるか を記念して。

ファイルシステムとは何ですか?

ファイルシステム

Un ファイルシステム ファイルシステム(FS)は、オペレーティングシステムが情報の保存と取得方法を制御するために使用する方法とデータ構造です。ファイルシステムがなければ、ストレージメディアに保存されたデータは単一のデータエンティティとなり、あるデータセットの終わりと次のデータセットの始まりを区別することができず、また、取得が必要なデータセットがどこにあるのかも区別できません。これがいわゆる生データです。

NTFS、FAT、ext4、btrfs、HFS+などでストレージドライブをフォーマットすると、実際にはそのドライブ上のデータを管理するためのファイルシステムが作成されます。つまり、私たちがフォーマットと呼んでいるものは、実際にはFSです。

データをチャンクに分割し、各チャンクに名前を付けることで、データは簡単に分離・識別できるこれらを実現するために、ファイルシステムは2層または3層で構成されています。これらの層は明確に分離されている場合もあれば、機能が統合されている場合もあります。ここで言う層とは、以下のものです。

  • 論理ファイルシステム: ユーザーアプリケーションとのやり取りを担当します。ファイル操作のためのAPIを提供します。 開く、閉じる、読むなど。要求された操作を下位層に転送して処理します。論理ファイルシステムは、プロセスごとにオープンファイルテーブルエントリとファイルディスクリプタを管理します。この層は、ファイルアクセス、ディレクトリ操作、セキュリティ、および保護を提供します。
  • 仮想ファイルシステム: このインターフェースは、物理ファイルシステムの複数の同時インスタンスをサポートします。このレイヤーはオプションであり、常に存在するわけではありません。
  • 物理ファイルシステム: ストレージデバイスの物理的な操作を担当します。読み取りまたは書き込み中の物理ブロックを処理します。バッファリング、メモリ管理、そしてストレージメディア上の特定の場所へのブロックの物理的な配置を担当します。物理ファイルシステムは、ストレージハードウェアデバイスドライバーまたはチャネルと連携して、ストレージデバイスを制御します。

FSの機能

存在するすべてのファイルシステムには限界があり、 文字 次のようなことを知っておく必要があります。

  • スペースの管理または割り当て: ファイルシステムは、通常、デバイス上の複数の物理ドライブにわたって、きめ細やかに領域を割り当てます。ファイルシステムは、ファイルとディレクトリを整理し、メディアのどの領域がどのファイルに属し、どの領域が未使用であるかを追跡する役割を担います。
  • 断片化: これは、同じファイルがストレージドライブの異なる領域に保存されている場合に発生します。つまり、個々のファイル部分が連続していないということです。ファイルが作成、変更、削除されるにつれて、使用済み領域と未使用領域がさまざまなサイズで発生する可能性があります。さらに、一部のファイルシステム(MicrosoftのFATやNTFSなど)にも影響を与え、ファイルの読み取り速度が低下します。
  • ファイル名: ファイル システムは、長さの制限、大文字と小文字の区別、ファイル名における特殊文字の使用を管理します。
  • ディレクトリ: 多くの場合、ファイルを個別のコレクションに整理するためのディレクトリがあります。ディレクトリはフラットな構造でも階層構造でも構いません。これについては後ほど詳しく説明しますが、これがまさにこのテーマです。
  • メタデータ: メタデータ情報が関連付けられており、データの長さ、タイムスタンプ、アクセス権限、ファイル属性などの詳細が含まれます。
  • ユーティリティとアクセス: これらは、ファイルシステムインスタンスの初期化、変更、削除、ディレクトリとファイルの作成、名前変更、削除、暗号化、クォータ、移行、変換、バックアップなどに使用されます。
  • 整合性と障害管理: FS は、オペレーティング システムの障害や停電が発生した場合でも、セカンダリ ストレージまたは外部ドライブ上のファイル システム構造の整合性を維持する必要があります。
  • ユーザーデータ: データの保存、取得、更新など、ユーザーデータの管理を許可する必要があります。
  • 複数のファイルシステム: 単一のシステム上に複数のファイル システムを持つことが可能です。
  • 設計上の制限: ファイル システムには、システム内の最大ストレージ容量、ファイルの最大サイズ、ファイル数などを定義する機能上の制限があります。

パーティションとは何ですか?

A パーティション パーティションとは、HDD、SSD、フラッシュドライブなどのデータストレージデバイスの論理的なセクションまたは区分です。このパーティションは複数の目的に使用され、保存されたデータの整理と管理を容易にします。例えば、各パーティションを特定の目的に使用したり、複数のオペレーティングシステムをインストールしたりすることができます。

次のことに注意することが重要です。 作成、削除、サイズ変更 パーティションの変更はデータの損失につながる可能性があるため、これらの操作は慎重に実行し、パーティション構造に大きな変更を加える前に重要なデータをバックアップすることが重要です。

一方、要約すると、次のようなことも理解しておく必要があります。 さまざまな種類のパーティション MBR システムの基本です (GPT では可能性が拡張され、同じユニットに最大 128 個のパーティションを作成できますが、これは別のトピックです)。

  • プライマリパーティション: 各ストレージドライブには最大4つのプライマリパーティションを作成できます。これらは、オペレーティングシステムがインストールされ、データが保存されるメインパーティションです。プライマリパーティションの1つをアクティブパーティションまたはブートパーティションとして指定し、そこからオペレーティングシステムを起動することができます。
  • 拡張パーティション: 拡張パーティションは、内部に追加の論理パーティションを作成するために使用される特別なプライマリパーティションです。拡張パーティションは直接データを格納するのではなく、論理パーティションのコンテナとして機能します。拡張パーティション内に複数の論理パーティションを作成できます。これにより、ハードドライブ上のプライマリパーティションの上限である4つを克服できます。
  • 論理パーティション: これらは拡張パーティション内に作成されます。オペレーティングシステムの起動には使用されず、通常はデータやファイルの整理に使用されます。拡張パーティション内に複数の論理パーティションを作成できるため、データの整理が容易になります。
  Linux上でWindowsゲームをロードするためのWine 11.6:完全ガイド

パーティションテーブルとは何ですか?

La パーティションテーブル ハードドライブの先頭に位置するデータ構造で、ドライブがどのようにパーティションに分割されているかに関する情報が含まれています。通常、BIOSベースのシステムではマスターブートセクター(MBR)に、より新しいUEFIベースのシステムではGPT(GUIDパーティションテーブル)に保存されます。パーティションテーブルには、各パーティションのサイズ、種類(NTFS、FAT32、ext4など)、ストレージメディア上の位置などの詳細が含まれています。

したがって、パーティションテーブルとファイルシステムの関係は、パーティションテーブルが示すものにあります。 各パーティションの開始と終了 物理ディスク上の各パーティションは、特定のファイルシステムでフォーマットされています。パーティションにアクセスしてファイルの読み取りまたは書き込みを行うと、オペレーティングシステムはパーティションテーブルの情報を使用して、そのパーティション上のファイルシステムの構造を特定し、理解します。

ファイルシステムタイプ

フォーマット

さまざまなファイル システムの中で、次のタイプに注目する必要があります。

  • ディスク ファイル システム: これらのシステムは、ディスクストレージメディアが持つデータへのランダムかつ高速なアクセス能力を活用します。複数のユーザーまたはプロセスが、ディスク上のデータの順序に関係なくアクセスできるようになります。例としては、FAT、exFAT、NTFS、Reiser FS、HFS、HFS+、HPFS、APFS、UFS、ext2、ext3、ext4、XFS、btrfs、VMFS、ZFS、ReiserFS、NSS、ScoutFSなどが挙げられます。これらに加えて、以下のシステムも検討対象となります。
    • 光ディスク: CD、DVD、Blu-ray で使用される ISO 9660 やユニバーサル ディスク フォーマット (UDF) などの一般的なフォーマット。
  • フラッシュ ファイル システム: これらのシステムはフラッシュメモリデバイス専用に設計されており、その特性と制限事項を考慮しています。ディスクシステムではなく、フラッシュデバイス向けに設計されたファイルシステムを使用することをお勧めします。例としては、JFFS、JFFS2、YAFFS、UBIFS、LogFS、F2FSなどがあります。
  • 磁気テープファイルシステム: これらのシステムは、ディスクよりもランダムアクセス時間が長いテープ上のストレージを管理します。ディレクトリ管理が異なり、テープ上の頻繁な線形移動を避ける必要性を重視しています。IBMのLTFSがその一例です。
  • データベース ファイル システム: データベースベースのファイルシステム。ファイルはタイプ、作成者、メタデータなどの特性によって識別されます。例としては、IBM DB2などが挙げられます。
  • トランザクションファイルシステム: これらのシステムは、ファイル操作のアトミック性と独立性を保証します。例としては、Microsoft WindowsのNTFSや、LFS、ext3などのUNIX/Linux向けのプロトタイプのトランザクションファイルシステムが挙げられます。
  • ネットワーク ファイル システム: NFS、AFS、SMB、FTP、WebDAVなどのプロトコルを介してリモートサーバー上のファイルにアクセスできるようにするネットワークファイルシステム。つまり、分散コンピューティング向けに設計されています。
  • 共有ファイルシステム: これらのシステムにより、複数のサーバーが同じディスクサブシステムに安全にアクセスできるようになります。例としては、GFS2、GPFS、SFS、CXFS、StorNext、ScoutFSなどが挙げられます。
  • 特殊なファイルシステム: これらはやや特殊で、ファイル要素そのものは持ちませんが、API経由でアクセスできます。例えば、デバイスファイルシステムはLinuxなどで使用されているdevfsとして定義されています。一方、configfs、sysfs、procfsといったLinuxでよく知られている特殊なファイルシステムもあります。
  • 最小限のファイルシステム/オーディオカセットストレージ: オーディオ カセットは、Commodore PET など当時の一部のマイクロコンピュータ モデルを動かすデータ ストレージ システムとして使用されていました。
  • フラット ファイル システム (Flat File System): これらのシステムにはサブディレクトリがなく、すべてのディレクトリエントリが単一のメインディレクトリに保存されます。これらのファイルシステムの例としては、CP/MシステムやAppleのクラシックMacのMacintoshファイルシステムが挙げられます。

FSテクノロジーズ

フォーマットプロセス

各ファイルシステムには独自の特徴があり、 さまざまなテクノロジー。 最も重要なもののいくつかは次のとおりです。

  • 自己治癒: ファイルシステムがストレージシステムで発生する可能性のあるエラーや問題を自動的に検出し、修正する機能を指します。これらのエラーには、ハードドライブの不良セクタやその他の種類のデータ破損が含まれます。エラーが検出されると、ファイルシステムはバックアップからの復元や破損データの修復により、影響を受けたデータの復旧を試行します。これにより、ファイルシステムに保存されているデータの整合性が維持されます。
  • 圧縮: ファイルシステムに保存されるファイルやデータのサイズを縮小できる機能です。データの圧縮により、ディスク容量を節約し、ファイル転送を高速化できます。圧縮を有効にすると、ファイルシステムは書き込まれるファイルを自動的に圧縮し、読み込まれるファイルを解凍します。これは、リソースが限られたストレージシステムでは便利ですが、アクセス速度が低下する可能性があります。
  • 暗号化: これは、ファイルシステムに保存されたデータの機密性を保護するために使用される技術です。データはディスクに書き込まれる前に暗号化され、読み取られる際に復号されます。暗号化により、適切な復号鍵を持たない人にはデータが読み取られなくなります。これは、機密データのプライバシーとセキュリティを保護するために不可欠です。圧縮と同様に、アクセス速度が低下する可能性があります。
  • ジャーナリング(トランザクションログ): これは、ファイルの作成、変更、削除など、ファイルシステム上で実行されたすべての操作を記録する機能です。この記録は「ジャーナル」または「トランザクションログ」と呼ばれます。予期せぬ停電などのシステム障害が発生した場合、ファイルシステムはトランザクションログを使用して一貫性のある状態に復旧できます。これにより、データの破損を防ぎ、ファイルシステムの整合性を確保できます。
  • スナップショット容量: スナップショットとは、特定の時点におけるファイルシステムのポイントインタイムコピーです。これらのコピーはスナップショットであり、ファイルシステム内の現在のデータと共に保存されます。スナップショットを使用することで、エラーや不要な変更が発生した場合でも、ファイルシステムを以前の状態に復元できます。これは、バックアップ、データ復旧、そして変更をシステムに永続的に適用する前のテストに役立ちます。
  NVIDIA Shield TV Experience 9.2.4 アップデートとそのすべての新機能

ディレクトリまたはフォルダーとは何ですか?

Windows 10、アクセスできないフォルダー

データがストレージユニットにどのように格納されるか、また必要なデータ構造が分かったので、次はストレージユニットとは何かについて説明します。 フォルダまたはディレクトリ.

ディレクトリまたはフォルダは 他のファイルをカタログ化するための構造 ファイルシステム内で、ユーザーやオペレーティングシステムにとってより直感的な階層構造や構成を提供します。これを実現するために、他のファイルや、場合によっては他のディレクトリやフォルダ(この場合はサブディレクトリまたはサブフォルダと呼ばれます)への参照が含まれます。

Unixなどの階層型ファイルシステムを持つ一部のオペレーティングシステムでは、通常、RAMの一部に最近のパスを保存するディレクトリキャッシュが存在します。Unixではこの部分はDNLC(Directory Name Lookup Cache)と呼ばれ、Linuxではdcacheと呼ばれます。このメモリ部分は最近アクセスされたパスで更新されますが、ネットワークファイルシステムでは、無効化されたエントリやユーザーによって作成されたエントリを管理することで一貫性を確保するためのメカニズムが必要です。

1で 階層型ファイルシステム ストレージはツリー構造になっています。「親」と「子」という用語は、サブディレクトリとそれがカタログ化されているディレクトリの関係を表す際によく使われます。後者は親です。このようなファイルシステムにおいて、自身の親を持たない最上位のディレクトリはルートディレクトリと呼ばれます。これはUnixやLinuxでよく見られます。UnixやLinuxでは特定の階層構造があり、ルートディレクトリはルートまたは/であり、他のすべてのディレクトリは、たとえ同じパーティション上になくても、ルートディレクトリから派生します。

仮想ディレクトリとは、階層的なディレクトリツリー内の位置に依存しないファイル構成の一種です。データベースやカスタムインデックスなどのデータソースから結果を収集し、フォルダービューと同じ形式で視覚的に表示します。

これらのフォルダまたはディレクトリ 管理できる GUIとCLIの両方のツールを使用します。例えば、コマンドやファイルマネージャー自体を使って、作成、削除、名前変更、移動、コピーなどを行うことができます。一部のオペレーティングシステムでは、特定のフォルダに対する権限や操作に制限が設けられている場合がありますが…

異なるオペレーティング システム上のフォルダーまたはディレクトリの詳細

エンカダ ファイルシステムとオペレーティングシステムファイルとフォルダの扱いが異なります。

  • : これは、システムの残りのフォルダ階層が開始する、または存在する場所です。Windowsでは通常C:\ですが、Unix/Linuxではルートパーティションまたは/です。
  • パスまたはルート: これは、ファイルシステム内のフォルダまたはファイルのパスです。例えば、WindowsではC:\Program Files\Office\Word.exeのようになります。Unix/Linuxでは/home/user/example.cのようになります。ご覧の通り、Windowsではバックスラッシュが使用され、*nix環境では従来のスラッシュが使用されます。
  • ファイル名またはファイル名: これは、特定のファイルシステム内の各ファイルに付けられる名前です。各ファイルシステムには、ファイル名の最大文字数に関する独自の制限があります。さらに、ベース名と拡張子を区別する必要があります。初期のシステムの中には、拡張子の長さにも制限があり、通常は3文字でした。そのため、DOSシステムとの互換性を確保するため、.htmlではなく.htmというファイル名が使用されることがあります。ファイル名の例として、example.txtがあります。ここで「example」はファイル名、「txt」は拡張子で、この場合はテキストであることを示します。
  コンピュータ画像処理:ソフトウェアがこれらの種類のファイルをどのように処理するか

Unix/Linuxの特殊なケース

スーパーブロックとは何ですか?

Un スーパーブロック ファイルシステムの先頭にある基本的なデータ構造です。スーパーブロックにはファイルシステム自体に関する重要な情報が含まれており、ファイルシステムに保存されているデータの管理とアクセスに使用されます。すべてのUnixファイルシステムには独自のスーパーブロックがあり、そのフォーマットは使用するファイルシステム(ext4、XFS、UFSなど)によって異なります。

La 保存される情報 スーパーブロックには次のものが含まれる場合があります:

  • ファイルシステムのサイズ: ファイルシステムの合計サイズを示します。
  • iノードの数: ファイルシステムで利用可能なinodeの数を指定します。inodeは、ファイルとディレクトリを表すデータ構造です。
  • 空きブロック: 情報を保存するためにファイル システムに残っている空きデータ ブロックの数を記録します。
  • マウントポイント: オペレーティング システム上でファイル システムがマウントされているディレクトリを示します。
  • ファイルシステム識別: 同じシステム上の他のファイル システムと区別するファイル システムの一意の識別子。
  • 集合日時: ファイルシステムが最後にマウントされた日時を記録します。
  • 使用される inode およびブロック カウンター: ファイルシステムで使用されている inode とデータ ブロックの数を追跡します。
  • チェックサムおよびその他の整合性メタデータ: 最近のスーパーブロックには、ファイル システムに保存されているデータの整合性を検証するための追加情報が含まれている場合があります。

ファイルシステム(フォーマットされたパーティション)がマウントされると、オペレーティングシステムはスーパーブロックにアクセスし、ファイルシステムの構造と状態に関する重要な情報を取得します。この情報は、ファイルシステムへのデータの読み書き、そして保存されたデータの整合性と一貫性の確保に不可欠です。

iノードとディレクトリ

En Unix/Linux、 パーティション、デバイスドライブなど、すべてがファイルです。Windowsなどの他のシステムではそうではありません。しかし、すべてがファイルである場合、フォルダやディレクトリでさえも特別なファイルタイプと見なされます。

したがって、ディレクトリは、ファイル名(およびサブディレクトリ名)と inode番号 同じファイルシステム上のファイル、または同じまたは異なるファイルシステム上のファイルやディレクトリへのシンボリックリンクの名前。ハードリンクの場合、inodeはその中にリストされているディレクトリエントリの数を追跡し、リンク数がゼロになるとファイルブロックを削除します。これはソフトリンクまたはシンボリックリンクの場合は異なります。シンボリックリンクを削除しても、リンク先のファイルには影響しません。ただし、そのリンクへのシンボリックリンクを持つファイルが削除されると、リンクは使用できなくなります。

Unix/Linuxファイルシステムでは、ファイル 複数の名前を持つことができる。 同じディレクトリまたは異なるディレクトリ内のそれぞれの名前のディレクトリ エントリがあり、すべてが、データが格納されているディスク ブロックのリストを維持する同じ inode 構造を指します。

これらをより深く理解するには、inode(インデックスノード)とは何かを覚えておくことが重要です。inodeは、*nixファイルシステムの基本的なデータ構造です。 重要な情報を表し、保存します ファイルシステム内のファイルまたはディレクトリ。したがって、システムではフォルダとファイルの両方がinodeとして認識されます。

これを可能にするには、各inodeが次の 情報:

  • iノード番号: 各ファイルまたはディレクトリの一意の識別子。
  • ファイルタイプ: inode が通常のファイル (f)、ディレクトリ (d)、シンボリック リンク (l)、または別の種類のファイルを参照しているかどうかを示します。
  • サイズ: ファイルの現在のサイズ(バイト単位)。
  • 権限と所有者: ファイルへのアクセス(読み取り、書き込み、実行)と変更の権限を持つユーザーと、ファイルの所有者(ユーザーまたはルート)に関する情報。所有者は、実際には存在しないユーザーやデバイスなどである場合もあります。
  • 作成/変更日時: inode が最初に作成された日時と最後に変更された日時を記録します。その他のメタデータや拡張権限も含まれる場合があります。
  • リンク数: このinodeに関連付けられているファイルまたはディレクトリ名の数を示します。ディレクトリには少なくとも2つのリンクがあります。1つはディレクトリ自身へのリンク、もう1つは親ディレクトリへのリンクです。
  • データ ブロックへのポインタ: ファイルの実際の内容を格納するストレージユニット上のデータブロックへの参照が含まれます。これらのブロックは、ファイルシステムの実装とファイルのサイズに応じて、直接アドレス、間接アドレス、または二重間接アドレスのいずれかになります。

inodeはファイルシステムの機能にとって非常に重要です。オペレーティングシステムは、inodeによって各ファイルとディレクトリの物理的な位置と関連情報を把握することができます。ファイルまたはディレクトリにアクセスすると、オペレーティングシステムは対応するinode番号を参照して、そのファイルに関連するデータの場所やその他の情報を見つけます。