ObjectSquare [1998 年 11 月号]

[Happy Squeaking!!]


2.Squeak の入手

2.2 Squeak のダウンロード

2.2.4 各ファイルの説明


バーチャルマシン、イメージファイル

今の操作でお気づきの方もおられると思いますが、SqueakBeta.exeは、Squeakを動かすためのバーチャルマシンです。Javaでいうとjava.exe に該当します。
(VMにBetaとついているのは、御愛敬です。実はSqueakのVMはインタープリタ版とジャストインタイムコンパイラ版があったのですが、2.2からは一つになっています。このような事情からBetaなのです)。

そして、SqueakBeta.exe に引数として与えたSqueak2.2.imageは、イメージファイルと呼ばれます。

ここでのイメージは画像ではなく、「生き写し、そのもの」といった意味です。
Squeak2.2.imageには、Squekのバーチャルマシン上で動作するオブジェクト群が一体となってバイナリ形式で格納されています。
ノートPCではよくサスペンド機能というものがあります。これは一次記憶上(RAM)のメモリイメージの内容をそのまま二次記憶(ハードディスク)に移し替え、PCを落としてしまうものです。
リジュームにより、二次記憶上のメモリ内容は再びRAM上に読み込まれ、電源を落とす前の状態でPCのデスクトップがよみがえってきます。
これと同じことがSqueakでも行われています。Squeak2.2.imageは、二次記憶上にフリーズドライされており、SqueakVMに引数として与えられることにより再びRAM上に展開されて動き始めるのです。

図で示すと以下のようになります。

拡大図(GIF,8KB)
Squeakのバーチャルマシンとイメージファイルの関係

Javaでは起動時に一つのクラスファイルを指定します。Java仮想マシンは、そのファイルのmainメソッドから参照される全てのオブジェクト群の生成に必要なクラスファイルを、CLASSPATH環境変数に設定されたパスの中から検索し、起動時にオブジェクト群の固まりを作り上げます。これに対し、Smalltalkでは、最初からオブジェクト群は一つの固まりのファイルになっているのです。
(商用Smalltalkでは、起動時に複数のファイルから、起動に必要なオブジェクトをロードするものもありますが、Squeakではこのような方式はサポートされていません)。

設定ファイル

さて、終了するとSqueak.iniというファイルができています。ここにはSqueakBeta.exeを起動するときの設定情報が書きこまれます。

	[Global]
	DeferUpdate=1
	ShowConsole=0
	DynamicConsole=1
	ReduceCPUUsage=1
	3ButtonMouse=0

これはただの設定ファイルです。それぞれについては細かいのでここでは説明しません。デフォルト値で十分です。ただし3つボタンマウスを使われているかたは最後の行を

	3ButtonMouse=1

というふうに変更しておいてください。

ソースファイル、チェンジファイル

次にSqueak2V.sourcesを見てみましょう。

これはSqueakの開発環境が参照するSmalltalkのソースコードが格納されたテキストファイルです。

	'From Squeak 2.0 of May 22, 1998 on 22 May 1998 at
	4:32:15 pm'!Object subclass: #AbstractScoreEvent
	instanceVariableNames: 'time ' classVariableNames: ''
	poolDictionaries: '' category: 'Music-Scores'!!AbstractScoreEvent
	commentStamp: 'di 5/22/1998 16:32' prior: 0!Abstract
	class for timed events in a MIDI
	score.!!AbstractScoreEvent methodsFor: 'all' stamp:
	'jm 12/31/97 11:46'!isNoteEvent ^ false! !!AbstractScoreEvent
	methodsFor: 'all' stamp: 'jm 

といった形で延々とコードが続いています。これはSqueakの開発環境(システムブラウザ)から参照されるもので、通常このファイルをエディタなどで見ることはありません。
システムブラウザの詳しい説明は後の章で行います。このファイルがないとSqueakの起動時にソースが参照できないという警告がでますので必ずこのディレクトリにおいておきましょう。

拡大図 (GIF,4KB)
ソースファイルが見つからないという警告メッセージ

さて残るはチェンジファイルです(Squeak2.2.changes)。これは開発者がソースコードに対して行った変更、追加、削除などの記録がすべて保存されていく一種のジャーナル(ログ)ファイルです。ソースファイルと同じようにテキストファイルですが、ソースファイルがリードオンリーなのに比べチェンジファイルはどんどん書き込まれていく点が異なります。

ソースファイルには、安定したバージョンのソースが書き込まれており、チェンジファイルは、それらのソースに対する変更分が書き込まれます。

通常、チェンジファイルはイメージファイルとセットで個人ごとに所有されます。例えばumezawa用の開発環境としては、umezawa.imageとumezawa.changesがセットになります。名前も拡張子以外は同じになります。

では、そろそろ自分用の環境を作りましょう。もう一度Squeakを起動してみてください。

起動したらメインメニューから、今度は save as… を選択してください。


メインメニューからsave as… を選択

すると新たなイメージファイル/チェンジファイルの名前を聞かれますので、好きな名前を入れます。


ファイル名の入力

これであなた専用のSqueakの環境が手に入りました。

Squeakを起動したディレクトリに、umezawa.image、umezawa.changesといった二つのファイルができているはずです。

今後の起動は、新しくできたイメージファイルを使って行っていきます。
以下のようなバッチファイルを作っておくと便利でしょう。
(イメージファイル、チェンジファイルは好きなディレクトリにおいてかまいません。下の例の場合は、c:\Home\umezawa\Squeak\image にumezawa.imageとumezawa.changesを移動したと仮定しています)。

	ファイル名 MySqueak.bat
	@echo off
	set SQVM=c:\lang\Smalltalk\Squeak\SqueakBeta.exe
	set MYVI=c:\Home\umezawa\Squeak\image\umezawa.image
	%SQVM% %MYVI%

以後は MySqueak とたたけばOKになります。

さあ、これで準備が整いました。Squeakの世界にでかけましょう!


© 1999-2001 OGIS-RI Co., Ltd.

Prev.

Index

Next