コンピューター ウィンドウズ インターネット

Windowsファイルシステム。 ファイルシステムWindowsオペレーティングシステムで使用されているファイルシステム

「ファイル」や「フォルダ」、「ディレクトリ」などの用語に慣れています。 しかし、ファイルを管理し、監査し、ファイルの移動を制御するメカニズムは何ですか?

比喩的に言えば、ディスク上のファイルストレージシステムは、新しい商品が絶えず輸入されている巨大で混沌とした倉庫に例えることができます。 どの商品がどこにあり、どのように素早くアクセスするかを正確に知っている倉庫管理者がいます。 ファイルストレージシステムのそのようなマネージャはです。

ファイルシステムがどのように機能するか、どのような種類が存在するかを理解し、システムのパフォーマンスに影響を与えるファイルシステムの基本的な操作について考えてみましょう。

Windowsファイルシステムのしくみ

各ファイルには、オペレーティングシステムによって名前が割り当てられます。この名前は、アドレスと同様に、システム内でファイルを識別します。 このパスは、ファイルが保存されている論理ドライブで始まる文字列であり、その後、すべてのフォルダーがネスト順に表示されます。

プログラムがファイルを必要とするとき、それはWindowsファイルシステムによって処理されるオペレーティングシステムに要求を送ります。 システムは、受信したパスからファイルの保存場所(物理的な場所)のアドレスを受信し、それを要求を送信したプログラムに渡します。

したがって、ファイルシステムには独自のデータベースがあり、一方ではファイルの物理アドレスとそのパスの間の対応を確立し、他方ではサイズ、作成日、ファイルアクセスなどの追加のファイル属性を格納します。権利、その他。

FAT32およびNTFSファイルシステムでは、このデータベースはマスターファイルテーブル(MFT-マスターファイルテーブル)です。

ファイルを移動、コピー、削除すると実際に何が起こりますか?

どんなに奇妙に見えても、ファイルやフォルダを操作するすべての操作がハードドライブの物理的な変更につながるわけではありません。 一部の操作はMFTにのみ変更を加えますが、ファイル自体は同じ場所に残ります。

基本的なファイル操作を実行するときにファイルシステムがどのように機能するかを詳しく見てみましょう。 これは、OSの詰まりがどのように発生するか、一部のファイルの読み込みに非常に長い時間がかかる理由、オペレーティングシステムの速度を上げるために何をする必要があるかを理解するのに役立ちます。

1.ファイルの移動:この操作は、あるパスから別のパスに変更することを意味します。 したがって、マスターファイルテーブルのエントリのみを変更する必要があり、ファイル自体を物理的に移動する必要はありません。 元の場所に変更はありません。

2.ファイルのコピー:この操作は、新しい場所にファイルの別の追加実装を作成することを意味します。 この場合、MFTにエントリが作成されるだけでなく、新しい場所にファイルの別の実際のコピーが表示されます。

3.ファイルの削除:この場合、ファイルは最初にゴミ箱に入れられます。 ゴミ箱の「空」機能を呼び出した後、ファイルシステムはMFTからエントリを削除します。 この場合、ファイルは物理的に削除されず、元の場所に残ります。 そして、それは書き直されるまで存在します。 機密ファイルを削除するときは、この機能を考慮に入れる必要があります。このために特別なプログラムを使用することをお勧めします。

これで、移動操作がコピー操作よりも高速である理由が明らかになりました。 繰り返しますが、2番目のケースでは、メインファイルテーブルに変更を加えるだけでなく、ファイルの物理コピーも作成する必要があります。

どのような種類のファイルシステムがありますか?

1. FAT16(ファイルアロケーションテーブル16)。 2 GB以下のファイルしか処理できなかったレガシーファイルシステムは、4 GB以下の容量のハードドライブをサポートし、65636以下のファイルを保存および処理できました。 テクノロジの開発とユーザーニーズの増大に伴い、このファイルシステムはNTFSに置き換えられました。

2.FAT32。 ストレージメディアに保存されるデータ量の増加に伴い、新しいWindowsファイルシステムが開発および導入され、最大4 GBのファイルをサポートし、ハードドライブの最大容量を8TBバーに設定しました。 原則として、FAT32は現在外部ストレージメディアでのみ使用されています。

3. NTFS(新技術ファイルシステム)。 これは、Windowsオペレーティングシステムを実行しているすべての最新のコンピューターにインストールされている標準のファイルシステムです。 このファイルシステムで処理される最大ファイルサイズは16TBです。 サポートされているハードドライブの最大サイズは256TBです。

NTFSの追加機能は、そのアクションをログに記録することです。 最初に、すべての変更は特別に指定された領域に入力され、その後、ファイルテーブルに書き込まれます。 これにより、停電時などのデータ損失を防ぐことができます。

4. HSF +(階層ファイルシステム+)。 MacOSコンピュータの標準ファイルシステム。 NTFSと同様に、数百テラバイトの容量を持つ大きなファイルとハードドライブをサポートします。

ファイルシステムを変更するには、ハードディスクパーティションをフォーマットする必要があります。 原則として、この操作には、このパーティションで利用可能なすべての情報の完全な削除が含まれます。

ファイルシステムの種類を見つける方法は?

最も簡単な方法:「ファイルエクスプローラー」を開きます–>目的のハードディスクパーティションを選択します–>それを右クリックします–>表示されるメニューで「プロパティ」を選択します–>開いたウィンドウで「 「一般」タブ。

Windowsファイルシステムの保守

ファイルシステムはハードドライブ上で「順序」を維持しないことに注意してください。 Windowsは、最初に出くわした空いているセルに新しいファイルを保存するように設計されています。 さらに、ファイルがこのセルに完全に収まらない場合は、いくつかの部分に分割されます(断片化されます)。 したがって、そのようなファイルのアクセスとオープン時間は増加し、システムの全体的なパフォーマンスに影響を与えます。

これを防ぎ、ファイルシステムを「整理」するには、ハードディスクのパーティションを定期的にデフラグする必要があります。

これを行うには、(上記のように)目的のハードディスクパーティションのプロパティに再度移動し、[ツール]タブに移動して、[最適化]ボタンをクリックします。

開いたウィンドウで、自動ディスク最適化操作を構成できます。

自分でデフラグを実行するには、ハードディスクパーティションを指定し、[ディスクの分析]ボタン–>をクリックしてから、[ディスクデフラグツール]をクリックします。

操作が完了するのを待って、ウィンドウを閉じます。

今日、Windows2000またはWindowsXPをインストールするとき、「どちらのファイルシステムを好みますか-FAT 32またはNTFS?」という質問が必ず発生します。 そして、「私はすでにFATに精通している」と判断した多くの人が、FAT32を選択します。 なぜ遠くまで行くのか-著者が書いた記事の1つにあるXでも、「Win 2000をインストールするとき、システムがより高速に動作するため、FAT32を残しました」...ここで何が問題になっていますか? はい、それは単に速く動作することができないという事実...したがって、そのような間違いを繰り返さないために、少なくとも「すべてがどのように動作するか」を理解することはあなたにとって有用でしょう。 この簡単な概要がお役に立てば幸いです。FAT16、FAT32、NTFSについて見ていきます。
FAT32とほとんど違いがなく、少なくともこれらの違いを知っておくと便利な理由)。

FATファイルシステムは、クラスターと呼ばれるディスクスペースの単位で動作します。 各クラスターには、1つ以上のハードディスクセクターを含めることができます(ハードディスクは通常、512バイトのセクターに分割されています)。 したがって、最小クラスターサイズは512バイトです。 1つ以上のクラスターを使用して、単一のファイルを保管できます。 FATテーブルの各ディスククラスターには、次のファイルクラスターを指すか、ファイルの終わりのマークが含まれる個別のエントリがあります。 各ディレクトリには、そこに含まれるファイルの名前が含まれています。 ファイル名とともに、このファイルの最初のクラスターへのポインターが保管されます。 さらに、ディレクトリには、ファイルが作成された日付、そのサイズ、および属性が格納されます。 属性は、ファイルが非表示になっている、オペレーティングシステムで使用するために予約されている、アーカイブ(バックアップ)する必要がある、または読み取り専用である必要があることを示します。

これが理論ですが、今では欠点があります。ファイルシステム名で「16」が何を意味するのか疑問に思ったことはありませんか。 また、FATファイルアロケーションテーブル(ファイルアロケーションテーブル)は、16ビットの数値を使用してディスククラスターに対応するレコードを識別することを意味します。 したがって、テーブルは65,536エントリ(2の16乗)を超えることはできません。 また、最大クラスターサイズが32 KBであることを考慮すると、ディスクボリュームの最大パーティションは2GBであることがわかります。 ネジに論理ディスクがありますか?おそらくはるかに大きいですか? これが最大の欠点です(ただし、FAT32はこの欠点をほぼ克服していることに注意してください)。 欠点2は、FATシステムがすべてのファイル属性を格納するために1バイトのみを使用することです。 1バイトでどれだけ突き出すことができると思いますか? 正確には、まさにこの理由で、ファイルへのアクセス権やその所有者に関する情報を保存することはできません...欠点3は、FATを使用する場合、ディスクボリュームが大きいほどクラスターサイズが大きくなるという事実にあります。主な「FATの悪趣味」の1つは、1つのファイル=少なくとも1つのクラスターです。 例:クラスターサイズが32 KBで、ファイルサイズが2 KBの場合、ファイルはクラスター全体を占有します。 30KBを失います...ファイルのサイズが34KBの場合も同じことが起こります-次に2つのクラスターが必要になり、2番目に再び30KBが失われます...デメリット数「4と5」-情報ファイルの物理的な場所については、1つの場所に保存されます。FATファイルのテーブル配置です。これにより、次のことが可能になります。a)すべての情報が損傷したり失われたりする可能性が高くなります。 b)検索速度が低下します。 特定のファイルを検索するには、テーブル全体を処理する必要があります。
FAT16はずっと前のMS-DOSの時代に作成されたものであり、当時の要件を完全に満たしていたことを認めなければなりません...

このファイルシステムはFAT16に取って代わりました。 前の段落を注意深く読んだ場合、その違いは、FAT(ファイルアロケーションテーブル)ファイルアロケーションテーブルが32ビットの数値を使用してディスククラスターに対応するレコードを識別することであることをすでに理解しています。 したがって、最大エントリ数は4,294,967,296(2の32乗)になります。 これに関連して、ディスクボリュームの最大サイズが大幅に増加します(最大2TB)。 ただし、これにより、不利な点「1」のみを克服できますが、他のすべては-残念ながら、残ります...そして、小さなネジの所有者にとって特に不快なのは、ディスクスペースの浪費です...そして頻繁な損傷ですさまざまな性質のなど。 FAT愛好家の間のSkandiskは残りが何であるかを知りません…。

これは、New Technology File Systemの略で、名前からわかるように、クールで素晴らしいです...さらに、これらは単なる言葉ではありません! FATと比較すると、NTFSファイルシステムの構造ははるかに複雑で、幅がはるかに広くなっています。
機会。 FATとは異なり、NTFSファイルシステムはすべてのファイル位置情報を1か所に保存するわけではありません。 代わりに、ファイル間のディスクスペースの分散に関する情報は、パーティションのどこにでも配置できる特別なパッケージの一部として保存されます。
(FATシステムの「4つの」欠陥を覚えていますか?) NTFSディレクトリ構造もFATディレクトリ構造とは異なります。 NTFSディスクディレクトリは、ファイルレコードが単純な線形リストではなくバイナリツリーを使用して保存されるため(FATの場合のように)、ファイル検索に適しています。 これは、ファイルを見つけるために解析する必要のあるレコードが少ないことを意味します(ここで、記事の冒頭で述べた作成者が正しいかどうかを検討してください)。 そして、これにインデックス作成の可能性を追加すると、システムはただ飛ぶでしょう!

NTFSファイルシステムには、長いファイル名と拡張ファイル属性のサポートが組み込まれています。 これにより、NTFSパーティションは、ファイルセキュリティ(ACLなど)、ファイルアクセス監査、およびファイル所有権に関連する情報を格納できます。 (今、あなたはあなた自身を除いてすべての人のためにポルノでカタログへのアクセスを禁止することができます、そしてあなたはそうしません
このためにいくつかの追加プログラムが必要になりますが、FAT32を備えたWin9Xには非常に多くのプログラムがあります!)

ディスククォータの設定は、拡張された数のファイル属性を格納する機能に関連するもう1つのNTFS機能です。 これは、特定のユーザーに、ファイルの保存に使用できる一定量のディスク領域を割り当てることができるという事実にあります(これを処理した場合、おそらくすでにこれに遭遇しています。
またはホスティング)。 あなたがそのような経験を持っていなかったなら、私は説明します:あなたがファイルを保存しようとすると、システムはあなたにすでに属しているすべてのファイルのサイズを分析します(ええ、ちょうどだったまさに「所有者」属性によると言及)そしてそれをあなたに割り当てられたディスククォータと比較します。 残りのクォータがこのファイルを収容するのに十分である場合、保存が実行されます。そうでない場合は、「ディスククォータを超えました」というメッセージが表示されます。 それの用途は何ですか? もちろん、あなたはあなたのコンピュータで無料のホスティングを開くつもりはありません...しかしあなたの弟に彼のネジ全体を彼で満たさせないでください
愚かなおもちゃ-それは簡単です(彼に500メガバイトを割り当てます-彼に汚れさせてみてください;-))。

FATを使用するときに、ファイルがディスク上でそれ自体のサイズを超えないことを期待できる場合は、NTFSを使用するときにそれを忘れることができます。 NTFSでは、最小単位はハードディスクセクターに等しく、1つのファイルが1つのクラスターを意味するわけではありません。 さらに、ファイルシステムは、ファイルとディレクトリを個別に圧縮できる属性をサポートしています。 例:80メガバイトのディレクトリがあります。 圧縮後、ディスク上で「キャップ付き」で30メガバイトを占有します...

NTFS5およびWindows2000の新機能により、
公開鍵アーキテクチャを使用する
ファイル、ディレクトリ、またはボリュームを暗号化する
EFSを使用します。 また、確かにすべて
マウントする機能を高く評価します。 から
このプラグで接続できます
ファイル内の任意の場所への任意のディスク/ハード
システム-たとえば、フォルダC:\XXX\をに割り当てます
あなたの論理ドライブR:(これはポルノを意味します:)。

さらに、NTFSは最大16エクサバイトの非常に大きなドライブをサポートします。 (エクサバイトは1,073,741,824ギガバイトです)。 簡単な例:ハードドライブが1秒あたり1メガバイトのデータを書き込むことができる場合、1エクサバイトを書き込むのに10億秒かかります(16ではなく1に注意してください)。 1年で300万秒あります。 したがって、1エクサバイトのデータを保存するには30万年かかるでしょう...私はここで彼らが最も近い星であるアルファケンタウリに船を進水させると聞いた。 彼は200年後にそこに飛ぶと信じられています...

したがって、時代に遅れないようにする場合は、NTFSを選択します。 しかし、そのすべての「優れた機能」の背後には1つの問題があることを忘れないでください。それは、DOSでは表示されません。 したがって、以前はシステムのクラッシュを恐れていた人々はNTFSに切り替えませんでした。 しかし、それは前でした! Windows 2000の登場により、オペレーティングシステムが破損している場合でも、NTFSパーティションにアクセスできる「回復コンソール」という新機能が登場しました。 この奇跡のインストールは非常に簡単です。OSをインストールした後、「/ cmdcons」キーを使用してインストーラーを再実行すると、回復コンソールがオペレーティングシステムの選択メニューに追加されます。
さて、あなたが古くてシンプルなものが好きなら-それならFATはあなたのためだけに作成されました...。

Windows PhoneがNTFSを使用していることをご存知ですか? ほとんどのメモリカードとほとんどすべてのUSBドライブがまだ古き良きFATを使用しているのはなぜですか? フルHDムービーを一部のフラッシュドライブに保存し、他のドライブには保存できないのはなぜですか? 一部のデバイスが最大32GBのSDHCカードのみをサポートするのはなぜですか。また、64GBのSDXCを使用するように強制するにはどうすればよいですか。 これらおよび他の多くの質問は、特定のストレージデバイスで使用されるファイルシステムのタイプに関連しています。 しかし、これはWindowsと何の関係があるのでしょうか。

パーソナルコンピュータの歴史の初め(DOSテキストボックスとフロッピーディスクの時代だと思います)、使用されたファイルシステムはFAT12だけでした。 数メガバイトのデータを保存できるハードドライブの出現により(そうです、ギガバイトではなくメガバイトです!)、FAT16と呼ばれる新しいバージョンのFATが開発されました。 このファイルシステムの下で、Windows 95が開発され、より長いファイル名のサポートという形で「アップグレード」のみを受けました。 Windows 98では、MicrosoftはFAT32と呼ばれる別の新しいバージョンのFATのサポートを追加して、大容量のハードドライブをサポートしました(はい、その時点ですでにギガバイト単位のディスク容量を測定していました)。

Windows NTのパラレルユニバースでは、Microsoftは常に新しいテクノロジファイルシステム(NTFS)を使用していました。 Windows NT 4、Windows2000以降のWindowsXP、Vista、Windows 7、8、8.1以降のWindows10はNTFSを使用します。

別の並列ユニバースであるリムーバブルストレージユニバースでは、ユニバーサルFAT32(4 GBのファイルサイズ制限に達した場合)と、新しいが広くサポートされていない(ライセンス制限のため)exFATのどちらかを選択できます。 ちなみに、64GB以上の容量を持つすべてのSDXCカードで選択されるファイルシステムとしてexFATが使用されています。

そのため、現在、ファイルシステムには3つの異なるファミリがあります。古いがまだ広く使用されているFAT32、新しいNTFS、および新しく開発されたSolidExFATに最適化されたものです。 これらのファイルシステムのどれをいつ使用しますか? そして、それらの違いは何ですか?

FAT32:当然の選択

FAT32は、Windows98またはWindowsMEで使用されている唯一のファイルシステムです。 FAT32は、実際には32GB以下のSDカードに最適なファイルシステムです。 最後に、FAT32は、64GB以上を含むUSBドライブのフォーマットによく使用されます。

古いFAT32…その主な制限はよく知られています。 FAT32は、最大4GBのサイズのファイルをサポートします。 これが1つのファイルに多くかかると思われる場合は、1つのHDビデオに4.5〜10 GBかかることを覚えておいてください。この制限が、現代の現実においてどれほど重要であるかがすぐに明らかになります。 その他の制限には、強力なサポートの欠如、アクセス制御の絶対的な欠如、暗号化、圧縮、またはフェイルオーバーの欠如が含まれます。

言い換えれば、それは完全にシンプルで軽量のファイルシステムであり、デジタルカメラやカムコーダー、シンプルなスマートフォン、MP3プレーヤー、および同様のデバイスなど、ほとんどすべての低パフォーマンスのポータブル電子機器に適しています。 FAT32は、その由緒ある時代と1997年以来のWindowsでの幅広い人気により、冷蔵庫やコーヒーメーカーを含むほぼすべてのアプライアンスでサポートされています。 つまり、1つのリムーバブルストレージデバイスを持ち歩き、どのプラグインでも使用できることを確認したい場合は、FAT32が必要です。

NTFS:システムドライブ

ただし、FAT32の制限により、今日のコンピューティング環境でFAT32を効果的に使用することはできません。 アクセス制御の欠如は1つのことであり、ロギングの絶対的な欠如とフェイルオーバーのヒントは別のことです。 ファイルサイズが限られていることも大きな欠点です。 その結果、MicrosoftはNew Technology File System(NTFS)と呼ばれる新しいファイルシステムを導入しました。

NTFSには、FATに欠けているものがすべてあります。 強力なアクセス制御オプション? お願いします。 フェイルオーバーとロギング? それを得る。 個々のファイル、フォルダ、およびディスクボリューム全体の即時圧縮と暗号化? もちろん。 代替データストリーム、強化されたセキュリティ対策、ファイルシステム自体と重要なシステムファイルのバックアップ、およびその他の多くの機能... 1994年の最初のリリース以来、NTFSは、互換性を高めるものを含め、すべての新しい更新を受け取りました。 その優れた設計とシンプルな実装は、今日でも他のファイルシステムに匹敵するものではありません。 WindowsPhone8および8.1を実行しているエントリーレベルのスマートフォンでも使用できるほど汎用性があります。 しかし、それがこのような優れたファイルシステムである場合、なぜ誰もがどこでもそれを使用しないのでしょうか。

ご想像のとおり、NTFSには欠陥がないわけではありません。 1994年にサーバー操作用に設計されたこのファイルシステムは、その多くの構造を維持するために常に多くの処理能力を必要としてきました。 そのシステムエントリは急速に成長し、貴重なスペースを占有し、それらのNANDフラッシュストレージデバイスに余分な負荷を追加します。 最後に、大型のハードドライブ以外のものを使用すると、そのオーバーヘッドが高すぎるため、システムはまだ一般に受け入れられていません。 最後になりましたが、NTFSは、このファイルシステムを競合他社にライセンス供与することを望まないMicrosoftによって特許を取得しています。

exFAT:サポートされている場合に最適...

FAT32の制限を克服し、NTFSがNANDベースのメディアにかけるオーバーヘッドを減らすために、MicrosoftはExtendedFATまたはexFATと呼ばれる別のファイルシステムを開発しました。 このファイルシステムは、主に元のFATと同じ概念に基づいていますが、FAT32に存在するファイルサイズ制限のない真の64ビットファイルシステムになりました。 これが、exFATが大型SDカードの標準として使用される理由です(SDXC標準では、64 GB以上のすべてのSDカードをexFATでフォーマットする必要があります)。 したがって、64GBのmicroSDXCカードを購入すると、exFATベースになります...そのため、スマートフォンやタブレットで認識されない場合があります。

exFATがどこでも古代のFAT32に取って代わっていない理由は、有料ライセンスです。 誰もがロイヤリティフリーであるFAT32とは異なり、デバイスでexFATを使用したいメーカーは、Microsoftからライセンス料を請求されます。 その結果、Androidスマートフォン、ローエンドのAndroidタブレット、安価なカメラのメーカーは、サポートされるファイルシステムのリストからexFATを除外することを好み、ライセンスのデバイスコスト(リリースされるハードウェアの単位あたり)を数セント節約することを好みます。 その結果、新しい64 GBマイクロSDカードをそのようなデバイスに挿入すると、カードが認識されない可能性が高くなります。

この制限を個人的に克服できますか? ほとんどの場合、そうです、そして非常に簡単です。 カードリーダーを介してSDカードをPCに接続し、フォーマットするだけです...ご想像のとおり... FAT32! したがって、4 GBを超えるファイルを保存することはできなくなりますが、メモリカードは、技術仕様によれば32 GBを超えるSDカードをサポートしないAndroidデバイスで認識され、スムーズに動作する可能性があります。 。

(一部のデバイスは、SDXCメモリカードを物理的に認識できない場合があることに注意してください。はい、これらは数年間製造されていませんが、古いデバイスは、提供されているファイルシステムに関係なくSDXCカードをサポートしていない可能性があります)

ちょっと待ってください...WindowsPhoneはMicrosoftOSなので、Windows PhoneデバイスはデフォルトでexFATをサポートしませんか? そこには! Windows Phone 8および8.1には、exFATサポートが組み込まれており、WindowsPhoneプラットフォーム用のデバイスをリリースしたいメーカーには無料で提供されます。 Microsoftは、「刺激パッケージ」の一部として無料のexFATライセンスを提供し、より多くのメーカーがWindowsPhoneプラットフォームに参加することを奨励しています。

最後に、完全なWindows8または8.1を実行しているすべてまたはほぼすべてのWindowsRTタブレットは、exFATをサポートし、64GB以上のSDカードを問題なく認識します。

Windowsファイルシステムの復元

ほとんどすべてのWindowsベースのデータ回復ツールはFAT32とNTFSのサポートを提供します。 exFATをサポートするツールは、Microsoftのライセンス制限のため、利用できません。 3つのWindowsファイルシステムすべてをサポートするツールの1つは、RSパーティションリカバリです。

最後に、ファイルシステムの1つのみのサポートが必要な場合は、次を選択することでコストを節約できます。

オペレーティングシステムのコアは、ファイル管理を提供するモジュールです- ファイルシステム.

ファイルシステムの主なタスク-プログラムと物理的な入力/出力デバイス(さまざまなドライブ)の相互作用を保証します。 また、ファイルとディレクトリをディスクに保存するための構造、ファイル名、有効なファイル属性、アクセス権などを指定するためのルールも定義します。

一般に、ファイルシステムは、ファイル管理ツールとファイルの共有ストレージの両方と見なされます。

ファイルは任意のデータの名前付きシーケンスであり、その標準構造により、マシンのメモリに確実に配置されます。 ファイルには、プログラム、数値データ、テキスト、エンコードされた画像または音声などを含めることができます。各ファイルにはディスク上に名前付きの領域があり、ファイルは異なる場所の空きクラスターを占有できるため、配置に連続したスペースを必要としません。ディスクの一部。

ファイル名構築規則が特定のファイルシステムに依存する文字列です。 Windowsでのファイル名の最大長は255文字です。 名前には、スペースを含む任意の文字を含めることができます。ただし、スラッシュ(\および/)、コロン(:)、アスタリスク(*)、疑問符(?)、二重引用符( ")、より小さいおよびより大きい記号より(< и >)、「パイプライン」記号(|)。 システムは、長い名前で使用される小文字を保持します。

名前に加えて、ファイルには 拡張子(タイプ)名前からドットで区切った最大3文字の長さ。 ファイルのプロパティには、次のものも含まれます。実際のサイズと占有されているディスク容量。 作成時、最終変更およびアクセス。 ファイルの作成者の名前。 パスワード、属性などにアクセスします。

ファイルには次の属性を含めることができます。

R(読み取り専用)-「読み取り専用」。この属性を持つファイルを変更または削除しようとすると、対応するメッセージが表示されます。

H(隠し)-「隠しファイル」。フォルダの内容を(特別な設定やキーなしで)表示する場合、この属性を持つファイルに関する情報は表示されません。

A(アーカイブ)-「アーカイブされていないファイル」。この属性は、各ファイルが作成され、ファイルアーカイブおよびバックアップツールによって削除されるときに設定されます。

ファイルとその体系化を操作するのに便利なように、フォルダ(ディレクトリ)がディスク上に作成され、その構造によってデータの論理的な編成が決まります。

フォルダ(カタログ)-これは、ファイル名、ファイルサイズに関する情報、最終更新時刻などを格納するディスク上の特別な場所です。 フォルダ名は、ファイル名と同じ規則に従って形成されます。

Windowsのフォルダ構造は階層的(ツリーのような)です。 トップレベルのフォルダ(main(root))は自動的に作成され、名前はありません。 ファイルだけでなく、第1レベルのフォルダーに関する情報も含まれています(第1レベル以降のフォルダーはユーザーが作成します)。 ユーザーが現在作業しているフォルダーは、 現在.

フォルダとファイルは、作成、削除、コピー、移動したり、プロパティやアクセス制御を変更したりできます。

メディア上のデータの物理的な編成はファイルシステムに依存します。ファイルシステムは、ディスクのフォーマット中に特別な領域の割り当てを提供します。 システムエリアエリアデータ。 システム領域の主なコンポーネントは、ブートレコード、ファイルアロケーションテーブル、およびルートディレクトリ(フォルダ)です。 データ領域にはファイルとフォルダが含まれています。

ディスクのデータ領域全体がに分割されます クラスター、ディスク上の同じサイズのデータ​​の分割できないブロックです。 すべてのクラスターに番号が付けられます。 ディスクの最初には、ディスク上で使用可能なクラスターと同じ数のエントリを含むファイルアロケーションテーブルがあります。 これには、ファイルが配置されているクラスター番号、未使用のクラスターのマーク、および特定の値でマークされた破損したクラスターに関する情報が含まれています。これらのクラスターは、その後は使用されません。

各ファイルクラスターには、そのクラスターのチェーン内の次のファイルクラスターの番号が含まれています。 したがって、特定のファイルを含むすべてのクラスターの数を判別するには、ディスクの目次に格納されているチェーンの最初のクラスターの数を知るだけで十分です。 ファイルが占めるボリュームは、クラスター数の倍数です。 各クラスターに個別の番号が存在するため、ファイルが配置されている領域を見つけることができ、クラスターが近くに配置されている必要はありません。 ファイルのさまざまなフラグメントが隣接していないクラスターにある場合は、 断片化ファイル。

コンピューター上の各ディスクには一意の名前があります。 ディスクはラテンアルファベットの文字で名前が付けられています。 通常、フロッピーディスクドライブ(HDD)にはA:という名前が割り当てられ、ハードドライブ(HDD)-C:という名前が割り当てられます。

ハードドライブは物理デバイスです。 特別なプログラムを使用して、ハードディスクのディスクスペースで効率的な作業を整理するために、それはいくつかのセクションに分かれています- 論理ドライブ、それぞれがシステムによって個別のディスクと見なされ、ラテンアルファベットの後続の文字(D、Eなど)によって呼び出されます。

Windows XPでは、ハードドライブをFATまたはNTFSファイルシステムでフォーマットできます。

FAT(ファイルアロケーションテーブル)システム-はMS-DOSおよびWindows9xおよびMeのファイルアロケーションテーブルであるため、これらのOSによって理解されます。 ただし、フォールトトレランスは低く、緊急停電が発生した場合、データが失われる可能性が高くなります。

NTFS(新技術ファイルシステム)-特にWindowsNT用にMicrosoftによって開発されました。 ハードウェア障害や停電の場合でもコピーする場合のデータの安全性を保証し、リソース効率の点でFATを上回ります(たとえば、4 GBを超えるファイルで動作します)。複数のフォルダを組み合わせた動的な」ハードドライブは、アクセス制御や情報保護などのツールを提供します。

FATからNTFSへの論理ディスクの転送は、情報を失うことなく、標準のWindowsプログラムまたは特別なプログラムによって実行されます。 NTFSからFATに変換できる特別なプログラムもありますが、ほとんどの場合、そのような変換にはディスクのフォーマットが必要です。

多数の異なるファイルをディスクに保存できます。 ファイルの操作の便宜のために、目的、コンテンツ、作成者、またはその他の特性によるファイルの体系化のために、ディレクトリがディスク上に作成され、その構造によって決定されます。 データの論理的編成。 カタログ-これは、ファイル名、ファイルサイズ、最終更新時刻、プロパティなどに関する情報を格納するディスク上の特別な場所です。 トップレベルディレクトリ- ルート(メイン)ディレクトリディスクは自動的に作成され、名前はありません。 これには、ファイルの名前だけでなく、第1レベルのサブディレクトリの名前も含まれます(第1レベル以降のディレクトリはユーザーが作成します)。 第1レベルのサブディレクトリには、第2レベルのファイルとサブディレクトリの名前などが含まれる場合があります。 ユーザーが現在作業しているディレクトリは次のように呼ばれます 現在。

ファイル名とその属性はディレクトリに保存されます。 ファイル名がディレクトリに保存されている場合、ファイルはそのディレクトリにあると言われます。 ルートでない場合、ディレクトリには名前3でアクセスします。

各ディスクは複数のディレクトリを持つことができます。 各ディレクトリには、ファイルやその他のディレクトリを含めることができます。 ファイルシステムによっては、ディレクトリを1つの上位ディレクトリにしか含めることができない場合、ディレクトリ構造はツリーのようになります(図3.2、 a)、ディレクトリを異なるディレクトリに含めることができる場合は、ネットワーク(図3.2.6)。 ネットワーク構造は、WindowsファミリのOSのツリー構造であるUnixに実装されています。

米。 3.2。 ディレクトリ構造:a-ツリーのような; b-ネットワーク

Windowsでは、ディレクトリはフォルダと呼ばれます。 フォルダ(ディレクトリ)とファイルは、作成、削除、コピー、移動したり、プロパティやアクセス制御を変更したりできます。

実際のハードウェアの複雑さを「シールド」するOSの機能は、OSの主要なサブシステムの1つに非常に明確に表れています。 ファイルシステム。 オペレーティングシステムは、外部ドライブに保存されている個別のデータセットをファイルとして仮想化します。これは、シンボリック名を持つ単純な非構造化バイトシーケンスです。 データの操作に便利なように、ファイルは次のようにグループ化されます。 カタログ、順番に、グループを形成します-より高いレベルのディレクトリ。 ユーザーはOSを使用して、名前による検索、削除、外部デバイス(ディスプレイなど)でのコンテンツの表示、コンテンツの変更と保存などのアクションをファイルやディレクトリで実行できます。

さまざまなタイプのディスクのシリンダーや表面にランダムに散在する多数のデータセットを、ファイルやディレクトリのよく知られた便利な階層構造の形で表すには、オペレーティングシステムが多くの問題を解決する必要があります。 OSファイルシステムは、ユーザーまたはアプリケーションプログラマーが操作するファイルのシンボリック名をディスク上の物理データアドレスに変換し、ファイルへの共有アクセスを整理し、不正アクセスからファイルを保護します。

その機能を実行するとき、ファイルシステムは外部デバイス管理サブシステムと緊密に相互作用します。外部デバイス管理サブシステムは、ファイルシステムの要求に応じて、ディスクとRAMの間でデータを転送します。

入出力サブシステムとも呼ばれる外部デバイス制御サブシステムは、コンピューターに接続されているすべてのデバイスへのインターフェースとして機能します。 これらのデバイスの範囲は非常に広範囲です。 ハードドライブ、フロッピードライブ、光ドライブ、プリンター、スキャナー、モニター、プロッター、モデム、ネットワークアダプター、およびアナログ-デジタルコンバーターなどのより特殊なI / Oデバイスの製品範囲は、数百のモデルになります。 これらのモデルは、コンピューターのプロセッサーおよびメモリーと情報を交換するために使用されるコマンドのセットとシーケンス、操作の速度、送信データのエンコード、共有の可能性、およびその他の多くの詳細が大幅に異なる場合があります。

外部デバイスの特定のモデルを制御し、そのすべての機能を考慮に入れるプログラムは、通常、 運転者このデバイス(英語のドライブから-管理、リード)。 ドライバーは、ZyXELのU-1496Eモ​​デムなどの単一のデバイスモデル、またはHayes互換モデムなどの特定のタイプのデバイスのグループを制御できます。 オペレーティングシステムにできるだけ多くの異なるドライバーが含まれていることはユーザーにとって非常に重要です。これにより、さまざまなメーカーの多数の外部デバイスをコンピューターに接続できるようになります。 市場でのオペレーティングシステムの成功は、適切なドライバーの可用性に大きく依存します(たとえば、必要な外部デバイスドライバーが多数ないことが、OS / 2の人気が低い理由の1つでした)。



デバイスドライバーの作成は、特定のOSの開発者と、外部デバイスを製造する企業のスペシャリストの両方によって実行されます。 オペレーティングシステムは、I / Oデバイス会社の開発者がデバイスとともにそのオペレーティングシステムのドライバーを出荷できるように、ドライバーと残りのOSの間で明確に定義されたインターフェイスを維持する必要があります。

アプリケーションプログラマーは、プログラムを開発するときにドライバーインターフェイスを使用できますが、これはあまり便利ではありません。このようなインターフェイスは通常、多くの詳細を伴う低レベルの操作です。

異種I/Oデバイスへの高レベルの統合アプリケーションプログラミングインターフェイスを維持することは、OSの最も重要なタスクの1つです。 UNIXの登場以来、ほとんどのオペレーティングシステムでのこの統一されたインターフェイスは、ファイルアクセスの概念に基づいています。 この概念は、外部デバイスとの交換は、名前があり、構造化されていないバイトシーケンスであるファイルとの交換のように見えるというものです。 ファイルは、ディスク上の実ファイル、英数字端末、プリンター、またはネットワークアダプターのいずれかです。 ここでも私たちは扱っています 実際のハードウェアをユーザーフレンドリーでプログラマーフレンドリーな抽象化に置き換えるオペレーティングシステムのプロパティ.

ファイルとデバイスを管理するためのOSタスク

マルチプログラムOSの入出力サブシステムは、コンピューターの外部デバイスとデータを交換するときに、いくつかの一般的なタスクを解決する必要があります。その中で最も重要なものは次のとおりです。

入出力デバイスとプロセッサの並列動作の編成。

為替レートとデータキャッシングの調整。

プロセス間のデバイスとデータの分離。

デバイスとシステムの他の部分との間に便利な論理インターフェースを提供します。

システムに新しいドライバーを簡単に含めることができる、幅広いドライバーのサポート。

複数のファイルシステムのサポート。

同期および非同期I/O操作のサポート。

オペレーティングシステムの主なタスクの1つは、ディスクに保存されているデータを操作するときにユーザーに利便性を提供することです。 これを行うために、OSは、保存されたデータの物理構造をユーザーフレンドリーな論理モデルに置き換えます。 論理ファイルシステムモデル形で具体化 ディレクトリツリー、NortonCommanderやWindowsExplorerなどのユーティリティによって、シンボリック複合ファイル名、ファイルコマンドで表示されます。 このモデルの基本的な要素は ファイル、ファイルシステム全体と同様に、論理構造と物理構造の両方で特徴付けることができます。

ファイル書き込みおよび読み取りが可能な外部メモリの名前付き領域です。 ファイルは、通常は磁気ディスク上の電力依存メモリに保存されます。 ただし、例外なくルールはありません。 そのような例外の1つは、ファイルシステムを模倣する構造がRAMに作成される、いわゆるramdiskです。

ファイルを使用する主な目的:

情報の長期的かつ信頼性の高い保管。 電力に依存しないストレージデバイスを使用することで長寿命を実現し、ファイルへのアクセスとOSプログラムコードの一般的な構成を保護することで高い信頼性を実現します。ハードウェア障害によって保存された情報が破壊されることはほとんどありません。ファイル内。

情報の共有。 ファイルは、人間が読み取れる記号名と、保存されている情報およびファイルの場所の永続性を使用することにより、アプリケーションとユーザー間で情報を共有するための自然で簡単な方法を提供します。 ユーザーは、ファイルをグループに結合するディレクトリディレクトリ、機能ごとにファイルを検索するためのツール、ファイルを作成、変更、および削除するための一連のコマンドなど、ファイルを操作するための便利なツールを持っている必要があります。 ファイルは1人のユーザーが作成してから、まったく別のユーザーが使用できますが、ファイルの作成者または管理者は他のユーザーへのアクセス権を決定できます。 これらの目標は、ファイルシステムによってOSに実装されます。

ファイルシステム(FS)は、次のようなオペレーティングシステムの一部です。

ディスク上のすべてのファイルのコレクション。

ファイルディレクトリ、ファイル記述子、空きディスク容量および使用済みディスク容量割り当てテーブルなど、ファイルの管理に使用されるデータ構造のセット。

ファイルの作成、削除、読み取り、書き込み、命名、検索など、ファイルに対するさまざまな操作を実装する一連のシステムソフトウェアツール。

ファイルシステムを使用すると、プログラムは、ファイルを表す抽象オブジェクトに対してアクションを実行するための一連の非常に単純な操作を実行できます。 そうすることで、プログラマーは、ディスク上のデータの実際の場所、データバッファリング、および長期ストレージからデータを転送するその他の低レベルの問題の詳細に対処する必要がありません。 これらの機能はすべてファイルシステムによって実行されます。 ファイルシステムは、ディスクスペースを割り当て、ファイルの命名をサポートし、ファイル名を外部メモリ内の対応するアドレスにマップし、データへのアクセスを提供し、ファイルの共有、保護、および回復をサポートします。

したがって、ファイルシステムは、長期データストレージの物理的な編成のすべての複雑さを保護し、このストレージのより単純な論理モデルをプログラムに提供するだけでなく、一連の簡単なデータを提供する中間層の役割を果たします。 to-ファイルを操作するためのコマンドを使用します。

FSによって解決されるタスクは、コンピューティングプロセスが全体として編成される方法によって異なります。 最も単純なタイプは、たとえばMS-DOSを含むシングルユーザーおよびシングルプログラムオペレーティングシステムのFSです。 このようなFSの主な機能は、次のタスクを解決することを目的としています。

ファイルの命名;

アプリケーションのプログラミングインターフェイス。

ファイルシステムの論理モデルをデータウェアハウスの物理組織にマッピングします。

電源障害、ハードウェアおよびソフトウェアエラーに対するファイルシステムの復元力。

FSタスクは、シングルユーザーマルチプログラムオペレーティングシステムの操作でより複雑になります。これは、1人のユーザーの作業用に設計されていますが、複数のプロセスを同時に実行する機会を与えます。 このタイプの最初のオペレーティングシステムの1つはOS/2でした。 上記のタスクに加えて、新しいマルチプロセスファイル共有タスクが追加されます。 この場合のファイルは共有リソースです。つまり、ファイルシステムは、そのようなリソースに関連する複雑な問題全体を解決する必要があります。 特に、FSは、ファイルとその部分をブロックし、競合を防ぎ、デッドロックを排除し、コピーを調整するための手段を提供する必要があります。

マルチユーザーシステムでは、別のタスクが表示されます。あるユーザーのファイルを別のユーザーによる不正アクセスから保護します。 さらに複雑なのは、ネットワークオペレーティングシステムの一部として動作するファイルシステムの機能です。

ファイルシステムは、機能的に異なるいくつかをサポートします ファイルタイプ、通常、通常のファイル、ディレクトリファイル、特殊ファイル、名前付きパイプ、メモリマップトファイルなどが含まれます。

通常のファイル、または単にファイルには、ユーザーが入力した、またはシステムとユーザープログラムの操作の結果として形成された任意の性質の情報が含まれています。 最新のオペレーティングシステム(UNIX、Windows、OS / 2など)のほとんどは、通常のファイルの内容と構造を制限または制御していません。 通常のファイルの内容は、それを処理するアプリケーションによって決定されます。 たとえば、テキストエディタは、コードで表された文字列で構成されるテキストファイルを作成します。 これらは、ドキュメント、プログラムのソースコードなどです。テキストファイルは、画面上で読み取ったり、プリンタで印刷したりできます。 バイナリファイルは文字コードを使用せず、実行可能プログラムコードやアーカイブファイルなどの複雑な内部構造を持っていることがよくあります。 すべてのオペレーティングシステムは、少なくとも1つのタイプのファイル(独自の実行可能ファイル)を認識できる必要があります。

カタログ-これは、非公式な機能に従ってユーザーによってグループ化された一連のファイルに関するシステム参照情報を含む特殊なタイプのファイルです(たとえば、1つの契約のドキュメントを含むファイル、または1つのソフトウェアパッケージを構成するファイルが1つのグループに結合されます) 。 多くのオペレーティングシステムでは、ディレクトリに他のディレクトリを含む任意の種類のファイルを含めることができるため、ツリー構造を簡単に見つけることができます。 ディレクトリは、ファイル名をファイルシステムがファイルを管理するために使用する特性にマップします。 このような特性には、特に、ファイルのタイプとディスク上のその場所、ファイルへのアクセス権、およびファイルの作成と変更の日付に関する情報(またはこのデータを含む別の構造へのポインター)が含まれます。 他のすべての点で、ディレクトリはファイルシステムによって通常のファイルのように扱われます。

特別ファイルファイルと外部デバイスにアクセスするためのメカニズムを統合するために使用されるI/Oデバイスに関連付けられたダミーファイルです。 特殊ファイルを使用すると、ユーザーは通常のファイル書き込みまたはファイル読み取りコマンドを使用してI/O操作を実行できます。 これらのコマンドは、最初にファイルシステムプログラムによって処理され、次に要求のある段階で、オペレーティングシステムによって、対応するデバイスを制御するためのコマンドに変換されます。

最新のファイルシステムは、シンボリックリンク、名前付きパイプ、メモリマップトファイルなどの他の種類のファイルもサポートしています。

ユーザーは次の方法でファイルにアクセスします 象徴的な名前。 ただし、人間のメモリの容量により、ユーザーが名前で参照できるオブジェクト名の数が制限されます。 名前空間の階層構造により、これらの境界を大幅に拡張できます。 これが、ほとんどのファイルシステムが階層構造を持っている理由です。階層構造では、下位レベルのディレクトリを上位レベルのディレクトリに含めることでレベルが作成されます(図2.16)。

図2.16。 ファイルシステムの階層(a-単一レベルの構造、b-ツリー構造、c-ネットワーク構造)

ディレクトリ階層を表すグラフは、ツリーまたはネットワークにすることができます。 ファイルが1つのディレクトリにのみ入ることが許可されている場合(図2.16、b)、ディレクトリはツリーを形成し、ファイルが一度に複数のディレクトリに入ることができる場合はネットワークを形成します(図2.16、c)。 たとえば、MS-DOSとWindowsでは、ディレクトリはツリー構造を形成しますが、UNIXではネットワーク構造を形成します。 ツリー構造では、各ファイルはリーフです。 最上位ディレクトリは呼び出されます ルートディレクトリ、またはルート。

このような組織では、ユーザーはすべてのファイルの名前を覚える必要がありません。ディレクトリを順番に参照して見つけるには、このファイルまたはそのファイルをどのグループに割り当てることができるかを大まかに想像するだけで十分です。 階層構造は、マルチユーザー作業に便利です。ファイルを持つ各ユーザーは、自分のディレクトリまたはディレクトリのサブツリーに配置され、同時にシステム内のすべてのファイルが論理的に接続されます。

階層構造の特殊なケースは、すべてのファイルが1つのディレクトリに含まれる単一レベルの組織です(図2.16、a)。

すべてのファイルタイプには記号名があります。 階層的に編成されたファイルシステムでは、単純、複合、相対の3種類のファイル名が一般的に使用されます。

単純な、または短い、象徴的な名前同じディレクトリ内のファイルを識別します。 単純な名前はユーザーとプログラマーによってファイルに割り当てられますが、文字の命名法と名前の長さの両方に関するOSの制限を考慮する必要があります。 比較的最近まで、これらの境界は非常に狭かった。 したがって、一般的なFATファイルシステムでは、名前の長さは8.3スキーム(8文字-名前自体、3文字-名前拡張子)によって制限され、s5ファイルシステムでは、UNIXOSの多くのバージョンでサポートされています。単純なシンボリック名には、14文字を超える文字を含めることはできません。 ただし、長い名前を使用すると、このファイルに何が含まれているのかを明確に示す覚えやすい名前をファイルに付けることができるため、ユーザーにとってははるかに便利です。 したがって、最新のファイルシステム、および既存のファイルシステムの拡張機能は、長くて単純な文字ファイル名をサポートする傾向があります。 たとえば、Windows NTオペレーティングシステムに含まれているNTFSおよびFAT32ファイルシステムでは、ファイル名の長さは最大255文字です。

階層型ファイルシステムでは、異なるディレクトリに属している場合、異なるファイルに同じ単純な記号名を付けることができます。 つまり、「多くのファイル-1つの単純な名前」スキームがここで機能します。 このようなシステムでファイルを一意に識別するために、いわゆるフルネームが使用されます。

フルネームルートから指定されたファイルへのパスが通過するすべてのディレクトリの単純なシンボリック名のチェーンです。 したがって、フルネームは複合名であり、OSで受け入れられている区切り文字によって単純な名前が互いに区切られています。 多くの場合、円記号または円記号が区切り文字として使用され、ルートディレクトリの名前を省略するのが通例です。 図2.16bでは、2つのファイルの単純な名前はmain.exeですが、それらの複合名/depart/main.exeと/user/anna/main.exeは異なります。

ツリーファイルシステムでは、ファイルとそのフルネームの間に「1つのファイル-1つのフルネーム」という1対1の対応があります。 ネットワーク構造を持つファイルシステムでは、ファイルを複数のディレクトリに含めることができるため、いくつかのフルネームを付けることができます。 ここでは、「1つのファイル-多くのフルネーム」という対応が有効です。 どちらの場合も、ファイルはフルネームで一意に識別されます。

ファイルは相対名でも識別できます 。 相対名ファイルは「現在のディレクトリ」の概念によって定義されます。 各時点での各ユーザーについて、ファイルシステムのディレクトリの1つが最新であり、このディレクトリは、OSのコマンドでユーザー自身が選択します。 ファイルシステムは、現在のディレクトリの名前を修正して、相対名に加えて完全なファイル名を形成できるようにします。 相対名を使用する場合、ユーザーは、ルートが現在のディレクトリから指定されたファイルに通過するディレクトリ名のチェーンによってファイルを識別します。 たとえば、現在のディレクトリが/ userの場合、/ user / anna/main.exeの相対ファイル名はanna/main.exeです。

一部のオペレーティングシステムでは、複数の単純な名前を同じファイルに割り当てることができます。これは、エイリアスとして解釈できます。 この場合、ネットワーク構造を持つシステムの場合と同様に、各単純ファイル名には少なくとも1つの完全修飾名があるため、1ファイル多修飾名の対応が確立されます。

完全修飾名はファイルを一意に識別しますが、ファイルとその名前が1対1で対応している場合、オペレーティングシステムはファイルを操作しやすくなります。 この目的のために、ファイルに一意の名前を割り当て、「1つのファイル-1つの一意の名前」という関係が有効になるようにします。 一意の名前は、ユーザーまたはアプリケーションによってファイルに割り当てられた1つ以上の記号名とともに存在します。 一意の名前は数値識別子であり、オペレーティングシステムのみを対象としています。 このような一意のファイル名の例は、UNIXシステムのiノード番号です。

「ファイル」の概念には、ファイルに保存されているデータと名前だけでなく、属性も含まれます。 属性ファイルのプロパティを説明する情報です。 可能なファイル属性の例:

ファイルの種類(通常のファイル、ディレクトリ、特殊ファイルなど)。

ファイル所有者;

ファイル作成者;

ファイルにアクセスするためのパスワード。

許可されたファイルアクセス操作に関する情報。

作成時、最終アクセス、および最終変更。

現在のファイルサイズ。

最大ファイルサイズ;

読み取り専用フラグ。

「隠しファイル」に署名します。

「システムファイル」に署名します。

「アーカイブファイル」に署名します。

「バイナリ/文字」に署名します。

「一時的」に署名します(プロセスの完了後に削除します)。

ブロッキングの兆候;

ファイル内のレコードの長さ。

エントリ内のキーフィールドへのポインタ。

キーの長さ。

ファイル属性のセットは、ファイルシステムの詳細によって決定されます。さまざまなタイプのファイルシステムでは、さまざまな属性のセットを使用してファイルを特徴付けることができます。 たとえば、フラットファイルをサポートするファイルシステムでは、ファイルの構造化に関連する上記のリストの最後の3つの属性を使用する必要はありません。 シングルユーザーOSでは、属性セットには、ファイル所有者、ファイル作成者、ファイルアクセスパスワード、ファイルアクセス許可情報などのユーザーおよびセキュリティ関連の特性がありません。

ユーザーは、ファイルシステムによってこの目的のために提供された手段を使用して属性にアクセスできます。 通常、任意の属性の値を読み取ることができますが、変更できるのは一部の値のみです。 たとえば、ユーザーはファイルのアクセス許可を変更できますが(必要なアクセス許可がある場合)、ファイルの作成日や現在のサイズを変更することはできません。

MS-DOSファイルシステムで行われるように、ファイル属性値はディレクトリに直接含めることができます(図2.17、a)。 この図は、単純な記号名とファイル属性を含むディレクトリエントリの構造を示しています。 ここで、文字はファイルの特性を示します:R-読み取り専用、A-アーカイブ済み、H-非表示、S-システム。

図2.17。 ディレクトリ構造:a-MS-DOSディレクトリエントリ構造(32バイト)、b-UNIXOSディレクトリエントリ構造

別のオプションは、ディレクトリにそれらのテーブルへのリンクのみが含まれている場合に、属性を特別なテーブルに配置することです。 このアプローチは、たとえばUNIXufsファイルシステムに実装されています。 このファイルシステムでは、ディレクトリ構造は非常に単純です。 各ファイルに関するレコードには、ファイルの属性の値が集中しているufsのテーブルが呼び出されるときに、短いシンボリックファイル名とファイルのiノード記述子へのポインターが含まれます(図2.17、b)。

いずれの場合も、ディレクトリはファイル名と実際のファイルの間のリンクを提供します。 ただし、このアプローチでは、ファイル名がその属性から分離されている場合、システムがより柔軟になります。 たとえば、ファイルを一度に複数のディレクトリに簡単に含めることができます。 異なるディレクトリにあるこのファイルに関するエントリには、異なる単純な名前が含まれている場合がありますが、リンクフィールドには同じiノード番号が含まれます。

階層的に編成された情報オブジェクトのセットとしてのファイルシステムのユーザーの見方は、ファイルがディスクに保存される順序とはほとんど関係がありません。 単一の連続したバイトセットのイメージを持つファイルは、実際にはディスク全体に「断片」として散在していることが多く、この分割はファイルの論理構造、たとえば個別の論理レコードとは関係ありません。ディスクの隣接していないセクターに配置できます。 同じディレクトリからの論理的に連結されたファイルは、ディスク上にまったく共存する必要はありません。 ファイル、ディレクトリ、およびシステム情報を実際のデバイスに配置する原則は、ファイルシステムの物理的な構成によって説明されます。 明らかに、ファイルシステムが異なれば物理的な構成も異なります。

最新のコンピューティングシステムでファイルを保存するために使用される主なタイプのデバイスは、ディスクドライブです。 これらのデバイスは、ハードディスクおよびフロッピーディスクのデータの読み取りと書き込みを行うように設計されています。 ハードドライブは、1つまたは複数のガラスまたは金属プレートで構成され、各プレートの片面または両面が磁性材料でコーティングされています。 したがって、ディスクは通常、プレートのスタックで構成されます(図2.18)。

各プレートの両側に、薄い同心リングがマークされています- トラック(トラック)データが保存されている場所。 トラック数はディスクの種類によって異なります。 トラックの番号付けは、ディスクの外縁から中央に向かって0から始まります。 ディスクが回転すると、ヘッドと呼ばれる要素が磁気トラックからバイナリデータを読み取るか、磁気トラックに書き込みます。

図2.18。 ハードディスクデバイスの図

頭は特定のトラックの上に配置できます。 ヘッドはディスク表面上を個別のステップで移動し、各ステップは1トラックのシフトに対応します。 ディスクへの記録は、トラックの磁気特性を変更するヘッドの機能によって実現されます。 一部のディスクでは、各サーフェスに沿って1つのヘッドが移動しますが、他のディスクでは、トラックごとに1つのヘッドがあります。 最初のケースでは、情報を検索するために、ヘッドはディスクの半径に沿って移動する必要があります。 通常、すべてのヘッドは単一の移動メカニズムに固定され、同期して移動します。 したがって、ヘッドが1つのサーフェスの特定のトラックに固定されると、他のすべてのヘッドは同じ番号のトラック上で停止します。 各トラックに個別のヘッドがある場合、あるトラックから別のトラックにヘッドを移動する必要がないため、データの検索にかかる時間を節約できます。

パッケージのすべてのプレートのすべての表面にある同じ半径のトラックのセットは、 シリンダー(シリンダー)。 各トラックは、と呼ばれるセクションに分かれています セクター(セクター)、またはブロック(ブロック)。すべてのトラックが同じ数のセクターを持ち、最大バイト数を書き込むことができます。 セクターのサイズは特定のシステムに対して固定されており、2の累乗で表されます。 最も一般的なセクターサイズは512バイトです。 半径の異なるトラックのセクター数が同じであることを考慮すると、トラックが中心に近づくほど、記録密度が高くなります。

セクタ-ディスクデバイスとRAM間のデータ交換のアドレス可能な最小単位。 コントローラがディスク上で必要なセクターを見つけるには、セクターアドレスのすべてのコンポーネント(シリンダー番号、サーフェス番号、セクター番号)をコントローラーに設定する必要があります。 アプリケーションプログラムは通常、セクターを必要としませんが、特定のバイト数(必ずしもセクターサイズの倍数である必要はありません)を必要とするため、通常の要求には、必要な情報を含む複数のセクターと、冗長データを含む1つまたは2つのセクターの読み取りが含まれます。必要なデータ(図2.19)。

図2.19。 ディスクと交換するときに冗長データを読み取る

オペレーティングシステムは、ディスクを操作する場合、通常、次のような独自のディスクスペースの単位を使用します。 集まる(集まる)。 ファイルが作成されると、ディスクスペースがクラスターでそのファイルに割り当てられます。 たとえば、ファイルのサイズが2560バイトで、ファイルシステムのクラスターサイズが1024バイトとして定義されている場合、ファイルにはディスク上に3つのクラスターが割り当てられます。

トラックとセクターは、ディスクを使用する前に、物理的または低レベルのディスクフォーマット手順を実行した結果として作成されます。 ブロック境界を決定するために、識別情報がディスクに書き込まれます。 低レベルのディスクフォーマットは、このディスクが使用するオペレーティングシステムのタイプに依存しません。

特定の種類のファイルシステムのディスクパーティション分割は、高レベルまたは論理的なフォーマット手順によって実行されます。

高レベルのフォーマットでは、クラスターのサイズが決定され、ファイルシステムの操作に必要な情報がディスクに書き込まれます。これには、使用可能なスペースと未使用のスペース、ファイルとディレクトリに割り当てられた領域の境界に関する情報が含まれます。被害を受けた地域に関する情報。 さらに、オペレーティングシステムローダーはディスクに書き込まれます。これは、電源をオンにするか、コンピューターを再起動した後、オペレーティングシステムを初期化するプロセスを開始する小さなプログラムです。

特定のファイルシステム用にディスクをフォーマットする前に、ディスクをパーティション化できます。 オペレーティングシステムがユーザーに論理デバイスとして提示する物理ディスクの連続部分です(論理ディスクと論理パーティションの名前も使用されます)。 論理デバイスは、別の物理ディスクであるかのように機能します。 ユーザーが作業するのは論理デバイスであり、たとえば、A、B、C、SYSなどの指定を使用して、シンボリック名でそれらを参照します。さまざまなタイプのオペレーティングシステムは、すべてのデバイスに共通のパーティション表現を使用します。ただし、それに基づいて論理パーティションを作成します。各OSタイプに固有のデバイス。 あるOSで使用されるファイルシステムが一般に別のタイプのOSで解釈できないのと同様に、論理デバイスは異なるタイプのオペレーティングシステムで使用することはできません。 論理デバイスごとに作成できるファイルシステムは1つだけです.