Mac OS 9
本ページは、過去に取り上げたMac OS 9の記事をまとめたものです。
内容は当時のものですので、ご注意下さい。
[1999/10/16]
- Mac OS 9でのパッケージ
Technote 1188をゆっくり読む時間があったので、その内容について少し書いておきたいと思います。
大雑把に言うと「パッケージ」とは「フォルダを一つのファイルのように扱う仕組み」と言えると思います。以前、5月17日の記事でMac OS X ServerのYellowBoxアプリケーションの実体がフォルダであることを書きましたが、それと同じような感じですね。
Mac OS 9のTechnoteでは、Finder 9で「Carbon アプリケーションのバンドル(1つまたは複数のサポートファイルを含むフォルダ) に対するサポートが追加」されたと記載されていますが、Technote 1188を読むと、パッケージ機能は主にアプリケーション向けに開発されたものですが、それ以外の書類やライブラリのパッケージを作成することも可能であると書かれています。
パッケージの利点は、(主に)アプリケーションと、関連するサポートファイル(ヘルプファイル、スクリプト、ライブラリ等)を一括して管理できることです。例えばアプリケーションの移動や削除の場合にサポートファイルの移動や削除を忘れたり、アプリケーションが必要とするサポートファイルを誤って削除したりすることが無くなります。またAppleは、従来システムフォルダにサポートファイルをインストールしていたアプリケーションは、Mac OS 9ではアプリケーションと共にパッケージ化することを推奨していますので、システムフォルダがすっきりして分かりやすくなると思います。
Mac OS 9のFinderでは、「パッケージフラグが“ON”で、かつルート階層にエイリアスが1つだけ存在するフォルダ」をパッケージとして認識します。システムクラッシュ等の要因でパッケージフラグが“ON”になってしまい、普通のフォルダがパッケージとして誤認されてしまった場合、それを修復するPackage First Aid ユーティリティがMac OS 9 CDに収録されているとのことです。
パッケージ機能では、Finderフラグの13番目のビットがパッケージフラグとして使用されます。ファイルの場合、この13番目のビットはバンドルビットとして使用されています。しかし今までフォルダに対しては使われていなかったので、現状のResEditやFileBuddy等のユーティリティはフォルダに対してこのビットの操作ができませんが、今後はこのビットの操作が可能なユーティリティも出てくることでしょう。
このような新しい技術では互換性の問題も発生します。パッケージに対応しているナビゲーションサービスではパッケージ(フォルダ)の中を参照できませんが、従来のOpen/Saveダイアログ等ではパッケージを単にフォルダとして扱うので、ユーザがパッケージの中を見ることができてしまいます。おそらくMac OS 8.xで起動した場合も同様にFinder上でパッケージの中を参照できてしまうと思いますので、注意が必要だと思います。
現在は、パッケージを採用したアプリケーションもほとんど(全く?)リリースされていませんが、Mac OS 9がリリースされれば、いろいろなアプリケーションが登場してくるでしょう。パッケージアプリケーションが利用可能になれば、またレポートしたいと思います。
[1999/10/30](2)
- Mac OS 9でのCarbonのサポート
Mac OS 9日本語版が発売されました。

まだCarbon対応のアプリケーションが少ないためか、あまり話題になっていませんが、Mac OS 9ではCarbon APIがサポートされています。
Carbonは、Mac OS X上でメモリ保護やプリエンプティブマルチタスク等のモダンOS機能を実現するAPIです。Mac OS 9上ではモダンOS機能の恩恵は受けられませんが、Mac OS 9に標準でCarbonLibが組み込まれたことで来年リリース予定のMac OS Xへの移行がスムーズに行われることが期待されます。
「まだCarbon対応のアプリケーションが少ない」と書きましたが、Mac OS 9では「スクリプト編集プログラム」がCarbonアプリケーション化されています。
(Technote参照)
それだけでは無く、Mac OS 9の「スクリプト編集プログラム」ではスクリプトをアプリケーションとして保存する際に「Mac OS Xアプリケーション」(つまりCarbonアプリケーション)として保存することが可能です。

上図のように、スクリプトをアプリケーションとして保存する際に「MacOS X アプリケーション」という形式を選択することができます。Mac OS Xでは現行のMac OSアプリケーションの実行環境を「Classic」と呼びますが、ご覧のように「スクリプト編集プログラム」でも現行Mac OSの形式を「classic アプリケーション」と呼んでいることも分ります。
Carbonアプリケーションは、Mac OS XおよびCarbonLibを組み込んだMac OS 8.1以降のMac OSで動作するとされていますが、Mac OS 8.x用のCarbonLibが利用できず、Mac OS Xもリリースされていない現時点では、実質的にMac OS 9専用ということになります。
TechnoteにもCarbonLib 1.0はMac OS 9専用で、以前のバージョンのMac OSでは利用できないと記載されているように、実験的にMac OS 8.6にCarbonLib 1.0を入れてみましたが、やはり読み込まれませんでした。Carbon対応アプリケーションが出そろってくれば、Mac OS 8.x用のCarbonLibがAppleのサイトから、またはアプリケーションに添付されて入手可能になるでしょう。
CarbonLibの無い環境でCarbonアプリケーションを起動すると、下図のようなダイアログが表示されます。

なお、あるスクリプトを「classic アプリケーション」として保存した場合、「情報を見る」の推奨メモリサイズは200KBでしたが、同じスクリプトを「MacOS X アプリケーション」として保存すると推奨メモリサイズは650KBとなりました。CarbonアプリケーションはClassicアプリケーションよりも多くのメモリを必要とするようです。また、アプリケーション自体のサイズもやや大きくなるようです。
[1999/11/01]
- 細かな点ですが、Mac OS 9では”起動ディスク”コントロールパネルも改良されています。

私の環境では「G3-1+」にMac OS 9、「G3-3」にMac OS 8.6をインストールしています。ちょっと分かりにくいかもしれませんが、システムフォルダの無い「G3-2」は淡色表示され、選択できなくなっています。これにより起動できないデバイスを誤って指定してしまうことがなくなります。
[1999/11/02]
- 続・Mac OS 9でのパッケージ
10月16日のパッケージの記事で、「今後は“パッケージフラグ”の操作が可能なユーティリティも出て来るだろう」ということを書いたところ、チャットでFeel Like MacさんからTapeというシェアウェア($10)を教えていただきました。ありがとうございます。
アプリケーションパッケージについてはFeel Like Macさんが書かれていますので、概要はそちらを見ていただくとして、ここではそれ以外のことについて書いてみたいと思います。
Mac OS 9では、「パッケージフラグが“ON”で、かつルート階層にエイリアスが1つだけ存在するフォルダ」をパッケージとして認識します。このエイリアスはパッケージ内のどれかのファイルを参照し、参照されるファイルを“主要ファイル”と呼びます。
“主要ファイル”がアプリケーションであるパッケージを“アプリケーションパッケージ”と呼びますが、Technote 1188に記載されているようにアプリケーション以外のドキュメントやライブラリを“主要ファイル”とすることも可能です。例えば、最近はヘルプファイルをHTML形式で提供するソフトウェアも多いですが、index.htmlを“主要ファイル”として、他のHTMLファイルや画像ファイル等とまとめてパッケージ化するといった使い方も考えられるでしょう。
パッケージは、基本的に“主要ファイル”の属性を引き継ぎます。パッケージはFinder上で“主要ファイル”のアイコンで表示され、パッケージにファイルをドラッグ&ドロップした場合も“主要ファイル”にファイルをドラッグ&ドロップした場合と同様の動作を行います。ただし、Finderの「情報を見る」で種類は“パッケージ”として表示され、容量はパッケージ内のファイル容量の合計値となります。また、Sherlock 2の検索項目には「種類が“パッケージ”」という選択肢が無く、パッケージを検索する場合は“フォルダ”として検索する必要があるようです。ちょっと分かりにくいですね。
あと、注意すべき点は、“主要ファイル”を指すエイリアスは“相対的パス”でなければならないということです。
MDRさんが「コピーしたパッケージが動かない」と書かれていましたが、これはおそらくエイリアスが正しく作成されていないと思われます。簡単な実験をしてみましょう。

(1) パッケージにするフォルダを2個作成し、一方(Pkg-1)はルート階層に、もう一方(Pkg-2)はサブフォルダに“主要ファイル”(SimpleText)を置く。

(2) Tapeを使用してパッケージ化する。

(3) それぞれのパッケージをFinder上で複製する。Pkg-2は正しく複製されるが、Pkg-1は“壊れたパッケージ”となる。


(4) 複製したパッケージをPackage First Aidでフォルダに戻し、エイリアスを確認する、Pkg-2のコピー(下)は複製されたパッケージ内の“主要ファイル”を正しく指しているが、Pkg-1のコピー(上)は元のパッケージ内の“主要ファイル”を指しており、エイリアスがパッケージ内のファイルを指していないため、“壊れたパッケージ”になる。
このように、“主要ファイル”がパッケージ内のルート階層にある場合、エイリアスが絶対的パスで作成されてしまい、コピーした場合に正しく動作しませんので注意が必要だと思います。また、Technote 1188にも記載がありますが、“ファイル共有”が“オン”の場合、エイリアスが絶対的パスで作成されてしまう場合があるようです。
なお、MacLHA 2.22など、Mac OS 9に対応していないツールを使用してパッケージの圧縮・解凍を行うと、通常のフォルダに戻ってしまいます。Mac OS 9付属のDropStuff 5.1.2+StuffIt Engine 5.1.3+StuffIt Expander 5.1.4では正しく処理できますが、DropStuffの初期設定で「エイリアスの代わりにオリジナルを圧縮」のチェックをオフにしないとパッケージが壊れてしまいます。
今後はパッケージで提供されるソフトウェアも増えてくると思われますので、注意が必要だと思います。
[1999/11/29]
- PackageTool
GNUE(鵺)さんのページで紹介されていたPackageToolを使ってみました。
PackageToolはドラッグ&ドロップでMac OS 9のパッケージフラグを操作するためのツールで、AppleのSampleCodeページから入手できます。
以前(11月2日の記事)書いたように、Tapeを使用して“主要ファイル”がルート階層にあるフォルダをでパッケージ化すると正しいパッケージにならないのですが、PackageToolではそのような構造(ルート階層に“主要ファイル”とそのエイリアスがある)のフォルダをパッケージ化できないようになっています。
←TOPページに戻る
「Macintoshは米国アップルコンピュータ社の商標です」
「その他、記載の商品名などは、一般に各社の登録商標または商標です」
Copyright (C) Toshimitsu Tanaka
1999.