Linux ファイルはディレクトリ (ファイル) です。ファイルとディレクトリの管理を容易にするために、Linux システムはファイルとディレクトリをルート ディレクトリ "/" から始まる逆ツリー構造に編成します。 Linux のディレクトリは Windows システムのフォルダに似ていますが、Linux システムではディレクトリもファイルとして扱われる点が異なります。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
Linux ファイルはディレクトリ (ファイル) です。
ファイルとディレクトリの管理を容易にするために、Linux システムはファイルとディレクトリをルート ディレクトリ / から始まる逆ツリー構造に編成します。 Linux のディレクトリは Windows システムのフォルダに似ていますが、Linux システムではディレクトリもファイルとして扱われる点が異なります。
Linux オペレーティング システムでは、図 1 に示すように、すべてのファイルとディレクトリはルート ノード「/」から始まる逆ツリー構造に編成されます。
図 1 Linux システムのファイルとディレクトリの構成図
このうち、ディレクトリは Windows のフォルダーに相当し、ファイルを格納することも、他のサブディレクトリを格納することもできます。 、実際の情報はファイルに保存されます。
ファイル システムの最上位はルート ディレクトリから始まります。システムはルート ディレクトリを表すために「/」を使用します。ルート ディレクトリの下にはディレクトリまたはファイルを置くことができ、各ディレクトリには次のものを含めることができます。 (サブ)ディレクトリまたはファイル。繰り返し行うと、巨大なファイル システムが形成されることがあります。
実際、このツリー状の階層ファイル構造を使用する主な目的は、ファイル システムの管理とメンテナンスを容易にすることです。すべてのファイルが 1 つのディレクトリに配置されている場合を想像してみてください。ファイルシステムのメンテナンスが悪夢になるでしょう。
現実には似たような例がたくさんありますが、例えば、行政システム全体で言えば、村人はファイルに相当し、彼らは村に住んでおり、村は村人が格納されているディレクトリです。多くの村は、保存された村のディレクトリに相当するタウンシップなどを形成し、最終的には巨大な行政地域管理構造図を構築します。
ディレクトリ名またはファイル名では大文字と小文字が区別されることに注意してください。たとえば、dog、DOG、Dog は 3 つの異なるディレクトリまたはファイルです。完全なディレクトリまたはファイル パスは、それぞれが「/」で区切られた一連のディレクトリ名で構成されます。たとえば、cat のフルパスは /home/cat です。
ファイル システムには 2 つの特別なディレクトリがあります。1 つはユーザーの作業ディレクトリ (ドット "." で表すことができる現在のディレクトリ)、もう 1 つはディレクトリの上のディレクトリです。現在のディレクトリ。親ディレクトリとも呼ばれ、2 つのドット「..」で表されます。
ディレクトリ名またはファイル名がドットで始まる場合は、そのディレクトリまたはファイルが隠しディレクトリまたはファイルであることを意味します。つまり、デフォルトの方法で検索する場合 (検索コマンドについては後で説明します)、ディレクトリまたはファイルは表示されません。
管理とメンテナンスを容易にするために、Linux システムは、FHS 標準とも呼ばれるファイル システム階層標準を採用しています。この標準では、ルート ディレクトリの下の各ディレクトリにどのような種類のファイル (またはサブディレクトリ) が存在すべきかを規定しています。たとえば、実行可能ファイルは /bin ディレクトリと /sbin ディレクトリに保存する必要があります。
まず、ハードディスクの物理構造について簡単に理解しましょう。含まれるもの: プラッター、磁気ヘッド、プラッター スピンドル、制御モーター、ヘッド コントローラー、データ コンバーター、インターフェイス、キャッシュ、その他の部品。すべてのプラッター (通常、ハードディスクには複数のプラッターがあり、プラッターは平行になっています) はスピンドルに固定されています。各ディスクの記憶面には磁気ヘッドがあり、磁気ヘッドとディスクとの距離は非常に近く(激しい振動により損傷しやすい)、磁気ヘッドは磁気ヘッドコントローラに接続されており、均一な磁気ヘッド制御が行われています。各磁気ヘッドの動きを制御します。磁気ヘッドはディスクの半径に沿って移動し、ディスクは指定された方向に高速回転するため、磁気ヘッドはディスク上の任意の位置に到達することができます。
ディスクは複数のリングで構成されており、このリングをトラックと呼び、トラックは複数のセクター(セクター)に分割されています。各セクターは512Byteであり、リングはディスク上のすべてのディスク上の同じ位置にあります。ハードディスク 磁気シリンダー(シリンダー)を形成します。ハードディスクの容量は、 512Byte * セクタ数 * 磁気カラム数 * ヘッド数
最初の 3 つの数字は理解しやすいですが、人によってはヘッド数の掛け算が理解できないかもしれません。最初の 3 つの数字は、円の記憶容量と磁気ヘッドが円を読み取る計算に相当します。したがって、磁気ヘッドの数を掛けると、円の面積と円の数を掛けたものに相当します。
ディスク パーティショニングの最小単位は磁気シリンダ (シリンダ)です。
ディスクのパーティショニングでは、実際にはパーティション (パーティション) の開始と終了の磁気シリンダーを記録し、これらの記録された情報はメイン ブート セクター (マスター ブート レコーダー、MBR) に保存されます。実際、MBR はハードディスクの 0 番目のトラックにあり、ハードディスクを使用するためにコンピュータの電源を入れたときに最初に読み取る必要がある領域でもあります。
次の質問について考えてみましょう: MBR のサイズは固定されていますか?
このように考えると、データの保存順序は、MBR、その他のデータになります。 MBR のサイズが固定されていない場合、たとえば、もともと 3 つのパーティションの情報が MBR に保存されていたのに、新しいパーティションを追加したい場合、どのような結果が生じるでしょうか?その結果、すべての「その他のデータ」は、1 つのパーティション情報の距離だけ順次後方に移動する必要があります。配列の追加または削除について考えたことがありますか?したがって、MBR を修正したいと考えていますが、これも同様で、MBR は 4 つのパーティションの情報のみを保存するように修正されています。これはかなり優れているように思えますが、パーティションは 4 つしかありません。十分ですか?もちろん、設計者もこの問題を考慮し、パーティションをプライマリと拡張の 2 つのカテゴリに分割しました (E は最大 1 つだけです)。このうち、Pは直接使用できるが、Eは直接使用することができず、拡張パーティションの位置情報格納場所を指すポインタに相当する。
filesystem はファイル システムでもあり、各パーティションには、fat32 などの独自のファイル システムを含めることができます。 ntfs などのパーティションごとにファイル システムは異なりますが、それらはすべてデータの保存に使用されます。先ほど、ハードディスクの最小記憶単位はセクター(セクター、一般的には512バイト)であると紹介しましたが、ファイルシステムの最小記憶単位はセクターではなくブロックです。ブロックはセクターの 2 のべき乗倍であり、ヘッドは一度に 1 ブロックのデータを読み取ります。したがって、ブロックが小さすぎると、ファイルを読み取るときに磁気ヘッドがより多くのブロックを読み取る必要があり、非常に非効率になりますが、ブロックにはファイルが 1 つしか存在できないため、ブロックはあまり大きくなりません。 、ブロック サイズが 100M である場合、100.1M のファイルがある場合、2 ブロックを占有する必要があり、多くのスペースを無駄にします。
スーパーブロック各ファイルシステムの最初のブロックはスーパーブロックと呼ばれます。スーパーブロックの役割は、ファイルシステムのサイズ、空のブロックと埋められたブロック、およびその他の一般的な情報を保存することです。言い換えれば、ファイルシステムを使用したい場合、最初に通過する必要があるブロックはスーパーブロックであり、スーパーブロックが壊れている場合、おそらくこのパーティションを保存する方法はありません。
Linux の EXT2 ファイル システムLinux を学習しているので、当然、Linux のファイル システムについても学習する必要があります。 Linuxの標準EXT2について説明します。
EXT2 のファイルシステムは、inode 領域とブロック領域に分かれています。inode にはファイルの関連属性やその他の情報が格納され、ブロック領域にはファイルの内容が格納されます。各 i ノードはポインタとして機能し、ファイルを説明できるファイルの関連属性と、ファイルが配置されているブロックの場所を指します。ブロック数と i ノード数は初期フォーマット時に固定されます。
ファイルシステム全体の概略図:
SuperBlock: 前述したように、Superblock はファイルシステム全体の関連情報が記録される場所です。スーパーブロックがなければ、このファイルシステムは存在しません。彼が記録する情報には主に次のものが含まれます:Linux ファイルシステムの動作ハードディスクのアクセス速度がメモリに比べて非常に遅いため、Linux では全体の速度を向上させるために非同期処理が採用されています。
非同期とは何ですか?例: 「システムが特定のファイルを読み取ると、そのファイルが配置されているブロック データがメモリにロードされるため、ディスク ブロックはメイン メモリのバッファ キャッシュ領域に配置されます。これらの場合、ブロックのデータが変更されると、最初はメイン メモリのブロック データのみが変更され、バッファ内のブロック データは「ダーティ」としてマークされます。この時点では、ディスクの物理ブロックはまだ変更されていません!したがって、ディスク上の物理ブロック上のデータとメイン メモリ内のブロック データの一貫性を維持するには、これらの「ダーティ」ブロックのデータをディスクに書き戻す必要があることを意味します。 』
つまり、Linux をシャットダウンするときは特に注意する必要があります。そうしないと、ファイルが失われたり、ディスクが損傷したりする可能性があります。 ! !
したがって、Linux のシャットダウンには特に注意する必要があります。そうしないと、ファイルの損失やディスクの損傷さえあります。 ! !
上で述べたことはすべてファイル システムに関するものですが、次のことができる必要があります。私たちは Linux を使用しているので、それを Linux システムに「マウント」する必要があります。ディレクトリにはファイル名と i ノードに関する情報を記録できると上で述べましたが、さらに、ディレクトリによってファイル システムに対応するエントリ ポイントを生成することもできます。したがって、そのエントリ ポイント ディレクトリを「マウント ポイント (マウント ポイント)」と呼びます。
関連する推奨事項:「Linux ビデオ チュートリアル」
以上がLinuxファイルはどのようなものですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。