TOPへ
ソース一覧
利用許諾
FAQ
お問い合わせ
関連資料

挿入削除機能付きファイルシステム

概要

現在のパーソナルコンピュータでサポートされている汎用的なファイルシステムでは、ファイルへの操作は、読み出し(read), 書き込み(write), シーク(seek)などのシステムコールにより行われています。そのため、映像などの大きなサイズのファイルの一部分のデータに対して挿入や削除を行いたい場合、それ以降のデータに対してもコピー動作が必要となるため、操作の完了までに時間がかかるという問題があります。
挿入削除機能付きファイルシステムは、ファイルに対する挿入および削除を高速に行うことを目的に開発したファイルシステムです。挿入削除機能付きファイルシステムは次の操作を高速に行うことができます。

ブロックのサイズはデフォルトでは4Kバイトになっています。
挿入削除機能付きファイルシステムはLinux上のext4を改造して実装しています。

ダウンロード

挿入削除機能付きファイルシステムのソースコードは、ここからダウンロードしてください。

動作環境

下記の環境で動作確認しています。

動作確認には挿入削除機能付きファイルシステムを使うためのパーティションが必要です。あらかじめ、空き領域を確保しておいてください。

コンパイル方法

インストールの詳細は、ダウンロードファイルを展開した中のinstall.txtを参照してください。ここでは、簡単な概要を示します。

あらかじめインストールするPCで、linux-2.6.22.16のLinuxカーネルが起動できる状態としておいてください。

ダウンロードしたソースコード(ここでは、ext4_mxf.tar.tzとします)を適当なディレクトリで展開します。

% tar xvfz ext4_mxf.tar.tz

展開したファイル内のsrcディレクトリ内のfsディレクトリおよびincludeディレクトリを、linux-2.6.22.16のソースに上書きしてください。

% su
# cd ext4_mxf
# cp –rR ./src/* /usr/src/linux-2.6.22.16/

後は通常のカーネルのインストールと同様です。

挿入削除機能付きファイルシステムによるディスクのフォーマットとマウント方法

挿入削除機能付きファイルシステムは以下の手順でフォーマット、マウントすることで使うことができます。

はじめに、/etc/mke2fs.confのext4devブロックのfeaturesを、has_journal,extentsのみに変更してください。

# vi /etc/mke2fs.conf

その後、次の順でフォーマット、マウントしてください。ここでは、フォーマットするパーティションを/dev/sdc1, マウント先を/mntとして説明します。

# mkfs –t ext4dev –j /dev/sdc1
# mount –o extents /dev/sdc1 /mnt

マウントしたディスクは通常のext4(ext4dev)ファイルシステムのディスクとして使用できます。
手動でmountする替わりに/etc/fstabを設定することで、OSの起動に自動的にマウントできます。

挿入削除機能付きファイルシステムの使い方

ファイルへの挿入削除の実行はioctl()システムコールを使って行います。 オープンしたファイルのファイルディスクリプタに対して、ioctl()を実行することでファイルへの操作が行われます。

ioctl()へのリクエストコードは次の4種類です。

具体的な使い方はソースコードを展開したディレクトリ内のreadme.txtファイルと、sampleディレクトリ内のサンプルソースコードを参照してください。

関連文献

注意事項

本プログラムは挿入削除機能をサポートしたファイルシステムを実験、評価するために作成したものであり、実用に耐えるに十分な実装は行っていません。実験、評価用途としてご利用ください。

商標

NovellならびにSUSEはNovell, Inc.の登録商標です。
LinuxはLinus Torvals氏の登録商標です。