« メモ・メモ・メモ | トップページ | いろんなものに依存症 »

2005.05.29

仮想ディスク・デバイスドライバ実装希望

え〜と,ListVをごにょごにょしているときに思ったことです。

ListV自体は,Spotlightや,WinFSの登場で不要となることが見えているので,たぶん凍結です。

さて。シンボリックリンクなどの方法論は,イケているようでイケてないです。

Cygwinのファイルシステムの隠蔽化はイケていると思うのですが,Cygwinの世界でしか使えません。

Unixなファイル階層構造は,ユーザごとのマウントとシンボリックリンク(ハードリンクとかわけわからんことはよく分からんですが)で,イケていたのだと思います。

しかしながら,ユーザごとのマウントでなくて,プロセスごとのマウントができればいいのにな,と思うことがありませんか?

#もしかしたらごく普通にできるのかもしれない;;

プログラミングしてれば,ゼッタイにぶちあたるウザイ作業として,依存関係のある複数のライブラリやコード断片のファイル配置があります。

ライブラリファイルの置き場所,ヘッダファイルの置き場所,依存する側からの相対ディレクトリ指定,などなど。

で,いわゆる構成管理としてそれをやるわけですが,それでもやっぱりウザイですよね。構成管理ツール上では涅槃が実現されていても,Windowsでならエクスプローラでぴゅっと動かしちゃったらだめでしょう?

さらにバージョン管理まで含めるとなると,構成管理側のリポジトリとバージョン管理側のリポジトリの階層構造をあわせたり,構成管理側でシンボリックリンク的なものを張ったりすることになります。VSSのリンクプロジェクトですな。

それでもやっぱり一旦ワークコピーにコピーされたものをピュっと動かしちゃったりしちゃいけないわけです。ファイル配置を変えたければ,構成管理ツール上で配置の設定を変えたりリンクを張ったりしてからワークコピーの再取得をおこなう,と。

まぁきちきちやるならそれでいいんですがね。

開発者全員のワークコピーの配置とか揃えるのは,良いことだと思いますよ。

ここで提案するのは,単なるオモチャです。Windowsしか考えてません。Unix系だといろいろ工夫すれば同じことが簡単にできるはずですし。

仮想ドライブを作って,その中に実ドライブ上のファイルを放り込むと,いわゆるシンボリックリンクを張ったように振舞うのです。

実ディレクトリを放り込んだら,同名の仮想ディレクトリが作成され,その中に実ディレクトリ内の実ファイルのシンボリックリンクを張ります。

後で仮想ディレクトリを移動したり改名したりしても,実ファイルや実ディレクトリには全く影響しません。しかし,仮想ディレクトリ内の仮想ファイルを操作すると実ファイルに反映されます。

基本のアイデアはこれだけです。Beファイルシステムのクエリがディレクトリになるのと同じですな。

しかし仮想ディレクトリだけでは困ることがあるわけです。現状では。ですので,Cygwinのように全く異なるファイルシステムをユーザとアプリに見せれば宜しいのではないかと。

Cygwinのように全てのアプリをCygwin環境でビルドしなきゃいけないのはマズ〜なので,仮想ドライブにしたらええやないか,ただそれだけのことです。

それなら,仮想ファイルシステムのデバドラを書けば良いだけです。WevDAVつまりWebフォルダ機能も惜しいのですが,いろいろ問題があります。

仮想ドライブが実ドライブと同じ機能を持っておれば,ほぼ全てのアプリをそのまま使えます。

ここまで考えれば,あとは発展系です。

バージョン管理機能を仮想ドライブが持てば良いのですがね。そのためには,単なるシンボリックリンクではだめです。仮想ドライブに放り込まれた実ファイルについてそれぞれ一時コピーを生成し,それが仮想ドライブから見えるようにしてやらなければならないでしょう。そしてバージョンでひもつけにします。

仮想ドライブ上で更新が行われたときに,実ファイルにそのまま更新するかなどの選択肢が増えます。もしそこをうまいこと作ることができれば,ワークコピーという概念が消え去ります。内部的には一時コピーがワークコピーになるのかもしれませんが,ユーザから見れば仮想ドライブ上でファイルのセットを操作しているだけです。

極端な話,仮想ドライブがリモートの実ファイルをハンドリングできれば,複数サーバ上の複数のプロジェクトファイル一式を好きなように配置してビルドしたりできるわけです。それぞれファイル一式をダウンロードし,手元のローカルなCVSに放り込んでおいてから,ワークコピーを取り直す,などというのは全くもって前時代的な作業だと思うのです。

NFS使えばいいじゃんとか,ネットワークドライブでいいじゃんとか,言われれば確かにそうなのですが,実際だめだめだと皆わかってますよね?

subversionやWebDAVで解決してくれるのは問題のごく一部で根本的には管理しなきゃいけない項目が全然減らないと思うのです。

残念なことに,現存するファイルシステムの多くはインターフェースに機能が不足です。インターフェースはWebDAV並に,内部処理はsubversion並に,それでうまいこといきそうです。しかしながら,実ファイルシステムのインターフェース不足によって,完全にはなり得ません。

WinFSが与えるインパクトはそこら辺と同じ問題を孕んでいるような気がします。ようするに現存するファイルシステムと同等のものを残しながら,新しい世界に踏み出すのは大変そうなのです。

つづき,というか反省。

ごみためのランキングはこちら。

|

« メモ・メモ・メモ | トップページ | いろんなものに依存症 »

パソコン・インターネット」カテゴリの記事

プログラミング」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

Rational ClearCaseの動的ビューなんか近いものがありますよ。MVFSという仮想ファイルシステムでファイルだけではなく、ディレクトリ構造もバージョン管理できます。

投稿: 通りがかりのながさわ | 2005.06.02 20:00

m(__)mどもありがとうございますぅ。
http://www-6.ibm.com/jp/software/rational/products/scm/cc/fb.html
「動的ビューでは、ネットワーク・ユーザーが、独自の透過的ファイル・システムを介して、開発中のソース・ファイルやプロジェクト・データを即座に更新できます。」ですとな。
なるほど。まさにコレです。

あとはお財布と相談します~(←貧乏人に選択肢ナッシング;;)

・・・orz

あっかる~いRationa~l,あっかる~いRationa~l♪
み・ん・な~う~ちぢゅ~ぅ~Ra・tio~na~l~ぅ♪
#値段見てヤケになってみましたぁ~

投稿: ごみためまん | 2005.06.02 21:04

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/8092/4319679

この記事へのトラックバック一覧です: 仮想ディスク・デバイスドライバ実装希望:

« メモ・メモ・メモ | トップページ | いろんなものに依存症 »