![]() (Illustration by Gaich Muramatsu) |
| |||||||
| ||||||||
ファイルシステムとして、Coda は構築にメジャーなコンポーネントがいくつか必要です:
カーネル・モジュールを構築するのが理にかなった、融通がきくやり方です。構築時に走っていないカーネルのためのモジュールを構築することもできます。
まず、ftp://ftp.coda.cs.cmu.edu/pub/coda/src/ から linux-coda-?.?.?.tgz アーカイブを入手します。ターゲットになるシステムの適当な場所でこれを展開します。
カーネル・ツリーの用意
モジュールヘッダ情報を与えるのに便利な、カーネルツリーが必要です。 用意:
make oldconfig
make dep
In the top directory of linux-coda build the coda.o module:
make config --- answer the questions
make coda.o
su
make install
depmod -a
注
coda は glibc システムを使って構築するのが最も簡単です。今後、libc 変数のメインテナンスはしません。Coda のバイナリにリンクするいくつかのライブラリが必要になり、lib???-devel パッケージからのファイルを含みます。Readline と termcap は最も大事なものです。
構築するには:
coda-?.?.?.tgz.
Coda カーネルファイルは FreeBSD 最新カーネルソースにあります。Coda が利用できるカーネルを入手するのに必要なことは、Coda を含んだ設定を構築することです。Coda を可能にする行は GENERIC にはありません。コピーする必要のある LINT ファイルに、いくつかの Coda 行があります。 i386/conf ディレクトリで:
grep -i coda LINT
一般には:
# Coda stuff:
options CODA #CODA filesystem.
pseudo-device vcoda 4 #coda minicache <-> venus comm.
GENERIC カーネル設定か標準の個人設定にこれらの行を追加してください(grep で生じたものは何でも)。DDB と BPF を on にします。
新しい設定ファイル CODA を呼ぶものとします。入力は:
config CODA
それから構築するディレクトリに cd して、make します:
cd ../../compile/CODA
make
最後に、root でカーネルをインストールします:
make install
もう一つの方法として、Coda のために lkm を構築して、カーネルにそれを入れます。やることは:
cd /usr/lkm/coda
入力:
make
make install
coda_mod.o を構築して、/lkm にコピーします。入力によりロードします:
modload -v -e coda_mod -o /var/run/lkm.coda /lkm/coda_mod.o
lkm を使う時には:
cd /usr/ports/net/coda_client
make install
cd /usr/ports/net/coda_server
make install
注: クライアントとサーバはそれぞれ作業領域に 85 Mb,インストールに 15 Mb を必要とします。デバッグは -g でコンパイルします。
まず、coda を構築するための外部パッケージがいくつか必要です: gnu make, gdbm, readline, and perl.
少なくとも、ftp://ftp.coda.cs.cmu.edu/pub/coda/src から最新のソースを持ってくる必要があります。 この例では、リリース 4.4.6 を入手するものと仮定します。 注: ftp サイトにはベータとアルファ、実験的で不安定なソースリリースがあります。
ソースを構築する領域に展開します(ここでは /usr/coda だとします)。
tar zxfv coda-4.6.6.tgz -C /usr/coda
/usr/coda に Cd して
mkdir obj
バイナリを構築する場所です。obj に cd して入力します:
../coda-4.6.6/configure
/usr/coda/coda-4.6.6 にインストールされたソースを設定してシャドウにするために、gnu の設定システムを使います。
最後に、gnu make を gmake にしたとして、:
gmake coda
クライアント・パッケージのインストールは:
gmake client-install
サーバ・パッケージのインストールは:
gmake server-install
Coda のカーネルファイルは、NetBSD 最新カーネルソースにあります。Coda を利用できるカーネルを入手するために必要なことは、Coda を含んだ設定を構築することです。Coda を可能にする行は、あなたの設定にはないかもしれません。GENERIC にはあるはずですが、off になっているかもしれません。あなたの設定ファイルにそれをコピーすることができます。こんな感じです。
file-system CODA # Coda File System
pseudo-device vcoda 4 # coda minicache <-> venus comm.
しかし、GENERIC にあるものは何でも最新になります。
新しい設定ファイルを CODA とします。入力は:
config CODA
それから構築するディレクトリに cd して、make します。
cd ../compile/CODA
make
netbsd を root にコピーします。
もう一つの方法として、Coda のために lkm を構築してカーネルにそれを入れます。やることは:
cd /usr/sys/lkm/vfs/coda
そして入力:
make
make install
coda.o を構築して、/usr/lkm にコピーします。ロードするには:
modload -v -e coda_lkmentry -o /var/run/lkm.coda /usr/lkm/coda.o
lkm を使う際の注意:
cd /usr/pkgsrc/net/coda_client
make install
cd /usr/pkgsrc/net/coda_server
make install
注: クライアントとサーバはそれぞれ作業領域として 85Mb、インストールに 15Mb を必要とします。デバッグのコンパイルは -g です。
まず、coda を構築するための外部パッケージがいくつか必要です: gnu make, gdbm, readline, and perl
少なくとも、ftp://ftp.coda.cs.cmu.edu/pub/coda/src から最新のソースを持ってくる必要があります。 この例では、リリース 4.4.6 を入手するものと仮定します。 注: ftp サイトにはベータとアルファ、実験的で不安定なソースリリースがあります。
ソースを構築する領域に展開します(ここでは /usr/coda だとします)。
tar zxfv coda-4.6.6.tgz -C /usr/coda
/usr/coda に Cd して
mkdir obj
バイナリを構築します。obj に cd して:
../coda-4.6.6/configure
/usr/coda/coda-4.6.6 にインストールされたソースを設定して、シャドウにする gnu 設定システムを使います。
最後に、gnu make を gmake にして:
gmake coda
クライアント・パッケージをインストールするには:
gmake client-install
サーバ・パッケージをインストールするには:
gmake server-install
警告: Windows 95 で Coda を動かすソフトウェアは、初期のプレ・アルファのスナップショットです。Coda はカーネルレベルのコードで走り、システム・ダメージの原因となるかもしれないプロセスに特権を与えます。Coda を動かす前に全てのデータのバックアップを取ってください。
Windows 用の Coda は Michael Callahan mjc@stelias.com によって可能になりました。
Michael はメモリ・マップと TCP/IP ソケットのサポートに関して DOS のプロテクト・モードの環境を拡張しました(これは、DJGPP スタートライブラリでの低級サポートだけでなく、Windows カーネルサポートも伴っています)。彼はまた、Coda に向けたカーネル・モジュールも書きました。Michael の仕事は、Coda のチームによってデバッグされ、拡張されて。パッケージになりました。
簡単な解説
なぜ DOS のアプリケーションなのか? Win32 のアプリケーションである、Venus というユーザレベルの Coda のクライアント・キャッシュ・マネージャを実装するのが簡単なように見えます。悲しいことに Windows 95 では、(良く知られた)以下の問題があります。ユーザのアプリケーションが Win32 のファイル・システム・コールを呼ぶと、アプリケーションは win16 システムの dll でミューテックスを要求することがあるからです。要求はカーネルに届いて、Venus につながります。ミューテックスを取れないせいで、Venus はその時リクエストをサービスできません。デッドロックになります(参照: Schulman's, Unauthorized Windows 95, IDG)。
カーネルレベルのキャッシュ・マネージャとして Venus の全てを実装すると、災いを引き起こすようです。代わりに、DOS プロテクトモードのインターフェースを持つアプリケーションとして、バーチャルの DOS マシンでキャッシュマネージャを走らせます。そのアプリケーションが、ミューテックスを得るような Windows のダイナミック・ライブラリを共有しないので、この問題を回避できます。このやり方と取った代償は高くなります。DPMI のようなアプリケーションのために自由に使えるソケットのサポートがなく、メモリー・マッピングのサポートもありません。これは Michaels VXD によるもので、標準的なライブラリ・コールは現在 DJGPP ツールチェーンに組み込まれています。
必要なのは:
Coda のソースの最新 tar アーカイブ入手します。例: ftp://ftp.coda.cs.cmu.edu/pub/coda/src/coda-?.?.?.tgz.
Linux で Venus を再構築できます
./configure --host=windows95
make
クライアント・ユーティリティとサーバについては
./configure --host=nt
ここでの Venus は NT のための構築で、Win95 では使えません。
必要なのは:
注: 95DDK は MSVC20 ディレクトリにある 95DDK に VC2.0 リンカーを必要とします(リンカーのために Link.err と DBI.DLL の入手が必要となります)。MASM611C ディレクトリにある 95DDK には、最新の MS アセンブラ 6.11 も必要です。
構築する VxD のソースは: ftp://ftp.coda.cs.cmu.edu/pub/coda/src/win95-coda-5.2.0.zip. sock.vxd を構築するためには、マイクロソフトから提供されるヘッダファイルが必要で、VXDTDI.ZIP にあります。Developer Studio による、VxD のハウツーを知る必要があります:
Developer Studio Project である "95projects" を使います。個々に VXD を構築します。Coda の起動を簡単にする CodaStart を構築します。
/coda:/dev/cfs0:<ip adress of server 1>,..,<ip adress of server n>,<cachesize>:1
CMU-testserver で動かすには
/coda:/dev/cfs0:128.2.209.213:100000:1
c:\autoexec.bat の PATH 環境変数に c:\usr\coda\bin のパスを追加インストーラはあなたまかせになっています。Coda を起動するには、Windows95: Coda クライアントの起動と設定を見てください。
注: 現在、利用できるクライアントのカーネルソースはまだありません。間も無く試験的なバイナリがリリースされるでしょう。もちろん、そう遠くない将来にソースをリリースします。
しかし、Venus を構築できて(NT 用に供給されたカーネル Coda FSD で)、サーバを構築できます。
Coda は NT と Windows 95 で走っている Coda サーバのアルファ・サポートです。Win32 バイナリは、効果的に Unix システムコールを Win32 コールにトランスレートする、Cygnus Win32 キットを使って構築されます。
クロスコンパイラを使って Linux ワークステーション上で Win32 バイナリを構築するのが、簡単な方法です。その時これが心配が無用なのは、完全な手動だからです。もちろん、私たちは動くようにヘルプをしたりバグをフィックスしたりします。
必要なのは:
./configure --host=nt
make coda
Windows マシンでの構築も可能なはずです; configs/coda.m4 を 2、3 変更して、新しい configs/Makeconfig.ntnative ファイルを作ります; それから autoconf を走らせて、クラッキングを手に入れます。しかし、Windoze マシン(訳注: doze = まどろむ、居眠りする) によって作成された ^M キャラクタのパッチを私たちに送ることはしないでください!
C:\cygwin\cygwin-b20\H-i586-cygwin32\bin\cygwin1.dll
cygwin1.dll のバージョンは 01/15/99 かそれより新しいものです。
c:\ にマウントされた root ボリュームがあります。これを c:\coda に変更してください:
umount /
mount -b C:\coda /
バイナリのマウントがバイタルなら -b です。
cygnus.bat ファイルのどこかにエントリを追加します。
SET HOME=C:\Coda
c:\coda ディレクトリに .bashrc ファイルを作ると、Cygwin シェルが開始します。エクスポートパスを設定して(以下に記述)、ホーム・ディレクトリに cd します。
/bin/sh を作り、パスをエクスポートします:
mkdir /bin /vice /rvm /vicepa /tmp
touch /rvm/LOG
touch /rvm/DATA
cp //c/cygwin/cygwin-b20/H-i586-cygwin32/bin/bash /bin/sh
export PATH=/bin:$PATH
cd //H/
cp * /bin
バイナリファイルは .exe 拡張子を持っていないかもしれません。その場合は名前を変えて、バッシュのシェルスクリプトとバイナリを区別します。
インストーラはあなたまかせになっています。サーバを設定して起動するには Codaserv -- the server セクションを見てください。
Coda ホームページ
|