[an error occurred while processing this directive]

(Illustration by Gaich Muramatsu)

Coda File System

Home Downloads
(インフォサイエンス)
Bugs Documentation
News Mailing lists FAQ Research
 
---------

戻る コンテンツ


6. Coda の構築

ファイルシステムとして、Coda は構築にメジャーなコンポーネントがいくつか必要です:

6.1 Linux での構築

カーネル・モジュールの構築

カーネル・モジュールを構築するのが理にかなった、融通がきくやり方です。構築時に走っていないカーネルのためのモジュールを構築することもできます。

まず、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 は最も大事なものです。

構築するには:

6.2 FreeBSD での構築

カーネル全体の構築

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 

LKM を構築

もう一つの方法として、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 を使う時には:

Coda の構築: パッケージの方法

cd /usr/ports/net/coda_client
make install
cd /usr/ports/net/coda_server
make install

注: クライアントとサーバはそれぞれ作業領域に 85 Mb,インストールに 15 Mb を必要とします。デバッグは -g でコンパイルします。

Coda の構築: 別の方法

まず、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/codaCd して

mkdir obj
バイナリを構築する場所です。objcd して入力します:
../coda-4.6.6/configure
/usr/coda/coda-4.6.6 にインストールされたソースを設定してシャドウにするために、gnu の設定システムを使います。

最後に、gnu make を gmake にしたとして、:

gmake coda

クライアント・パッケージのインストールは:

gmake client-install

サーバ・パッケージのインストールは:

gmake server-install

6.3 NetBSD での構築

カーネル全体の構築

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 にコピーします。

LKM を構築する

もう一つの方法として、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 を使う際の注意:

Coda の構築: パッケージの方法

cd /usr/pkgsrc/net/coda_client
make install
cd /usr/pkgsrc/net/coda_server
make install

注: クライアントとサーバはそれぞれ作業領域として 85Mb、インストールに 15Mb を必要とします。デバッグのコンパイルは -g です。

Coda の構築: 別の方法

まず、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/codaCd して

mkdir obj
バイナリを構築します。objcd して:
../coda-4.6.6/configure
/usr/coda/coda-4.6.6 にインストールされたソースを設定して、シャドウにする gnu 設定システムを使います。

最後に、gnu make を gmake にして:

gmake coda

クライアント・パッケージをインストールするには:

gmake client-install

サーバ・パッケージをインストールするには:

gmake server-install

6.4 Windows 95 でのクライアントの構築

警告: 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 ツールチェーンに組み込まれています。

ユーザレベルのコードの構築

必要なのは:

  1. 100M の空きがある Linux マシン
  2. 利用できるツール・チェーンをダウンロードします: ftp://ftp.coda.cs.cmu.edu/pub/tools/{95,win32}
  3. 必要な rpm:
  4. Windows のボックスで Linux のバイナリを共有するためには、Samba のセットアップを強く勧めます。

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 では使えません。

カーネルレベルのコードの構築 (VXDs)

必要なのは:

注: 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 のインストール

インストーラはあなたまかせになっています。Coda を起動するには、Windows95: Coda クライアントの起動と設定を見てください。

6.5 NT の Coda サーバの構築とインストール

注: 現在、利用できるクライアントのカーネルソースはまだありません。間も無く試験的なバイナリがリリースされるでしょう。もちろん、そう遠くない将来にソースをリリースします。

しかし、Venus を構築できて(NT 用に供給されたカーネル Coda FSD で)、サーバを構築できます。

Coda は NT と Windows 95 で走っている Coda サーバのアルファ・サポートです。Win32 バイナリは、効果的に Unix システムコールを Win32 コールにトランスレートする、Cygnus Win32 キットを使って構築されます。

クロスコンパイラを使って Linux ワークステーション上で Win32 バイナリを構築するのが、簡単な方法です。その時これが心配が無用なのは、完全な手動だからです。もちろん、私たちは動くようにヘルプをしたりバグをフィックスしたりします。

構築の方法

必要なのは:

  1. クロス・コンパイルキットの入手: ftp://ftp.coda.cs.cmu.edu/pub/tools/win32/cygwin-b20_glibc-3.i386.rpm.
  2. ftp://ftp.coda.cs.cmu.edu/pub/tools/win32/libgdbm-nt-1.7.3-3.i386.rpm. (RedHat 5.0 用の rpm です。もちろんソースが使えます。)
  3. coda-?.?.? tar アーカイブの入手 ftp://ftp.coda.cs.cmu.edu/pub/coda/src.
  4. 解凍 & 構築
    ./configure --host=nt
    make coda
    
  5. コーヒーでも飲んで、コンパイラの warning でも出ない限り、リラックスします。

Windows マシンでの構築も可能なはずです; configs/coda.m4 を 2、3 変更して、新しい configs/Makeconfig.ntnative ファイルを作ります; それから autoconf を走らせて、クラッキングを手に入れます。しかし、Windoze マシン(訳注: doze = まどろむ、居眠りする) によって作成された ^M キャラクタのパッチを私たちに送ることはしないでください!

構築後の手動設定

  1. まだ Linux にある NT のバイナリの領域にインストールします。 適切な場所にバイナリを置きます: make BINDIR=TARGET/bin SBINDIR=TARGET/bin server-install
  2. RH マシンで samba を走らせて、Coda のために構築領域をエクスポートします。
  3. ftp://ftp.coda.cs.cmu.edu/pub/coda/support/nt-patches にあるものか、cygnus から直接置き換えます
    C:\cygwin\cygwin-b20\H-i586-cygwin32\bin\cygwin1.dll
    
    cygwin1.dll のバージョンは 01/15/99 かそれより新しいものです。
  4. バッシュ の実行になります。"Start" メニューから起動できます。
  5. Cywin のためにマウントポイントを観察してください。c:\ にマウントされた root ボリュームがあります。これを c:\coda に変更してください:
    umount /
    mount -b C:\coda  /
    
    バイナリのマウントがバイタルなら -b です。
  6. Cygwin パスで cygnus.bat ファイルのどこかにエントリを追加します。
    SET HOME=C:\Coda
    
    c:\coda ディレクトリに .bashrc ファイルを作ると、Cygwin シェルが開始します。エクスポートパスを設定して(以下に記述)、ホーム・ディレクトリに cd します。
  7. いくつかディレクトリを作って、/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
    
  8. 上記のように構築された Coda をインストールします。coda-?.?.? 領域は、バッシュで NT マシンのドライブ H: にマップされるドライブです:
    cd //H/
    cp * /bin
    
    バイナリファイルは .exe 拡張子を持っていないかもしれません。その場合は名前を変えて、バッシュのシェルスクリプトとバイナリを区別します。

インストーラはあなたまかせになっています。サーバを設定して起動するには Codaserv -- the server セクションを見てください。


戻る コンテンツ

---------
詳しくはメールで

このページの情報に関わる、ご質問、お問い合わせは、 japache@infoscience.co.jpまで。
Coda ホームページ