2009年01月07日
supattobox(スパットボックス) 第1回
コピペと簡単な修正で作るファイル同期ソフト「スパットボックス」
ネットにあるソースのコピペだけ(ちょっとは手を加えますが・・)で作るDropBoxのようなWindows向けのファイル同期ソフトを作りましょう。
多分、全5回くらいの記事でそれなりの完成になると思います。
http://lab.deepvalley.jp/archives/category/supattobox/
2009年01月05日
負荷分散、広域ストレージ利用向けのLinuxカーネルモジュールをオープンソースで公開
株式会社ディープバレイ(本社:愛知県北名古屋市、代表取締役社長:深谷 悟美)は、ファイル操作をリアルタイムに把握のできるカーネルモジュール「ffsrvmod」を開発し、オープンソースとして公開しました。
http://deepvalley.jp/archives/17/
2008年12月25日
disk image file
dd if=/dev/zero of=disk.img bs=1024k count=1 seek=5120
こんなんで、5Gのファイルが出来上がります。
出来上がったファイルを
mkfs -t ext3 -F disk.img
こうすると、ext3でフォーマットされたファイルが出来上がります。
さらに
mount -o loop disk.img /mnt
こうすることで、/mntへ普通にアクセスできるようになります。
ffsys ffsrvmod カーネルモジュール
ffsysは、ffsrvmodを使ったシステム全体の総称です。
ffsysの中心になるffsrvmodは、Linuxシステムコールのファイル操作に関するものだけをフックし、外部にメッセージを送信する カーネルモジュール(LKM) です。
カーネルモジュールとして動く ffsrvmod はシンプルであり、sys_open,sys_close,をはじめ,utime,rename…など、ファイル操作をメッセージ順にSocketへ流し込みます。ただそれだけです。
(全てではありません。最終的にファイルが完成?ファイル操作が終了?した時点でメッセージが流れるようにしています。)
ffsrvmod は、コマンド、ファイルのフルパス、その他必要なオプション(アクセス権など)を流すだけで、ファイルのデータそのものは扱いません。(もしかしたらデータも扱うかもしれませんが、今のところ予定はありません。)
現在はデータを冗長させるサンプルプログラムしか付属していませんが、今後ffsrvmodを使った大容量ストレージ・負荷分散・データベースの高速化を紹介して行く予定です。
2008年11月28日
カーネルスレッド
struct task_struct *kthread_create(int (*threadfn)(void *data), void *data, const char namefmt[], ...)
引数1 スレッド関数を指定
引数2 渡す引数
引数3 psで表示される名前
static int test_thread(void * num)
{
//thread処理
}
static int __init init_test(void){ //threadを生成する初期化モジュール
struct task_struct *th;
//省略
//thread生成
th = kthread_create(test_thread, &num, "test_thread");
if (IS_ERR(th)) {
//失敗
goto ERR_RET;
}
//threadスタート
wake_up_process(th);
}