この記事では主に仮想ファイル システムについて説明します。 Linux ファイル システムのアーキテクチャには、特定のファイル システム (Ext2、Ext3、XFS など) とアプリケーション間の抽象化レイヤー、つまり仮想ファイル システム (VFS) が含まれています。 VFS を使用すると、アプリケーションは、基礎となるファイル システムの詳細を知らなくても、さまざまな種類のファイル システムと通信できます。 VFS を使用すると、ファイル システムの実装をアプリケーションから分離して切り離すことができるため、システムの柔軟性と保守性が向上します。また、VFS を使用すると、Linux カーネルが複数のファイル システム タイプをサポートできるようになり、アプリケーションがファイル システムにアクセスするための統一インターフェイスが提供されます。 VFS のフレームワークでは、標準のファイル システム操作インターフェイスを実装することで、さまざまなファイル システムがカーネルと通信できます。
上の図は、このアーキテクチャの中心が仮想ファイル システム VFS であることを示しています。 VFS はファイル システム フレームワークを提供し、ローカル ファイル システムは VFS に基づいて実装できます。主に次のタスクを実行します:
1) VFS は抽象化層として、アプリケーション層に統合インターフェイス (読み取り、書き込み、chmod など) を提供します。
2) i ノード キャッシュやページ キャッシュなど、いくつかの一般的な機能が VFS に実装されています。
3) 特定のファイル システムが実装する必要があるインターフェイスを標準化します。
上記の設定に基づいて、他の特定のファイル システムは、VFS の規則に従い、対応するインターフェイスと内部ロジックを実装し、システムに登録するだけで済みます。ユーザーはファイル システムをフォーマットしてマウントした後、ハードディスク リソースを使用してファイル システムに基づいた操作を実行できます。
Linux オペレーティング システムでは、ディスクをフォーマットした後、mount コマンドを使用して、システム ディレクトリ ツリー内のディレクトリにディスクをマウントする必要があります。このディレクトリはマウント ポイントと呼ばれます。マウントが完了すると、このファイル システムに基づいてフォーマットされたハードディスク領域を使用できるようになります。 Linux オペレーティング システムでは、マウント ポイントはほぼ任意のディレクトリにすることができますが、標準化のため、通常、マウント ポイントは mnt ディレクトリの下のサブディレクトリになります。
次に、比較的複雑なディレクトリ構造を示します。このディレクトリ構造では、ルート ディレクトリはハード ディスク sda 上にあり、mnt ディレクトリの下には ext4、xfs、nfs という 3 つのサブディレクトリがあり、それぞれ Ext4 ファイル システム (sdb ハード ディスク上に構築) とXFS ファイル システム (sdc ハード ドライブ上に構築) および NFS ファイル システム (ネットワーク経由でマウント)。
###写真###ディレクトリ ツリー内の複数のファイル システム間の関係は、カーネル内のいくつかのデータ構造によって表されます。ファイルシステムをマウントすると、ファイルシステム間の関係が確立され、特定のファイルシステムの API が登録されます。ユーザー モードが API を呼び出してファイルを開くと、対応するファイル システム API が検索され、それがファイル関連の構造 (ファイルや i ノードなど) に関連付けられます。
上記の説明は比較的概略的なものですが、それでも少し混乱するかもしれません。ただし、心配しないでください。次に、コードに基づいて VFS と複数のファイル システムをサポートする方法について詳しく説明します。
1. ファイル システム API から VFS、そして特定のファイル システムへ
Linux の VFS は最初から利用できませんでした。Linux の最初にリリースされたバージョンには VFS がありませんでした。さらに、VFS は Linux で発明されたものではなく、1985 年に Sun によって SunOS2.0 で最初に開発されました。 VFS を開発する主な目的は、ローカル ファイル システムと NFS ファイル システムを適合させることです。
VFS は、一連のパブリック API とデータ構造を通じて特定のファイル システムの抽象化を実装します。ユーザーがオペレーティング システムが提供するファイル システム API を呼び出すと、カーネル VFS によって実装された関数がソフト割り込みを通じて呼び出されます。次の表は、いくつかのファイル API とカーネル VFS 関数の対応を示しています。
カーネル関数 |
イラスト |
###開ける### |
| ファイルを開く
|
###近い###
| ksys_close
ファイルを閉じる |
###読む### |
ksys_read/vfs_read |
|
###書く###
| ksys_write/vfs_write
###データ入力### |
###マウント###
| do_mount
| ファイルシステムのマウント
|
以上がLinux ファイル システム (ファイル システム) アーキテクチャの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
![アトミックハートゲームはこの保存をロードする準備ができていません[解決済み] -Minitool](https://img.php.cn/upload/article/001/242/473/174594541048769.jpg?x-oss-process=image/resize,p_40)
いくつかの理由により、「Atomic Heartがこの保存をロードする準備ができていない」エラーに遭遇する可能性があります。この投稿では、PHP.CNはこの問題の考えられる理由を収集し、5つのトラブルシューティング方法を提供します。

低い構成コンピューターでWindows 11 24H2を楽しむ必要がある場合は、Windows X-Lite Optimum 11 24H2 HomeまたはProをダウンロードできます。ここでは、PHP.CNソフトウェアに関するこの投稿では、Windows X-Lite Optimum 11 24H2ダウンロードとインストールを表示することを目指しています。

Microsoftは、リリースプレビューチャネルのWindows 11 22H2をWindows Insidersに誤ってリリースします。一部のユーザーは、MicrosoftがWindows 11のハードウェアとシステムの要件を変更したと考えています。ただし、Windows 11のバグです。フォローできます。

画面上のキーボードは、Windows 11/10/8/7で使用できる仮想キーボードです。 Windowsコンピューターで開いて使用する方法がわからない場合は、PHP.CNソフトウェアからこの投稿を読んで、関連情報を取得できます。

Privadovpnは、Windows、MacOS、Android、iOS、Android TVなどの無料のVPNサービスです。この無料のVPNを使用すると、場所を制限せずにオンラインでコンテンツにアクセスし、インターネットを閲覧するときは匿名で留まることができます。ダウンロードとインストール方法を確認してください

ワイヤレスBluetoothは、人々に現代生活の多くの便利さをもたらします。 Bluetoothデバイスを接続したくない場合は、忘れることを選択できます。しかし、接続を再確立したいときにBluetoothを再接続して固定する方法は?

さまざまなNetflix映画やテレビ番組を見るには、VPNサービスを使用できます。この投稿では、参照用の最高の無料Netflix VPNを紹介します。より便利なコンピューターチュートリアルとツールについては、PHP.CNソフトウェアの公式Webサイトにアクセスできます。

Discovery Plus Error 400は、Discovery Plusでお気に入りのテレビ番組や映画を見るとよく見られる問題です。 PHP.CN Webサイトのこの記事では、Discovery Plus 400とこの問題のいくつかのソリューションを紹介します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









