検索
ホームページ運用・保守Linuxの運用と保守Linux ヒューズとはどういう意味ですか?

ユーザー空間ファイル システムをサポートするために使用される Linux カーネル モジュールは FUSE と呼ばれます。 Fuse の正式名は「Filesystem in Userspace」で、中国語で「ユーザー空間ファイル システム」を意味します。完全にユーザー モードで実装されたファイル システムを指します。Linux で特定のネットワーク スペースをマウントするために使用され、重要なコンポーネントです。一般的なオペレーティング システムのこと。

Linux ヒューズとはどういう意味ですか?

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

Linux Fuse とは

ユーザー空間ファイル システム (ユーザー空間のファイルシステム) は、ユーザー モードで完全に実装されたファイル システムを指します。 Linux SSH などの特定のネットワーク スペースをローカル ファイル システムにマウントするために使用されるモジュール 関連コンテンツは SourceForge にあります。

ユーザー空間ファイル システムをサポートするために Linux で使用されるカーネル モジュールは FUSE と呼ばれます。FUSE という用語は、特に Linux のユーザー空間ファイル システムを指す場合があります。これは、一般的なオペレーティング システムの重要な部分です。オペレーティング システムは従来、カーネル レベルでファイル システムのサポートを提供してきました。一般に、カーネル モード コードはデバッグが難しく、生産性が低くなります。

いわゆる「ユーザー モード ファイル システム」とは、ファイル システムのデータとメタデータがユーザー モード プロセス (このプロセスは「デーモン」と呼ばれます) によって提供されることを意味します。マイクロカーネル オペレーティング システムの場合、ユーザー モードでファイル システムを実装することは何もありませんが、マクロカーネル Linux の場合は意味が異なります。

ユーザーモードファイルシステムと呼ばれていますが、カーネルの関与を全く必要としないわけではありません。Linux では、ファイルへのアクセスは、提供されるカーネルインターフェースを通じて一律に行われます。 VFS レイヤー (オープン/読み取りなど) であるため、プロセス (「ユーザー」と呼ばれる) がデーモンによって実装されたファイル システムにアクセスするときも、VFS を経由する必要があります。

VFS がユーザー プロセスからファイル アクセス リクエストを受信し、そのファイルが (マウント タイプに従って) ユーザー モード ファイル システムに属していると判断すると、リクエストを「fuse」という名前のファイルに転送します。カーネルモジュール。そして、「fuse」はリクエストをデーモンと取り決めたプロトコル形式に変換し、デーモンプロセスに送信します。

Linux ヒューズとはどういう意味ですか?

この 3 者関係では、「ヒューズ」カーネル モジュールが転送の役割を果たし、VFS の確立に役立つことがわかります (また、平たく言えば、その役割は実際には「エージェント」です。

このフレームワーク全体の Linux での実装は、FUSE (ユーザー空間のファイルシステム) です。図 1 に示すように、赤枠の部分は FUSE タイプのファイル システムの具体的な実装であり、ユーザー モード ファイル システムの設計者が活躍できる領域です。現在、FUSE に基づいて実装されているファイル システムは 100 を超えています (一部のカーネル ベースのファイル システムは、ZFS や NTFS などのユーザー モード ファイル システムに移植することもできます)。この記事では既製の FUSE を使用します。デモンストレーション用の sshfs。

まず、fuse-sshfs ソフトウェア パッケージをインストールし、次のコマンドを使用してファイル システムをマウントします (リモート マシンの「remote-dir」ディレクトリをローカル マシンの「local-dir」ディレクトリにマウントします)。 :

sshfs :

その後、「/sys/fs」にディレクトリに「fuse」という名前のフォルダが生成され、同時に「fuse」カーネルモジュールがロードされていること(対応するデバイスは「/dev/fuse」)と、ローカルマウントの種類が確認できます。ディレクトリは「fuse.sshfs」になりました:

Linux ヒューズとはどういう意味ですか?

デバイス ノードを生成する目的は、ユーザー モードの制御を容易にすることですが、ファイル システム レベルのアプリケーションの場合は、ioctl() を使用します。詳細が多すぎるため、デバイスにアクセスするのはまだ面倒なので、libfuse が中間層として登場しました。デーモン プロセスは、実際には、libfuse が提供するインターフェイスを通じてヒューズ デバイス ファイルを操作します。

あなたが来て私が行く

次に、例として「touch」コマンドを使用して「fuse.sshfs」ファイル システムに新しいファイルを作成し、ヒューズ カーネル モジュールとデーモン プロセス (つまり、「sshfs」) 固有の対話プロセス (コード部分はカーネル バージョン 5.2.0 に基づいています):

[最初のラウンド]

最初は次のとおりです。パーミッションの検証ですが、ここでの検証は VFS のパーミッションの検証と同等ではなく、主な目的は他のユーザーが自分のプライベート Fuse ファイル システムにアクセスできないようにすることです。

Linux ヒューズとはどういう意味ですか?

#次に、ファイル パスに基づいてファイルの i ノードが見つかります。これは新しく作成されたファイルであるため、inode はカーネルの i ノード キャッシュにないため、「検索」リクエストをデーモンに送信する必要があります。

Linux ヒューズとはどういう意味ですか?

これらのリクエストは、 pending queue に入れられ、デーモン プロセスの応答を待ち、ユーザー プロセスはスリープ状態になります:

Linux ヒューズとはどういう意味ですか?

デーモンとして、 sshfs プロセスは、データを取得するために「/dev/fuse」デバイス ファイルを読み取ります。保留中のキューが空の場合、ブロック待機状態になります。

Linux ヒューズとはどういう意味ですか?

リクエストが保留中のキューがあると、デーモン プロセスが起動され、これらの要求を処理します。処理されたリクエストは 処理キュー に移動されます。デーモン プロセスがフューズ カーネル モジュールに応答した後、ユーザー プロセスが起動され、対応するリクエストが処理キューから削除されます。

Linux ヒューズとはどういう意味ですか?

【第2ラウンド

次は「タッチ」です。トリガーされた他のシステム コールが以前にアクセスされたデータ/メタデータである場合、それらはキャッシュ内に存在する可能性が高く、データ/メタデータのこの部分に再度アクセスすると、ヒューズ カーネル モジュールは、それ以外の場合は、処理のためにデーモン プロセスに報告する必要があります。

ここで get_fuse_conn() は、ヒューズ型ファイル システムのマウント時に作成される "fuse_conn" 構造体インスタンスを取得します。デーモン プロセスとカーネル間のリンクとして、デーモン プロセスが停止するか、対応するヒューズ ファイル システムがアンインストールされない限り、接続は常に存在します。

Linux ヒューズとはどういう意味ですか?

デーモンプロセス側では、同様の操作がまだあります。注意する必要があるのは、2 つの一連の関数 furuse_write/read() fuse_dev_write/read() の違いです。前者は、ユーザー プロセスがファイルにアクセスするときの VFS です。ヒューズ ファイル システム。読み取りおよび書き込みリクエストは通常​​のファイルに対する操作であり、後者は、ヒューズ カーネル モジュールを表すデバイス "/dev/fuse" の読み取りおよび書き込みを行うデーモン プロセスです。目的は、リクエストを取得し、返事。

Linux ヒューズとはどういう意味ですか?

[第 3 ラウンド ]

ヒューズ カーネル モジュールとデーモン プロセス間の対話の最後のラウンドは、ヒューズ ファイル システム スーパーブロック内の i ノード番号を取得し、このメタデータの関連情報を入力します。

Linux ヒューズとはどういう意味ですか?

コインの裏表

比較的単純な「タッチ」操作が実行された場合でも、ヒューズ ファイル システム内でそれを見つけるのは難しくありません。 、ユーザー状態が関係します。カーネル状態とカーネル状態の間の切り替えは比較的頻繁に行われ、複数のデータ コピーが伴います。従来のカーネル ファイル システムと比較すると、全体的な I/O スループットが低く、待ち時間が長くなります。

では、なぜヒューズはオペレーティング システムでサポートされているファイル システム内で依然として重要な位置を占めているのでしょうか?そういえば、ユーザーモードでの開発には多くの利点があります。 まず、 はデバッグが簡単で、特に新しいファイル システム プロトタイプの迅速な検証に適しているため、学術研究の分野で非常に人気があります。カーネルではC言語のみ使用可能ですが、ユーザーモードではそれほど制限はなく、各種関数ライブラリや各種プログラミング言語が使用可能です。

2 つ目、 カーネルのバグは、わずかな不一致でシステム全体のクラッシュを引き起こすことがよくあります (ホストのクラッシュにより、ホスト上で実行されているすべての仮想マシンが引き起こされるため、これは仮想化アプリケーションではより深刻です)ただし、ユーザー モードのバグによる影響は比較的限定的です。

つまり、コインの表側は開発に便利であるということですが、それがどれほど便利であるかは結局のところ 主観的なの感覚であり、裏側はパフォーマンスへの影響です。使用できるもの目的は実験データによって検証されています。では、ヒューズによる損失を比較的正確に測定するにはどのような方法を使用すればよいでしょうか?

以前使用していたfuse-sshfsを引き続き使用しますが、ここではリモート マウントを使用せず、ローカル マウントを使用します(ローカル マシンの "dir-src" ディレクトリが ext4 ファイル システムにあると仮定します) ):

sshfs localhost:

デーモン プロセスがリクエストを受信すると、再度カーネルに入る必要があります。 ext4 カーネル モジュールにアクセスするには (このファイル システム モードは「スタッカブル」と呼ばれます):

Linux ヒューズとはどういう意味ですか?

ヒューズ ファイル システムに write() リクエストを発行するユーザー プロセスを次のようにします。例として、右側の赤いボックスはネイティブの ext4 呼び出しパスで、左側の追加のパスはヒューズの導入後に追加されたパスです。

Linux ヒューズとはどういう意味ですか?

# によると#この記事 ドキュメントに記載されているデータによると、このシステム コールで使用される「getxattr」によって形成されるリクエストには、「ユーザーとカーネル」の対話量の 2 倍が必要です。 シーケンシャル書き込みの場合、ネイティブ ext4 ファイル システムと比較して、I/O スループットは 27% 減少し、ランダム書き込みは 44% 減少します。

しかし、ヒューズ ファイル システムが誕生してから何年もの間、誰もがそれに対する多くの最適化策を考え出してきました。たとえば、順次読み取りと書き込みを行う場合、リクエストをバッチでデーモン プロセスに送信するように設計できます (ただし、ランダムな読み取りと書き込みは適していません)。

スプライシング このゼロコピー テクノロジ、つまり Linux カーネルによって提供されるスプライシング メカニズムを使用すると、ユーザー空間は 2 つのカーネルのメモリ バッファのデータをコピーせずに転送できます。したがって、ヒューズ カーネル モジュールから ext4 カーネル モジュールにデータを直接転送するスタッカブル モードに特に適しています (ただし、スプライシングは通常 4K を超えるリクエストに使用され、少量のデータの読み書きには使用されません)。

これらの取り組みの後、Fuse ファイル システムはどのようなパフォーマンスを達成できるでしょうか?

このレポートに記載されているテスト結果によると、ネイティブ ext4 と比較して、最良の環境下ではヒューズの性能損失を 5% 未満に抑えることができますが、最悪の場合は 83% になります。同時に、CPU リソース使用量も 31% 増加しました。

Android v4.4 から v7.0 の間に存在した SDcard デーモンから、近年の Ceph および GlusterFS まで、すべてが FUSE ベースの実装を採用しているか、現在採用中です。 FUSE は、ネットワーク ファイル システムと仮想化アプリケーションの両方でその有用性を示しています。その出現と発展は、カーネル モードで実装されたファイル システムを置き換えるものではなく、有用な補足としてのものです (理論的には、FUSE はルート ファイル システムの実装にも使用できますが、これはお勧めできません。「できる」と「するべき」は別のことです)。

関連する推奨事項: 「

Linux ビデオ チュートリアル

以上がLinux ヒューズとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Linux操作:ファイル、ディレクトリ、およびアクセス許可の管理Linux操作:ファイル、ディレクトリ、およびアクセス許可の管理Apr 23, 2025 am 12:19 AM

Linuxでは、ファイルおよびディレクトリ管理ではLS、CD、MKDIR、RM、CP、MVコマンドを使用し、許可管理はCHMOD、CHOWN、およびCHGRPコマンドを使用します。 1。LS-Lなどのファイルおよびディレクトリ管理コマンドは、詳細情報、MKDIR-Pを再帰的に作成するディレクトリを再帰的に作成します。 2。CHMOD755FILEセットファイル許可、CHOWNUSERFILEファイル所有者、CHGRPGROUPFILEの変更ファイルグループなどの許可管理コマンド。これらのコマンドは、ファイルシステム構造とユーザーおよびグループシステムに基づいており、システムコールとメタデータを介して動作および制御します。

Linuxのメンテナンスモードとは何ですか?説明したLinuxのメンテナンスモードとは何ですか?説明したApr 22, 2025 am 12:06 AM

メンテナンスメモデンリンリンアスピアルブーテンビロンメント、criticalsystemmaincencetasks.itallowsadministratorstopertopertopertopersetstingtingpasswords、Repainingfilesystems、およびRecoveringfrombootfailurureSinaMinimalenvironment.

Linux:基本的な部分に深く潜りますLinux:基本的な部分に深く潜りますApr 21, 2025 am 12:03 AM

Linuxのコアコ​​ンポーネントには、カーネル、ファイルシステム、シェル、ユーザー、カーネルスペース、デバイスドライバー、パフォーマンスの最適化とベストプラクティスが含まれます。 1)カーネルは、ハードウェア、メモリ、プロセスを管理するシステムのコアです。 2)ファイルシステムはデータを整理し、Ext4、BTRFS、XFSなどの複数のタイプをサポートします。 3)シェルは、ユーザーがシステムと対話するためのコマンドセンターであり、スクリプトをサポートします。 4)システムの安定性を確保するために、ユーザースペースをカーネルスペースから分離します。 5)デバイスドライバーは、ハードウェアをオペレーティングシステムに接続します。 6)パフォーマンスの最適化には、システム構成とベストプラクティスのチューニングが含まれます。

Linuxアーキテクチャ:5つの基本コンポーネントを発表しますLinuxアーキテクチャ:5つの基本コンポーネントを発表しますApr 20, 2025 am 12:04 AM

Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

Linux操作:メンテナンスモードを利用しますLinux操作:メンテナンスモードを利用しますApr 19, 2025 am 12:08 AM

Linuxメンテナンスモードは、Grubメニューから入力できます。特定の手順は次のとおりです。1)GRUBメニューのカーネルを選択し、「E」を押して編集し、2)「Linux」行の最後に「シングル」または「1」を追加し、3)Ctrl Xを押して開始します。メンテナンスモードは、システム修理、パスワードリセット、システムのアップグレードなどのタスクに安全な環境を提供します。

Linux:リカバリモード(およびメンテナンス)に入る方法Linux:リカバリモード(およびメンテナンス)に入る方法Apr 18, 2025 am 12:05 AM

Linux Recoveryモードを入力する手順は次のとおりです。1。システムを再起動し、特定のキーを押してGrubメニューを入力します。 2。[RecoveryMode)でオプションを選択します。 3. FSCKやrootなどの回復モードメニューで操作を選択します。リカバリモードを使用すると、シングルユーザーモードでシステムを開始し、ファイルシステムのチェックと修理を実行し、構成ファイルを編集し、システムの問題を解決するのに役立ちます。

Linuxの重要なコンポーネント:初心者向けに説明されていますLinuxの重要なコンポーネント:初心者向けに説明されていますApr 17, 2025 am 12:08 AM

Linuxのコアコ​​ンポーネントには、カーネル、ファイルシステム、シェル、および共通ツールが含まれます。 1.カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。 2。ファイルシステムはデータを整理して保存します。 3.シェルは、ユーザーがシステムと対話するインターフェイスです。 4.一般的なツールは、毎日のタスクを完了するのに役立ちます。

Linux:その基本構造を見てくださいLinux:その基本構造を見てくださいApr 16, 2025 am 12:01 AM

Linuxの基本構造には、カーネル、ファイルシステム、およびシェルが含まれます。 1)カーネル管理ハードウェアリソースとUname-Rを使用してバージョンを表示します。 2)ext4ファイルシステムは、大きなファイルとログをサポートし、mkfs.ext4を使用して作成されます。 3)シェルは、BASHなどのコマンドラインインタラクションを提供し、LS-Lを使用してファイルをリストします。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、