0


Python Fuse Library を使用してファイルシステムを実装しています。このファイル システムに「スナップショット」機能 (API) を実装しました。(ls,mkdir,etc) - Snapshot? のようなシステム コールを介して、このスナップショット API を呼び出します。この新しいシステム コールを作成するにはどうすればよいでしょうか。

4

2 に答える 2

1

IOCTLは、ファイルシステムに依存するカスタム操作を実装するためのメカニズムです。Btrfsは、クローン ファイルを実装し、スナップショットを作成し、IOCTL を介して送受信します。

于 2015-10-04T21:06:29.943 に答える
1

残念ながら、FUSE にシステム コールを追加することはできません。FUSE はシステム コールの重い処理をカーネルに依存しているためです。これをカーネルに追加する必要があります。

一方、本格的なシステム コールが必要ですか、それともユーザー レベルで必要なものを実装できますか? (たとえばls、 iereaddir()は実際にはシステム コールではなく、 などの他のシステム コールを呼び出すユーザー レベルのライブラリ ルーチンgetdents()です。)

システムで実行されているすべてのプログラムで呼び出しを利用できるようにする必要がある場合は、それを標準ライブラリの 1 つに追加するか、LD_PRELOAD.

カーネルへのシステム コールの追加については、 http ://www.csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/projects/howto_add_systemcall.html を参照してください。

LD_PRELOADアプローチ については、こちらを参照してください: LD_PRELOAD トリックとは?

于 2013-08-12T08:24:44.170 に答える