目次
i ノード
ホームページ 運用・保守 Linuxの運用と保守 Linuxのiノードとは何ですか

Linuxのiノードとは何ですか

Jun 28, 2022 pm 05:23 PM
linux

Linux では、i ノードは 64 バイトの長さのテーブルであり、i ノードには、ファイル サイズ、ファイル所有者、ファイル アクセス許可方法、ファイルが通常かどうかなどのファイルに関する情報が含まれています。ファイル、ディレクトリ ファイル、特殊ファイルなど、i ノードで最も重要な項目はディスク アドレス テーブルです。

Linuxのiノードとは何ですか

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。 Linux の

i ノード

i ノードは、ファイル サイズ、ファイル所有者、ファイル アクセス許可方法、ファイルのアクセス許可方法など、ファイルに関する情報が含まれる 64 バイトの長さのテーブルです。ファイルは通常のファイル、ディレクトリ ファイル、特殊ファイルなどです。

Linux ファイル システムは Linux システムの中心であり、階層的なディレクトリとファイルを提供します。ファイル システムは、ディスク領域をブロックと呼ばれる 1024 バイトのグループに分割します (SCOXENIX など、512 バイトのブロックもあります)。 0 からディスク全体の最大ブロック数までの番号が付けられます。

すべてのブロックは 4 つの部分に分割できます。ブロック 0 はブート ブロックと呼ばれ、ファイル システムでは使用されません。ブロック 1 はプライベート ブロックと呼ばれます。プライベート ブロックには、次のような多くの情報が含まれています。ディスク サイズとすべてのブロックに関するその他の情報 サイズの 2 つの部分。ブロック 2 から始まるのは i ノードを含む i ノード テーブルであり、テーブル内のブロックの数は可変ですが、これについては後述します。 i ノード テーブルの後には、ファイルの内容を保存するために使用できる空きストレージ ブロック (データ ストレージ ブロック) があります。

ファイルの論理構造と物理構造は大きく異なります。論理構造は、cat コマンドを入力した後にユーザーに表示されるファイルです。ユーザーは、ファイルの内容を表す文字ストリームを取得できます。物理構造とは、ファイルが実際にディスク上にどのように保存されるかを示します。ユーザーは自分のファイルがフロンティア キャラクタ ストリームであると考えていますが、実際にはファイルはフロンティア形式でディスクに保存されていない可能性があり、通常、1 ブロックより長いファイルはディスク上に分散して保存されます。ただし、ユーザーがファイルにアクセスすると、Linux ファイル システムは各ブロックを正しい順序で取り出し、ファイルの論理構造をユーザーに提供します。

もちろん、物理構造を論理構造に変換する方法をファイル システムに指示するテーブルが Linux システムのどこかに存在する必要があります。これには i ノードが関係します。

i ノードは、ファイル サイズ、ファイル所有者、ファイル アクセス許可方法、ファイルが通常のファイルであるかディレクトリ ファイルであるかなど、ファイルに関する情報を含む 64 バイトの長さのテーブルです。 . または特殊ファイルなど.。 i ノードで最も重要な項目はディスク アドレス テーブルです。

このテーブルには 13 個のブロック番号があります。最初の 10 ブロック番号は、ファイルの最初の 10 ブロックのストレージ アドレスです。これら 10 個のブロック番号により、最大 10 ブロック長のファイルの論理構造が得られ、ファイルはディスク アドレス テーブルにブロック番号が現れる順序で対応するブロックを取得します。ファイルが 10 ブロックより長い場合はどうなりますか? ディスク アドレス テーブルの 11 番目の項目はブロック番号を示します。このブロック番号が指すブロックには 256 個のブロック番号が含まれています。これまでのところ、この方法は 266 ブロックより長いファイルに対応しています。( 272384バイト)。ファイルが 266 ブロックより大きい場合、ディスク アドレス テーブルの項目 12 にブロック番号が与えられます。このブロック番号が指すブロックには 256 個のブロック番号が含まれます。これらの 256 個のブロック番号はそれぞれ 1 つのブロックを指し、ブロックには 256 個のブロック番号が含まれますブロック番号。これらのブロック番号は、ファイルの内容を取得するために使用されます。ディスクアドレスの項目 13 のインデックスアドレス指定方法は、間接インデックスのレベルが 1 つ多いことを除いて、項目 12 と同様です。

このように、Linux システムでは、ファイルの最大長は 16842762 ブロック、つまり 17246988288 バイトです。幸いなことに、Linux システムでは、ファイルの最大長に対してより現実的な制限が追加されています (これにより、ユーザーが誤ってディスク領域全体のすべてのブロックを使い果たすファイルを作成することがなくなります。

inode

inode については、まずハードディスクの全体的な構造を紹介する必要があります。ハードディスクには複数のハードディスク プラッタが含まれています。ハードディスク プラッタは円形です。各ハードディスク プラッタには読み書き可能な磁気ヘッド (ヘッド) が付いています。このヘッドが固定され、ハードディスク プラッタが 1 回転すると、トラックがたどります。はトラックです (トラック)。ハードディスク内のすべてのプラッターの同じトラック番号の集合をシリンダーと呼びます。各トラックは多数のエリアに分割されており、各エリアはセクターと呼ばれます。セクタはハードディスクの最小の記憶物理量であり、1 セクタの記憶容量は約 512 バイト(約 0.5K)です。

ハードディスクの一般的な構造を理解した後、ハードディスクをパーティション分割する方法について説明します。ハードディスクのパーティション分割の最小単位は磁気列であり、パーティション分割後は自然にフォーマットされます。 Linux でフォーマットするときは、ブロックと i ノードを考慮する必要があります。ブロックは理解しやすいです。ディスクに記録できる最小単位です。複数のセクターで構成されているため、サイズは通常 n*512 バイト (4K など) になります。

それでは、inodeとは何でしょうか? ブロックはファイルの内容を記録する領域で、inodeはファイルの属性とファイルが配置されるブロックの情報を記録します。したがって、各ファイルは i ノードを占有します。 Linux システムがファイルを検索する場合、まず inode テーブルを検索してファイルの属性とデータの保存場所を見つけ、次にデータが保存されているブロックを検索してデータを取得します。 i ノード数は最初に設定されています。通常、設定方法は「ハードディスク サイズ / 1 つの容量」です。この容量はブロックよりも大きい方が良いです。例えば、先ほどブロックを 4K に設定した場合、 、その場合、容量は約 8K に設定できます。したがって、1GB ハードディスクを 8K i ノードに分割すると、131072 個の i ノードが存在します。 i ノードのサイズは 128 バイトです。このようにして、パーティションがファイル システムとしてフォーマットされた後、基本的に 2 つの大きなブロック (inode テーブルとデータ領域) があり、1 つはファイル システムの記録に使用されることが明確にわかります。ファイルの属性情報 ファイルに保存されている Block ブロックは、ファイルの内容を記録するために使用されます。

ファイル作成後、inodeとブロックが同時に作成されます.inodeにはファイルの属性情報が格納されますが、ファイル名は含まれず、ファイルのアドレスへのポインタが格納されます。対応するデータが存在するブロック; ブロック ファイルデータを格納する場合、各ブロックには最大 1 つのファイルを格納できますが、ブロックが格納できない場合は、次のブロックが占有されます。

Linux では、ファイル名、ファイル属性、およびファイルの内容は個別に保存されます: ファイル名はディレクトリ エントリ (つまり、dentry) に保存され、ファイル属性は i ノードに保存されます。通常の状況では、各 i ノードは 128 バイトのディスク領域を占有し、ファイルの内容はデータ ブロックに格納されます。

mkfs.ext3 -b を使用してブロック サイズを設定できます。各ブロックには最大 1 つのファイルを保存できるため、通常、ブロック サイズの設定はサーバーのアプリケーション設定に基づく必要があります。は、主に小さなファイルを多数保存するために使用されるため、領域を無駄にしないようにブロック サイズを小さく設定できますが、大きなデータを保存する場合は、ブロック サイズを大きく設定する必要があり、これによりデータへの影響を軽減できます。ディスク ブロックの読み取り数によって、inode の記録の負担も軽減されます。

ブロックが大きいほど i ノードが少なくなり、大きなファイルを保存するファイル システムに適し、ブロックが小さいほど i ノードが多くなり、小さいファイルを多数保存するファイル システムに適します。

システムの実行中、変更後の i ノードとブロックはメモリとディスクを同期します。ls -li を使用してリストした内容はメモリ内の一時ストレージであるため、システムが異常にシャットダウンすることがあります。ブロックと i ノードの非同期の問題が発生します。

推奨学習: Linux ビデオ チュートリアル

以上がLinuxのiノードとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CentosとUbuntuの違い CentosとUbuntuの違い Apr 14, 2025 pm 09:09 PM

Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Centosをインストールする方法 Centosをインストールする方法 Apr 14, 2025 pm 09:03 PM

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

メンテナンスを停止した後のCentosの選択 メンテナンスを停止した後のCentosの選択 Apr 14, 2025 pm 08:51 PM

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

Dockerプロセスを表示する方法 Dockerプロセスを表示する方法 Apr 15, 2025 am 11:48 AM

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Docker画像が失敗した場合はどうすればよいですか Docker画像が失敗した場合はどうすればよいですか Apr 15, 2025 am 11:21 AM

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。

VSCODEに必要なコンピューター構成 VSCODEに必要なコンピューター構成 Apr 15, 2025 pm 09:48 PM

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

See all articles