Technote 1176
Mac OS 9
改訂版 2
|
|
このテクニカルノートでは、次世代の Mac OS である Mac OS 9 に加えられた変更と修正について説明します。Mac OS 9 は Mac OS 8.6 の後継システムであり、Mac OS 8.6 の機能に対する拡張と修正を含んでいます。
このテクニカルノートは、Mac OS 9 と互換性を持つ製品開発に関心を持っているすべてのデベロッパを対象に書かれています。
|
目次
|
必要なハードウェア
|
|
Mac OS 9 は、PowerPC プロセッサを搭載して出荷されたすべての Macintosh が対象です。Mac OS 9 をインストールする Macintosh には少なくとも 32 MB の RAM が物理的に実装されていて、40 MB 以上の RAM が論理的に設定されている必要があります(物理的に実装されている RAM の容量が 64 MB未満の場合、仮想メモリの容量はデフォルトで 64 MB に設定されます。)
Apple では、Mac OS 9 を Apple 製の PowerPC ベースの Mac OS コンピュータでテストを行っており、その動作を保証しています(他社製の Mac OS 互換コンピュータでは Mac OS 9 のテストを行っていないため、これらのコンピュータで Mac OS 9 が正常に動作することは保証されていません。)
6100、7100、および 8100 モデルにインストールする場合は、コンピュータを Mac OS 9 インストール CD からブートする必要があります。
先頭ページに戻る
|
|
|
インストール
|
Mac OS インストーラ
|
|
|
“Mac OS インストーラ”アプリケーションプログラムを実行するには、System 7.1.2 またはそれ以降のシステムが必要です。このアプリケーションプログラムを使って、System 7.1.2 またはそれ以降のシステムに Mac OS 9 の CD-ROM システムインストールをすべてインストールすることができます。Mac OS 7.5.1 またはそれ以前のシステムを実行しているユーザは、CD からシステムをブートしてインストールを実行する必要があります。
|
- Mac OS 9 のインストーラスクリプトでは“機能セット(Feature Sets)”という概念がサポートされ、ユーザはさまざまなインストールのタイプを選択できるようになりました。これらの新しいインストールのタイプは、“標準(for this computer)”や“ユニバーサル(universal)”だけでなく、教育、ビジネス、ゲームなどに特に関心のあるユーザのニーズに合わせて調整することができます。
|
|
|
Finder 9.0
|
|
|
Finder はユーザにグラフィカルインタフェースを提供すると同時に、ファイルシステムを利用するアプリケーションに Apple イベントベースのサービスを提供します。
|
- サイズが 2GB を超えるファイル(サイズの理論的な上限は 263 バイト)をコピーする機能と、それらのファイルに関する情報を“情報”ウインドウに表示する機能が追加されました。
- 長い Unicode
ファイル名を持つファイルをコピーしても、そのファイル名が保持されるようになりました。
- Desktop Manager をサポートしないボリューム(典型的にはフロッピーディスクボリューム)にサイズの大きな“デスクトップ”ファイルが含まれていても、これまでよりもはるかに速くボリュームをマウントできるようになりました。
- Finderは、それぞれの書き込み可能ディスクに“TheVolumeSettingsFolder”という名前の不可視フォルダを作成するようになりました。このフォルダは、オープンウインドウの位置やデスクトッププリンタなどの項目に関する情報を追跡するために使用されます。
- Carbon アプリケーションのバンドル(1つまたは複数のサポートファイルを含むフォルダ) に対するサポートが追加されました。ただし、Mac OS 9 でのパッケージのインプリメンテーションにはいくつかの注意事項があります。
- パッケージのフォルダ内部にある項目をオープンしようとするとき、Finder はオープンする書類のリストを含む
'odoc' イベントを送信します。これまでと異なるのは、書類リストが 'fpdl'(Finder package document list)というキーを含む省略可能なパラメータに格納されることです。
- Finder
のインタフェースで、パッケージはフォルダとして格納されている場合にもアプリケーションと同様に動作します。パッケージの内容はユーザからは見えません。
- パッケージに含まれる項目のエイリアスが作成されていて(仮に、以前のシステムバージョンを使用しているときに)、ユーザがこのエイリアスをオープンしようとすると、そのエイリアスは省略可能な
'fpdl' パラメータを含む 'odoc' イベントを使ってパッケージのアプリケーションに渡されます(アプリケーションの 'BNDL' がファイルタイプのリストを含んでいない場合でも。)
- “ファイル”メニューに“暗号化”という項目が追加されました。この項目を選択すると、“Apple ファイル保護”ユーティリティが自動的に起動し、選択している書類が暗号化されます。この方法で暗号化したファイルは、そのアイコンをダブルクリックして復号化できます。注意:Apple ファイル保護はフォルダを暗号化できません(フォルダがパッケージであっても。)
- Mac OS 9 の Finder は“常に並べる”や“常にグリッドに沿う”オプションが選択されているウインドウについて、AppleScript によるアイコン位置の設定を受け付けません。このようなウインドウに対してアイコン位置の設定をした場合、Finder はエラーコード -15274(window wrong type)を返します。
|
|
|
Apple ヘルプ 1.5
|
|
|
Apple ヘルプは Mac OS のほぼすべての機能に関する詳細な操作手順ヘルプを提供します。Apple ヘルプテクノロジは、ヘルプビューアと Apple ガイドという2つの主要なコンポーネントから構成されています。
|
Apple ガイド 2.5
|
|
Mac OS 9 で Apple ガイドは、何らかのタスクを実行するために必要な一連のコマンド操作をユーザに指示するために使用されます
|
- Apple ガイドのバージョン 2.3.1 と 2.4.1 の場合、Apple ガイドの Gestalt バージョンセレクタは 2.3.1
を返します。Apple ガイド 2.5 の場合、Gestalt セレクタ
'ag_v' は 2.5 を返します。
ヘルプビューア 1.5
|
|
ヘルプビューアはシンプルな HTML レンダリングアプリケーションで、ユーザがオンラインヘルプの情報を容易にブラウズすることを可能にします。ヘルプビューア 1.5 には次のような機能が追加されました。
|
- ヘルプビューアは、ローカルにインターネットベースのヘルプコンテンツを検索して、それを表示することができます。
|
|
Apple Data Security 2.0
|
|
Apple Data Security はセキュリティ機能を Mac OS に導入します。新しく提供されるセキュリティ機能には、ファイルシグネチャの署名と検証、パスワード保守、およびファイル暗号化に関する機能が含まれます。
|
|
Apple 署名検証
|
|
|
Apple 署名検証は Mac OS 9 に追加された新しいテクノロジで、デベロッパによるアプリケーション、プラグイン、およびコンテンツの署名を可能にします。Apple Code Signing Certificates は、ユーザに製品の同一性と整合性を保証します。詳細については Mac OS Security and Cryptography のページをご覧ください。
|
|
Apple ファイル保護
|
|
|
Apple ファイル保護は暗号化機能を提供します。ユーザはこのアプリケーションを使って、パスワードによるファイルの暗号化または暗号化されたファイルの復号を行うことができます。Finder に新たに追加された“暗号化”メニュー項目は、“アプリケーション”フォルダ内に常駐する Apple ファイル保護アプリケーションの機能に依存しています。Apple ファイル保護にはフォルダの圧縮および暗号化を行う機能はありません。これによりパッケージの暗号化が妨げられます。
|
|
Cryptographic Message Syntax(CMS)
|
|
キーチェーンアクセス 2.0
|
|
|
キーチェーンはパスワードの安全なリポジトリを提供します。1つのマスタパスワードを入力するだけで、アプリケーションプログラムはキーチェーンに格納されている他のすべてのパスワードを使用できるようになります。ユーザが複数のパスワードを記憶している必要はありません。キーチェーン 2.0 では次の機能がサポートされています。
|
- 複数のオープンキーチェーン
- 暗号化されたキーと認証の格納
- マルチユーザ機能との統合
|
|
|
|
Carbon は Mac OS アプリケーションで使用するプログラミングインタフェースのセットです。Carbon には、レガシー Mac OS API の約 70% が含まれています。Mac OS 9 には、Carbon API の最初のインストールが付属します。以下のセクションでは、Mac OS 9 で使用可能な Carbon API の概要を示します。
|
Carbon Control Manager
|
|
Carbon Control Manager は既存の Control Manager
API
にいくつかの変更を加えています。次に、これらの新しいサービスを示します。
|
GetControlID および SetControlID という新しいルーチンが追加されました。これらのルーチンを使用すると、コントロールをその ID 番号で参照できるようになります。
- 新しいコントロール定義パッケージングモデルが導入され、コントロールはスタンドアロンのコードリソースとしてではなく、CFM コードフラグメントとして格納されるようになりました。
- コンテキストメニューをサポートするようにコントロール定義を書くことが可能になりました
- プロパティを制御するための属性が追加されました。コントロールのプロパティが persistent であるとマーキングすると、コントロールがフラット化されるとき、そのプロパティのデータは自動的に保存されるようになります。
- 6 つの新しい Control Manager API が導入され、コントロールによるドラッグ & ドロップ操作をサポートするようになりました。この新しい機能のオン/オフはコントロールごとに切り替えることもできますが、ウインドウ単位で設定することもできます。
Carbon Menu Manager
|
|
Carbon Menu Manager は既存の Menu Manager API にいくつかの変更を加えています。次に、これらの新しいサービスを示します。
|
- メニューは opaque データとして格納されるようになりました。
- アップルメニューの自動的な取り扱いが可能になりました。
- カスタムメニューを定義するための新しい API が追加されました。
Carbon Printing Manager
|
|
Carbon Printing Manager は、アプリケーションがプリント出力を生成するために使用する API のまったく新しいセットを提供します。次に、これらの新しいサービスを示します。
|
- 新しい API が追加され、事実上、印刷プロセスのすべての面を管理できるようになりました。
- より多くのユーザ設定を格納できるようにプリンタ設定構造体が拡張されました。
Carbon Scrap Manager
|
|
Carbon Scrap Manager は、スクラップにアクセスするための新しい API を導入します。次に、これらの新しいサービスを示します。
|
- 'promised'
スクラップデータを提供する機能が追加され、アプリケーションはリクエストされるまでデータの作成を遅延できるようになりました。これは、Drag
Manager の 'promised'
フレーバーモデルに類似した概念です。
Carbon Window Manager
|
|
Carbon Window Manager は既存の Window Manager API を拡張し、Mac OS にいくつかの斬新で興味深いウインドウ管理機能を導入します。次に、これらの新しいサービスを示します
|
- ウインドウクラスとレイヤー
- カスタムウインドウを定義するための新しい API
CarbonLib 1.0
|
|
CarbonLib は、Mac OS 9 で Carbon ベースのアプリケーションの実行を可能にする共有ライブラリです。Carbon アプリケーションは、CFM ベースのアプリケーションのように、InterfaceLib などのライブラリにリンクする代わりに CarbonLib に対してリンクを行います。
|
- CarbonLib 1.0 は Mac OS 9 で新たに導入されました。
|
|
互換性に関する注意
CarbonLib 1.0 は Mac OS 9 専用です。Mac OS の以前のバージョンや Mac OS の今後のバージョンではロードされません。
|
CoreFoundation 1.2
|
|
CoreFoundation は Mac OS X の Cocoa API からさまざまな API やサービスを抽出し、それらを C API と純粋な C インプリメンテーションを使った複数のプラットフォーム上の複数のスタックで使用できるようにします。
|
- Unicode 文字列を取り扱うための統一的かつシンプルな方法を提供する文字列型が追加されました。これにより、Unicode 文字列と 8 ビットエンコーディングされた Pascal および C の文字列との間で容易に変換する方法が提供されます。
- String とともに、“プロパティリスト”の機能を提供するコレクションクラス(Dictionary、Array、Data) が追加されました
- プロパティリストの読み書きに対する XML サポートが追加されました。
- いくつかのユーティリティを使用して日付/時刻を抽象する方法が提供されました。
- ユーザまたはアプリケーションごとに設定可能なユーザ初期設定(プリファレンス)の読み書きに対する“初期設定”フォルダのサポートが追加されました。
- 実行可能で、任意にローカライズ可能なリソースファイルを含む Carbon アプリケーションラッパーを管理するためのバンドル API が追加されました。
|
|
互換性に関する注意
将来のバージョンとの互換性を維持するため、潜在的にインターナショナルな文字列データを取り扱うすべてのソフトウェアでは、これらの文字列型の使用を開始してください。
|
新しい Carbon API の概要
|
|
次に、Mac OS 9 の一部としてインストールされる CarbonLib 1.0 によって導入された新しい API の概要を示します。
|
- Apple event Manager
- AEDesc.dataHandle は opaque です
- AEDesc アクセッサ
- Alias Manager
- UI を表示することなくエイリアスを解決する新しい
API
- Appearance Manager
- Control Manager
- コードリソースの代わりに ProcPtrs を使用するカスタムコントロール定義のサポート
- コントロールのプロパティ属性
ControlRecord は opaque です
- コントロールアクセッサ
- コントロール ID
- 次のコントロール定義がサポートされます
- コンテキストメニュー
- Drag Manager
- カーソルの設定
- Dialog Manager
- ダイアログ項目リストの編集
DialogRecord は opaque です
- ダイアログアクセッサ
- Event Manager
- 現在のマウス位置とキーボード修飾子を取得する新しい
API
- Icon Services
- List Manager
- コードリソースの代わりに ProcPtrs
を使用するカスタムリスト定義のサポート
- リストアクセッサ
- MacHelp Manager
- バルーンヘルプに代わる新しいコンテキスト依存ヘルプ
API。ただし、CarbonLib 1.0
での使用はお勧めできません。
- Memory Manager
- Ptr、Handle、およびヒープの検証に使用する新しい
API
- Window Manager
- コードリソースの代わりに ProcPtrs
を使用するカスタムウインドウ定義のサポート
- 既存のウインドウの属性を変更する機能
- ウインドウのプロパティ属性
- クラスによるウインドウの繰り返し
WindowRecord は opaque です
- ウィンドウアクセッサ
- Menu Manager
- コードリソースの代わりに ProcPtrs
を使用するカスタムメニュー定義のサポート
- メニューのプロパティ属性
- メニューとメニュー項目の属性
- マスメニュー項目のオン/オフ
CommandID-ベースのメニュー項目へのアクセス
- 標準フォントメニュー
MenuInfo iは opaque です
- メニューアクセッサ
- QuickDraw
GrafPort, QDGlobals,
および Region は opaque です
GrafPort, QDGlobals,
および Region アクセッサ
- Resource Manager
- Scrap Manager
- クラシックな Scrap API に代わるまったく新しい
API
- String Comparison
TextEdit
- 一部の TextEdit
下位メモリグローバルに対するアクセッサ
- Text Utilities
|
|
|
System ファイルの内部
|
|
|
System
ファイルには、コンピュータを動作させるために必要なコードとリソースが含まれています。このセクションでは、System
ファイルに加えられた新機能、変更、およびバグフィックスについて説明します。shift
キーを押しながらシステムを起動したときにも、System
ファイルによって提供される機能は常に Mac OS 9
の一部としてロードされます。
|
|
|
ATSUI(Apple Type Services for Unicode Imaging)1.2
|
|
Unicode は、フラットな 16 ビット数値空間の中で多数の言語の文字をエンコードする文字セットです。ATSUI は QuickDraw API を拡張し、Mac OS アプリケーションによる Unicode テキストの描画を可能にします。ATSUI は Unicode テキストを描画するためのローレベルなサービスを提供するだけでなく、これまでは QuickDraw GX によって行われていたハイエンドなタイポグラフィ制御の多くを提供します。
|
- Postscript Type 1
フォントのすべてのフレーバーに対するネイティブサポートが追加されました。サポートされる
Type 1
フォントフォーマットには、以下のものが含まれます。
- sfnt unimaster
- sfnt multimaster
- sfnt CID(主に 2 バイト)
- LWFN + FOND unimaster
- OCF(ダブルバイトスクリプトに使用するオリジナルのコンポジットフォント)
- naked CID
- ATSUI が必要とするメモリ容量が少なくなりました
- 行区切りは Unicode
ユーティリティに基づいた言語学的な区切りになりました
- 行区切り操作のパフォーマンスが向上し、より高速なレイアウトが可能になりました
- タブ文字の処理が追加されました
- API に多数の新機能が追加されました
- バグフィックスが行われました
|
|
Code Fragment Manager 68K(CFM-68K)4.0
|
|
68K Code Fragment Manager(CFM-68K)は、Code Fragment Manager の 68K インプリメンテーションです。68K Code Fragment Manager は 68K マシン上の Mac OS の一部であり、680x0 コードフラグメントをメモリにロードして、その実行を準備します。CFM-68K を PowerPC マシンで使用するのは適切ではありません。
|
- いくつかの CFM-68K フラグメントがシステムから削除されました。Mac OS 9 は PowerPC ベースのシステムでのみ実行されるため、これらの CFM-68K フラグメントはもはや必要ありません。
|
|
Communications Toolbox
|
|
Communications Toolbox
は、基本的な通信および接続サービスのための API
を提供します。
|
- Communications Toolbox Resource Manager(CRM)
はこれまで、シリアルポートの最大許容速度を誤ってレポートしていました。Mac
OS 9 では、最大許容ポート速度を正しくレポートするように
CRM が修正されました。
|
|
Device Manager
|
|
Device Manager は、アプリケーションとデバイスドライバ(通常は特定のハードウェアデバイスとデータをやり取りするコード。ただし、一部のデバイスドライバは実際にはドライブデバイスではないこともあります)との間のデータのやり取りに使用するプログラミングインタフェースを提供します。
|
- 非同期バリアント(
_Control、_Status、_Read、_Write)を含む呼び出しに MP タスクから同期的にアクセスできるようになりました。この機能を使用できるかどうかをテストするため、デベロッパは gestaltMPCallableAPIsAttr Gestalt セレクタを使用することができます。
|
|
Dialog Manager
|
|
Dialog Manager はユーザとダイアログとの相互作用を管理します。Dialog Manager には次の新機能が追加されました。
|
- 今後、Carbon アプリケーションはダイアログの項目リストハンドルにアクセスできなくなります。新しいルーチンが追加されたため、Carbon アプリケーションは項目リストに含まれる項目を直接編集できるようになります。
|
|
File Manager
|
|
File Manager
は、ディスクベースの情報を格納したり取得したりするためのサービスを提供します。File
Manager には次の新機能が追加されました。
|
- File Manager のこのバージョンには HFS Plus API が導入されました。この中には、サイズの大きなファイル(2GB を超えるフォーク。サイズの理論的な上限は 263 バイト)や長い Unicode 名のサポートが含まれます。基盤となるファイルシステムのインプリメンテーションによってサポートされている場合は、名前付きフォークもサポートされます(Mac OS 9 に組み込まれているファイルシステムではリソースおよびデータフォーク以外のフォークはサポートされていませんが、FSM プラグインにより、この機能のサポートをインプリメントすることが可能です。)
- オープンファイルの最大数を 8169 に増やしました。
- 非同期バリアントを含むパラメータブロック呼び出しや、このような呼び出しに基づくハイレベル呼び出しを、MP タスクから同期的に実行できるようになりました。
PBMountVol などの常に同期的に実行される呼び出しを MP タスクから呼び出すことはできません。
- File Manager はソフトウェアが暴走しても HFS や HFS+ ボリュームのエクステント情報やディスクカタログを誤って上書きできないように変更されました。
- File Manager では、
driverHardwareGoneErr(-503)というディスクドライバから返される新しいエラーコードがサポートされるようになりました。ディスクドライバでは、デバイスが切断されていて再接続できないドライブへの I/O リクエストに応答して、このエラーを返す必要があります。このエラーコードは USB ディスクドライバで特に役立ちます。FireWire ディスクドライバでは、これまでと同様に FireWire ルーチンの FWWaitForDeviceRePlug を使って、デバイスの再接続をユーザに強制する必要があります。
|
|
互換性に関する注意(システムエラー 119)
今後、FCB テーブルに直接アクセスすることはできないようになります。FCB テーブルに対する PowerPC ローメモリアクセッサ関数を呼び出すソフトウェアは、今後、dsMustUseFCBAccessors(119) システムエラーを発生させてシステムの実行を停止させます。FCB データにアクセスする必要のあるデベロッパは、TN1184: FCB の現在、そして未来 の説明にしたがって適切なルーチンを使用してください。
|
|
|
互換性に関する注意
あるボリュームに対する File Manager リクエストをすべて監視するために既存の File Manager プログラミングインタフェースにパッチを当てているデベロッパはソフトウェアを修正して、HFS Plus API にもパッチを当てる必要があります
|
|
|
File System Manager
|
|
File System Manager
は、外部ファイルシステムのインストールや識別を行ったり、外部ファイルシステムとオペレーティングシステムとのインタフェースをとるための一般的な手段を提供します。
|
- 新しい API が追加され、非常に多くのファイルがオープンされているときに、FSM プラグインがすばやく FCB を検索することが可能になりました。
- 新しい API が追加され、FSM プラグインによる FCB ポインタの検証と、FCB ポインタのファイル参照番号へのマップが可能になりました。
- 新しい API が追加され、フォーク ID の使用時に FSM プラグインはパーミッションをチェックできるようになりました。
- File Manager に互換レイヤがインプリメントされたため、FSM プラグインでは新しい HFS Plus API 呼び出しをサポートする必要がなくなりました。FSM プラグインが VCB の vcbFlags フィールドに含まれる
kVCBFlagsHFSPlusAPIsBit をセットしていないかぎり、この互換レイヤは、プラグインで 1 つまたは複数の古いスタイルの呼び出しを行って、対象となるボリューム上で HFS Plus 呼び出しをエミュレートします。HFS Plus API を直接的にサポートしたい場合は、このビットをセットしてエミュレーションが行われないようにします。
|
|
Folder Manager
|
|
Folder Manager は、フォルダ名に依存することなく、特殊なフォルダ(たとえば、“機能拡張”フォルダなど) を検出するための機能を提供します。Folder Manager はデベロッパによるアプリケーションのローカライズ作業を支援します。
|
- Folder Manager はマルチユーザをサポートするように修正されました。
- FindFolder ルーチンの新しい拡張バージョンが追加されました。このバージョンは、FindFolder オペレーションのより厳密な制御を可能にする新しいフラグとデータパラメータを受けつけます。
FindFolder はフォルダのエイリアスにも対応するようになりました。
- マルチユーザ設定を管理するその他の機能とともに通知コールバックが追加されました。
IdentifyFolder のパフォーマンスが向上しました。
- 新しいボリュームセレクタである
kOnAppropriateDisk が追加されました。このセレクタにより、目的のフォルダをいくつかの異なるボリュームで検索する必要があるときにも、デベロッパは特定のフォルダの位置を容易に確立できるようになります。
|
|
Font Manager
|
|
Font Manager は、テキスト情報を表示するグリフを取得するためのシステム全体にわたるサービスを提供します。
|
- フォントフォルダの使用可能なフォントスーツケースファイルの上限が 128 から 512 になりました。
- Mac OS 8.6 の Font Manger は不正にフォーマットされた FOND リソースを作成して、それらをリソースファイルに追加していました。Mac OS 9 の Font Manger は今後このような問題が発生しないように修正されています。また、Mac OS 8.6 でも Font Manager Update 1.0 というアップデートを使用することができます。Font Manager Update 1.0 には、この問題を修正する機能拡張と、この問題によって破損したフォントを修正する Font First Aid というユーティリティが含まれています。
- Font Manager には新しいフォント管理 API が追加されました。これは、フォントコレクションへのアクセスや変更を行うパブリック API で、フォント管理の基本的なタスクをサポートします。新しいフォント管理 API は次の機能を提供します。
- フォントとフォントファミリを列挙する
- 名前、文字エンコーディング、メンバフォントなどのフォントファミリに関する情報にアクセスする
- テクノロジ、フォーマット、名前などのフォントに関する情報にアクセスする
- フォントデータにアクセスする
- 基本的なフォントメニューを作成して管理する
- ォントをアクティブ化またはインアクティブ化する
- フォントデータベースに加えられた変更をクライアントに通知する
|
|
Mac OS USB
|
|
Mac OS USB は Mac OS ROM
ファイルに組み込まれていて、USB 内蔵の Macintosh
システムで USB サポートを有効にします。v1.3
では次のような変更が加えられました。
|
- ドライバがリクエストするタイムアウトのサポートが追加されました。
- HID ドライバのサポートがインプリメントされ、Immersion ベースのフォースフィードバックジョイスティックに対応したベンダ固有のドライバをサポートできるようになりました。
- USB Expert のサポートがインプリメントされ、USB デバイスからインターナショナル文字列を取得できるようになりました。
- USB サスペンドおよびレジュームウェイクアップのサポートが提供されました。
- “not enough power”ダイアログが表示されるときにデバイス名が表示されないというバグがフィックスされました。
USBExpertStatus
呼び出しがリエントラントになりました。その結果、一部のドライバ開発者から報告されていた“メッセージが失われる”という問題が解消されるはずです。
USB Class Driver による Expert Status レベルの取得と設定を可能にする新しい関数が追加されました。これにより、デベロッパはこれまで経験していたいくつかの特殊な問題を容易にデバッグでき、エラーログをいっぱいにしなくてもすむようになります。この機能は現在 USB Prober によってのみ使用されます。
kNotifySystemSleepRevoke メッセージのサポートが追加されました。
- 仮想メモリ使用時の等時(isochronous)および割り込み転送ルーチンのパフォーマンスが向上しました。
isoch ディスクリプタが不足している場合に nil を参照しなくなる可能性があるという問題が解決されました。
USBGetVersion 呼び出しがインプリメントされ、現在の USB のバージョンを取得できるようになりました。この呼び出しは Gestalt 使用の代替手段として提供されているため、現在の USB のバージョンを取得するために InterfaceLib とのリンクを行う必要がなくなります。リスト 1 は、この呼び出しを使って、インストールされている USB のバージョンを決定する方法を具体的に示しています。この使用例では、プロジェクトの一部として USBServicesLib との弱いリンクを行います。呼び出しの結果は 4 バイトの 'vers' 応答となり、これは 'usbv' セレクタを含む Gestalt 呼び出しを使ったときの戻り値とまったく同じです。
#include <USB.h> // USB.h v1.3 ヘッダファイルを
// インクルードしていることを確認
UInt32 MyUSBGetVersion(void) {
UInt32 version;
if ((Ptr) USBGetVersion != (Ptr) kUnresolvedCFragSymbolAddress)
version = USBGetVersion();
else
version = 0; // USB のバージョンは 1.3 よりも前
return version;
}
|
|
リスト 1 インストールされている USB のバージョンの決定
|
Isochronous frStatus エラーコードが修正されました。USB 1.2(およびそれより前のバージョン)では、不正なエラーコードが返されていました。たとえば、DataOverRun エラーは Stall エラーとして現れ、DeviceNotResponding エラーは BitStuff エラーとしてレポートされていました。
- ルートハブが過剰電流を検出したときに、過剰電流を通知する複数のダイアログを表示していた OHCIUIM に関連する問題が修正されました。
kNotifySystemSleepDemand メッセージが確実にドライバモジュールに送信されるようになりました。
- Mouse ドライバが修正され、USB CardBus を実装した PowerBook で正常に動作するようになりました。
- USB Audio Class デバイス(スピーカおよびマイク)と USB スピーカ上のジェネリックな HID デバイスに対するサポートがインプリメントされ、音量、消音、低音、および高音の調整が可能になりました。
- USB Communication Class Abstract Control Model に準拠する USB Communication Class デバイスに対するサポートがインプリメントされました。
- USB Manager の関数は USBPending を返すことがなくなりました。これらの関数は必ず noErr やその他のエラーコードを返します。
- 次の変更が USB API にインプリメントされました。
USBOpenPipe 呼び出しはサポートされなくなります。今後は、USBConfigureInterface 呼び出しを使って、デバイスに対するアクティブインタフェースを設定してください。この呼び出しはインタフェース内のすべてのパイプをオープンします。また、USBFindNextPipe 呼び出しを使用すると、パイプを介してデータを渡すときに必要となるパイプ参照にアクセスすることができます。
USBOpenDevice 呼び出しは USBSetConfiguration に置き換えられました。今後は、デバイスリクエストの代わりに USBSetConfiguration を使って、set_configuration オペレーションを実行してください。USL は、set_configuration USBDeviceRequest が作成されるたびに、ステータスメッセージを USBProber ログに発行します。
|
|
Memory Manager
|
|
Memory Manager はオペレーティングシステムの一部で、メモリ割り当てリクエストの管理を担当します。
|
- これまでは、サイズパラメータが
0xFFFFFFE1 から 0xFFFFFFFF の範囲の値であると、MemError は memFullErr を返さず、NewHandle は NULL を返すことなくクラッシュしていました。この問題は修正され、パラメータ値がこのサイズの範囲であっても、NewHandle は NULL を返し、MemError は memFullErr を返すようになりました。
- Memory Manager フリーブロック内のメモリは、仮想メモリの
ReleaseMemoryData 関数を使ってリリースされるようになりました。これにより、仮想メモリがページフォールトを処理する必要があるときに、ディスクアクセスの回数が大幅に少なくなります。ただしこのことは、処理後にポインタまたはハンドルデータを使用しようとするプログラム(プログラミングエラー)が意味のないデータを取得する可能性もあるということです。
|
|
Mixed Mode Manager
|
|
Mixed Mode Manager は、68K
エミュレーション実行環境と PowerPC
命令実行環境とを切り替えるためのサービスを提供します。
|
- 初期化された後でメモリ内に移動された場合も、アクセラレイティッドコードリソースはクラッシュしなくなりました。
|
|
Multitasking/Multiprocessing 2.1
|
|
Multitasking/Multiprocessing ライブラリにより、アプリケーションは複数のプロセッサを搭載した PowerPC コンピュータでプリエンプティブなマルチタスクオペレーションを実行できるようになります。また、このライブラリにより、ただ 1 つのプロセッサを搭載したマシンでもプリエンプティブなマルチタスクが可能になります。Multitasking/Multiprocessing ライブラリの今回のリリースには、いくつかの新機能が追加されています。
|
- 非同期/同期の2つの関数を備えているパラメータブロック系の File Manager と Device Manager のリクエスト、またはこれらの関数を直接利用するその他の関数は MP タスク内から同期的に呼出すことができます。(
PBMountVol のように、常に同期的に実行される File Manager と Device Manager の関数は MP タスクから呼出すことができません。)
- MP タスクは
WakeUpProcess を呼出すことができるようになりました。
- MP タスクは
DTInstall を呼出すことができるようになりました。
- MultiProcessing ライブラリは Mac OS 9 のサポート機種すべてでロードされます。
- 1GB を超える RAM がサポートされるようになりました。
|
|
Navigation Services 2.0
|
|
Navigation Services
は新しい“Open”、“Save”ダイアログを提供し、ユーザがファイルやその他のリソースを容易に検索して選択することを可能にします。Mac
OS 9 では、Navigation Services 2.0 が System
ファイルの中に組み込まれています。Navigation
Services 2.0 には次の新機能が用意されています。
|
- 新しい関数が追加され、プレビューリソースを書類にアタッチするプロセスが簡略化されました(
NavCreatePreview)
- Carbon
アプリケーションのパッケージに対するサポートが追加されました。クライアントが要求した場合、パッケージはユーザにファイルとして表示されます(
kNavSupportPackages。)また、パッケージをフォルダとして表示し、ユーザがその内部をナビゲートすることを許可するオプションも用意されています(kNavAllowOpenPackages。)
- カスタムコントロール領域の周囲に表示されるベベルフレームをオフにする新しいオプションが使用できるようになりました(
kNavDontUseCustomFrame。)また、オープンされているファイルを“最近使った書類”メニューに追加しないようにするオプションも使用できるようになりました(kNavDontAddRecents。)
- ユーザが現在の選択対象をオープンしたときに、新しいイベントセレクタがクライアントに通知されるようになりました(
kNavCBOpenSelection。)
- ファイルのフィルタ処理が緩和され、
NavTypeList
に含まれるコンポーネントシグネチャがワイルドカード値を持つことができるようになりました(kNavGenericSignature。)
- いくつかの新しいカスタムコントロールセレクタが追加され、クライアントが特定のナビゲーション動作を自動化したり制限したりできるようになりました(
kNavCtlBrowserSelectAll、kNavCtlGotoParent、kNavCtlSetActionState、kNavCtlBrowserRedraw、kNavCtlTerminate。)
|
|
Notification Manager
|
|
Notification Manager は、最前面のアプリケーションではないプログラムがユーザに特定のイベントを通知するためのメカニズムを提供します。
|
- Notification Manager は、フローティングウインドウを使ってアラート通知を表示できるようになりました。これにより、Notification Manager のアラートが画面に表示されている間も、現在のアプリケーションのイベントループは実行を継続することが可能になります。古いスタイルの“モーダル”アラートのように“キャンセル”ボタンを使用しなくても、これらの新しい Notification Manager アラートは、ウインドウのクローズボックスをクリックして画面から消すことができます。ブロックを行わない新しい Notification Manager は、TN1026: The Notification Manager: Problems & Fixes で説明されている2つの問題を解決しました。
- Notification Manager は、カスタムアラートサウンド(リクエストレコードの nmSound フィールドで指定される)を非同期的に再生できるようになりました。
- Notification Manager は今後、ブート時の初期にポストされた通知リクエストを放棄しなくなります。
|
互換性に関する注意
一部のアプリケーションは、Notification Manager アラートによるイベントループのブロックに依存するように設計されており、アラート通知がポストされた後は、ユーザがアラートを画面から消すまでポスティングアプリケーションの実行は再開されないことを前提にしていました。しかし、このような前提は正しいものではありません。つまり、アラート通知が表示される前にポスティングアプリケーションをアクティブにできる小さなウインドウがこれまでも存在していました。Notification Manager の新しい非ブロッキング動作により、アラートを画面から消すことなく、ユーザがポスティングアプリケーションをアクティブにすることが非常に容易になりました。アプリケーションはこのような可能性を正しく認識する必要があり、ユーザが通知を画面から消してしまうまではリクエストレコードを再使用しないように注意する必要があります。また、アプリケーションがアクティブになるときは、NMRemove を使ったアラート通知を明示的にキャンセルする必要もあります。
Notification Manager の以前のバージョンと同様、通知応答プロシージャはユーザがアラートを消すまで呼び出されません。リクエストレコードを再使用するアプリケーションでは、リクエストレコードをもはや使用されていないものとしてマーキングする応答プロシージャを常に提供する必要があります。これにより、アプリケーションはアラートが消される前にリクエストレコードを再使用できなくなります。
|
|
|
Process Manager
|
|
Process Manager
は複数のアプリケーションにプロセッサを共有させます。
|
- Apple
イベントのパフォーマンスが低下する原因となっていた Mac OS
8.6 の問題が修正されました。
|
|
互換性に関する注意
システム内には、システムの起動から終了まで動作し続けることが保証されているプロセスは存在しません。その結果、コントロールパネル、システム機能拡張、およびアプリケーションでは、他のプロセスに属する
A5 のようなステート変数値がすべての
WaitNextEvent
呼び出しにわたって一定であるということを前提にしてはいけません。また、どのプロセスも、別のプロセスのヒープゾーン内に持続的なストレージを安全に割り当てて、すべての
WaitNextEvent
呼び出しにわたってそれが持続的に保持されるということを無条件に仮定することはできません。自分自身のヒープゾーンの外部に持続的なストレージを要求するプロセスは、システムヒープゾーン内にメモリを割り当てることができます。
|
|
Power Manager 2.0
| |
Power Manager は Macintosh の電力消費を制御します。
|
- 新しい Power Manager は電力消費の制御を更に細かく設定できる API を備えています。
|
|
PPC Toolbox
|
|
PPC(Program-to-Program Communications)Toolbox は、同じマシン上で実行されているプロセス、および AppleTalk ネットワークまたは TCP/IP ネットワークによって接続されている異なるコンピュータ上で実行されているプロセスを対象とするプロセス間通信機能を提供します。
|
- PPC ブラウザウインドウに、TCP/IP を介して接続されているリモートマシン上のプロセスを選択する機能が追加されました。ユーザは、ドメイン名形式またはドット区切りの 10 進数形式のいずれかでアドレスを指定し、PPC ブラウザウインドウにターゲットとなるマシンを表示できるようになります。
|
互換性に関する注意
TCP/IP 接続を介した PPC ではゲストアクセスを使用できません。
|
- 過剰なリストポート呼び出し(
IPCListPorts)をキャンセルする新しいルーチンが追加されました。新しいルーチンである IPCKillListPorts はペンディングになっている IPCListPorts 呼び出しからパラメータブロックを取り出して、即座にその呼び出しをキャンセルします。
- IP 接続を介した PPC でターゲットマシンを指定する URL は、ドメイン名またはドットで区切られた 10 進数のアドレスによって IP アドレスを指定できます。たとえば、次の URL はどちらも IP 接続を介した PPC にとって有効な URL です。
eppc://mymac.mycompany.com
eppc://127.76.94.105
互換性に関する注意
TCP/IP 経由の PCC はポート番号 3031 で PPC 接続を待ち受けます。待ち受け用ポート番号を変更することはできませんが、発信側のポート番号を変更することは可能です。
この機能は複数のホストが一つの IP アドレスを共有している場合に便利です。例えば、ネットワークアドレス変換機能(NAT)を使ったシステムの場合、NAT の外では同じ IP アドレスでありながら、NAT 内で各ホストが異なる IP アドレスを持つ場合があります。このような場合は IP アドレスだけで NAT 内のホストを指定することができないので、ポート番号で指定する必要があります。各ポート番号からポート番号 3031 と特定の IP アドレスへの変換は NAT の責任となります。
例えば、eppc://myhost.mycompany.com:1234 を入力することによって、ポート番号 1234 のホストを指定することができます。
|
- PPC Toolbox はキーチェーンアクセスを利用して、安全な接続を自動的に行えるようになりました。これにより、バックグラウンドオンリーアプリケーションは安全な PPC Toolbox セッションを初期化し、Apple イベントを送信して認証を要求するマシン上で処理を行えるようになります。これまでは認証を行うためにユーザの操作が必要であったため、バックグラウンドオンリーアプリケーションが認証を必要とする安全な接続を確立することは不可能でした。Mac OS 9 では、PPC Toolbox ルーチンの
StartSecureSession(Apple Event Manager によっても使用されます)がキーチェーンアクセスとともに動作するため、任意のプロセスがユーザによる何らかの操作なしに1つまたは複数の安全なセッションをオープンすることが可能になります。
ターゲットマシンに対するエントリを含んだロックされていないキーチェーンが存在すると、ユーザによる何らかの操作なしに安全なセッションを確立することができます。そうではなく、ターゲットマシンに対するキーチェーンエントリが作成されていなかったり、エントリが存在してもそれを含むキーチェーンがロックされている場合は、ユーザによる操作エラーが発生したことを示すエラーが返されることになります。
|
|
QuickDraw
|
|
QuickDraw は Mac OS
の一部で、画面やその他のラスタデバイス上でグラフィカル情報の描画と表示を行うために使用されます。
|
- サイズの大きなカーソルのサポートが追加されました。今後、デベロッパはこれまでの 16×16 ピクセルのカーソルよりも大きなカーソルを作成できるようになります。また、割り込みレベルで更新されるアニメーションカラーカーソルを作成することも可能になります。新しいカーソル機能により、スクリーンバッファ内部でのカーソルのレンダリングを許可するハードウェアアクセラレーションや、ハードウェアレンダリングとソフトウェアレンダリングの切り替えが可能になります。このような新機能を利用するには、カーソルプラグインコンポーネントを作成する必要があります。詳細については、カーソルプラグインコンポーネントの SDK(準備中)を参照してください。
- 新しい 'add noise' および Color XOr 転送モードが追加されました。
- ビデオカードまたは AGP(Accelerated Graphics Port)上のラスタデータにメモリを割り当てることを NewGWorld に指示するフラグが追加されました。
- ユーザ定義の転送モードを追加する機能が使用できるようになりました。必要なオペレーションをインプリメントするコールバックプロシージャを提供することで、ユーザは新しい転送モードを指定できます。
- ランドスケーププリンティングに使用するラスタイメージを拡大または縮小するときに発生する可能性のあった、1 列のピクセルが印刷イメージに現れなくなるという問題が解決されました。
- LockPixels および SetCPixel ルーチンのパフォーマンスが向上しました。
- すべての QuickDraw 構造体に適用できるいくつかのアクセッサルーチンが追加されました。
|
|
互換性に関する注意
ソースコードの将来にわたる互換性を保証するため、今後は QuickDraw 構造体に直接アクセスする代わりに、新しいパブリックアクセッサを使用するようにしてください。
|
|
|
Sound Manager
|
|
Sound Manager はデジタルサウンドの再生と録音を行うための機能を提供します。
|
- 仮想メモリを“入”にしている一部の PowerBook のモデルでサウンドを再生するときにカチカチいう音が聞こえるという問題が解消されました。
- Sound Manager は再インプリメントされました。新しいインプリメンテーションにより、パフォーマンスと安定性が向上しています。
- 新しいインプリメンテーションでは、同時に複数のサウンド入力ソースをアクティブにすることはできません。
|
|
Standard File
|
|
Standard File は、“開く”および“保存”ダイアログボックスによってファイルにアクセスするための一貫したユーザインタフェースを提供します。
|
- Standard File は変更されていません。Standard File は Mac OS 9 のパッケージ機能に対応していないので、Standard File を利用するアプリケーションデベロッパは注意が必要です。
|
|
互換性に関する注意
Mac OS 9 パッケージは Standard File ダイアログでは正しく表示されません。Standard File によって表示されるダイアログでは、Mac OS 9 パッケージの内部までナビゲートできてしまいます。Navigation Services はパッケージの表示を正しく処理します。他の Mac OS 9 アプリケーションと一致したユーザインタフェースの開発に関心のあるデベロッパは、従来の Standard File に対する呼び出しを Navigation Services に対する呼び出しに置き換える必要があります。
|
|
|
StdCLib 3.5
|
|
StdCLib は、PowerPC ベースのすべての Mac OS
互換コンピュータ上の ROM
内に格納されている共有ライブラリで、C
言語を使ってコンパイルされたプログラムのための機能を提供します。StdCLib
はすべての PowerPC モデル上に存在しますが、System
7.6 アップデートより前は、StdCLibInit
というシステム機能拡張によって提供されていました。
|
- Command-"."(ピリオド)
による割り込みが発生するときにネイティブツールがクラッシュするというシグナル処理の問題が修正されました。
- ベクトルデータの16 バイト境界にメモリを割り当てる新しいメモリ割り当てルーチン、プロセッサの AltiVec ステートを保存または復元する
setjmp/longjmp バリアント、AltiVec データの読み書きに使用する新しい printf および scanf フォーマットサイズ指定子などの AltiVec に対するサポートが追加されました。ベクトルデータの 16 バイト境界に揃えられたメモリ割り当てをサポートするため、新しいエントリポイント vec_malloc、vec_calloc、vec_realloc、および vec_free が追加されました。
互換性に関する注意
Mac OS 9.0 に含まれている StdCLib 3.5 はベクターデータを printf 類の関数で処理する際にベクターデータのスタック上のアラインメントが正常に行われず、正しく出力されないことがあります。
|
- 標準 C ライブラリの文字列関数が PowerPC に最適化されました。
- ネイティブの 64 ビット
long 整数(long long 整数)に対するサポートが追加されました。このデータ型は、printf、scanf、atoll、および strtoll の各ルーチンでサポートされます。
- C ライブラリの
malloc
のインプリメンテーションが一新されました。これにより、パフォーマンスが向上し、1
回の呼び出しで 8 M
を超えるメモリを割り当てられるようになりました。また、サブアロケーションブロックを
Macintosh の Memory Manager
に返すためのよりインテリジェントな方式が導入され、メモリが不足してくると、新しい
malloc は空のサブアロケーションブロックを
Macintosh の Memory Manager に返すようになります。
- 新しく FSSpec I/O
ルーチンが追加されました。これらのルーチンにより、Macintosh
ファイル仕様レコードを標準 C ライブラリの I/O
ルーチンと組み合わせて使用することが可能になります。これらの新しいルーチンは
FSpio.h
ヘッダファイルの中で定義されています。提供されるルーチンには、
FSp_creat、FSp_access、FSp_fopen、FSp_freopen、FSp_fsetfileinfo、FSp_open、FSp_remove、FSp_rename、および
FSp_unlink
が含まれます。これらのルーチンは標準 C
ライブラリに含まれる対応するルーチンと同じ機能を果たしますが、ファイルを識別する文字列ではなく
FSpec ポインタを受けつける点のみが異なります。
- <time.h>
の関数が拡張またはバグフィックスされました。
tm_isdst
フィールドは、mktime および
localtime で正しくセットされます。%p
フォーマット指定子が strftime
でサポートされるようになりました。localtime
でのうるう年の計算が修正されました。gmtime
関数が完全にサポートされるようになりました。
fgets が Mac、DOS、および UNIX
ファイルに対応した行の末尾を正しく認識するようになりました。
- ファイルを識別するために C
形式のパス名を要求するすべての I/O 関数が 255
文字を超える名前を正しく処理できるようになりました。
memchr と strchr が 8
ビット文字を正しく処理できるようになりました。
strncat に含まれていた 2
つのバグがフィックスされました。第 1 のバグは n % 4
== 3 および n < strlen(s2)
のときに発生し、最後の文字が切り捨てられていました。また、第
2 のバグは n % 4 == 0 および n <=
strlen(s2) <= n + 3 のときに発生し、最後の 3
文字が切り捨てられていました
。
- いくつかのルーチンの PLstr
スイートが修正されました。特に、
PLstrchr、PLstrrchr、および
PLstrspn
の各関数にはバグがあり、ターゲット文字列の長さを超える 1
文字をスキャンしたり(PLstrchr、PLstrrchr)、文字セット指定子を超える
1 文字をスキャンしたりしていました(PLstrspn。)これらのバグはフィックスされました。また、len(SRC)
< n <= len(DST)
のときに、デスティネーション文字列に誤った処理を加える
PLstrncpy のバグもフィックスされました。
- 余分な(意味のない)文字が出力される原因となっていた
[S|U]Int64ToStr の off-by-one
エラーが修正されました。
scanf の二重の丸めが修正されました。
getenv
のパフォーマンスが向上しました。
|
|
Multilingual Text Editor 1.1
|
|
MultiLinual Text Editing(MLTE)は、Unicode テキストの書類を作成したり編集したりするための C 言語インタフェースを提供します。MLTE は多くの点で TextEdit に類似していますが、次のような独自の機能を多く持っています。
|
- Unicode テキストを描画するためのエンジン(ATSUI)
- 文書中へのオブジェクト(サウンド、絵、QuickTime ムービなど)の埋め込み
- 書類全体に適応するタブ
- テキストのフルジャスティフィケーション
- サイズが 32 K を超えるテキスト
- ドラッグ & ドロップ操作機能を標準で提供
- スクロールバー処理機能を標準で提供
- 印刷機能を標準で提供
- インライン入力機能を標準で提供
- 先進的な ATSUI フォント機能のサポート
- 複数の“取り消し”をサポート
|
|
Thread Manager
|
|
Thread Manager
はオペレーティングシステムの一部で、複数のアプリケーションプログラム内で使用するマルチプログラミングサービスを提供します。
|
GetDefaultThreadStackSize、GetSpecificFreeThreadCount、GetFreeThreadCount
の各ルーチンはこれまで、PowerPC
アプリケーションからプリエンプティブなスレッドタイプを使って呼び出されるときに
noErr
を返していました。これらのルーチンは、このような状況で本来のエラーコードを返すように修正されました。
- Thread Manager の
SetThreadReadyGivenTaskRef
ルーチンは、停止しているスレッドへの参照を指定するときに正しく動作するようになりました。この修正は、Thread
Manager の PowerPC バージョンに適用され、68K
バージョンにはインプリメントされていません。Thread
Manager
のこれまでのバージョンで、このルーチンは停止しているスレッドへの参照を使って呼び出されるときに正しい動作を行っていませんでした。
|
|
Unicode Text Utilities 1.1
|
|
Unicode Text Utilities は Unicode テキストを対象に動作する API のセットを提供します。これらの API は、Unicode テキストのソートと照合、単語の切れ目の検出、文字プロパティの確立などに必要なサービスを提供します。
|
- 新しい文字プロパティ API が追加されました。
- Unicode テキストの境界または切れ目を検出する API
が追加されました。
- UCKeyTranslate
ルーチンに関連するバグがフィックスされました。
|
|
UTC Utilities
|
|
UTC(Coordinated Universal Time)Utilities
はクロックチップにアクセスする機能と、日付をさまざまなフォーマットに変換する
API を提供します。
|
- 新しい 64 ビットルーチンが追加され、UTC
およびローカルタイムフォーマットの両方でシステムのクロックにアクセスすることが可能になりました。GetDateTime
の戻り値を新しいルーチンで使用できる値に変換するには、
GetDateTime
の戻り値を新しい time 構造体の low
seconds 値の中にコピーしてやるだけです(他のフィールドは適切な値を使って初期化する必要があります。)
- UTC(Coordinated Universal Time)
とローカルタイムの間で変換を行うための機能が追加されました。ただし今回のリリースでは、これらのルーチンは
1904 年から 2108 年の範囲の日付を対象に動作します。
- 新しいルーチンには小数点以下の秒数を計算する機能が用意されています。この小数点以下の値は
16 ビットの値として新しい time
構造体の中に格納され、
seconds = value /
0xFFFF と解釈されます。
|
|
Virtual Memory Manager
|
|
Virtual Memory Manager は Mac OS
に仮想メモリサービスを提供します。Virtual Memory
Manager には次の変更が加えられました。
|
- 非 DMA
ディスクドライバがページのデータにアクセスして、それをディスクに書き込むときにダーティページのクリーニングを行うと、“recently
used”とマーキングされてしまうという問題が修正されました。
- ボリュームの仮想メモリに関する情報を取得する
GetVolumeVirtualMemoryInfo という新しい API
はバッキングストレージのために使用します。この呼び出しは
Carbon ではサポートされません。
- 非常にまれに発生し、データの破損の原因となっていた
Virtual Memory Manager
のバグがフィックスされました。この問題は、非常に高速なストライプハードディスクアレイで、読み込み操作のストライプ境界がページの中央にある場合のみ発生していました。
|
|
|
コントロールパネル
|
| |
コントロールパネルはシステムのカスタム設定に使用するユーザインタフェースを提供します。
古いスタイルのコントロールパネルファイル(ファイルタイプが 'cdev')は独立した Process Manager パーティションの中で起動されるようになりました。デフォルトの設定で、このパーティションのサイズは 200K ですが、ID = -16474 を含む 'SIZE' リソースによって、このパーティションのサイズをカスタマイズすることもできます。このような 'SIZE' リソースが存在すると、“最小サイズ”と“推奨サイズ”を使用できるようになります。
コントロールパネルファイルに 'CODE' ID = 0 リソース(68K アプリ)が含まれているか、コントロールパネルファイルが“application”タイプとしてマーキングされたフラグメントディスクリプタを含む 'cfrg' リソースを持っている場合、Process Manager はコントロールパネルファイルをアプリケーションとして起動することを選択します。これらの条件を満たすコントロールパネルはシステムによって呼び出される 'cdev' リソースを持ちません。
Finder のパーティション内で実行する必要のある一部のコントロールパネルとの互換性を維持するため、Command および Control キーを押しながらコントロールパネルアイコンをダブルクリックして、Finder レイヤ内でコントロールパネルをオープンすることができます。ただしこの機能は 'cdev' リソースを含むコントロールパネルファイルでのみ動作します。この機能は互換性を維持する目的だけで Mac OS 9 に残されているため、次のシステムリビジョンで削除される可能性があります。
|
|
|
|
アピアランス
|
| |
“アピアランス”コントロールパネルは、グラフィカルユーザインタフェースの構成要素の外観を設定するためのユーザインタフェースを提供します。
|
- “アピアランス”コントロールパネルをオープンするたびに、システムヒープの予約領域内で大量のメモリがリークするという問題が解消されました。
|
|
|
ColorSync 3.0
|
| |
ColorSync は、パブリッシングソフトウェアが画面、プリンタ出力、および電子配信で繰り返し信頼性の高い、一貫したカラー表現を実現できるようにシステムレベルのカラー管理機能を提供します。
|
- 新しいコントロールパネルはこれまでよりも多くの設定オプションを提供し、ColorSync プロファイル(システム特性)とさまざまな機能を組み合わせて使用することが可能になりました。
- 設定に名前を付けられるようになり、ユーザはコントロールパネルの設定を保存または復元できるようになりました。
|
|
|
日付 & 時刻
|
| |
“日付 & 時刻”コントロールパネルは、システムクロックをセットし、日付と時刻両方の表示形式を設定するためのユーザインタフェースを提供します。
|
- デフォルトの設定で、日付は 2 桁ではなく 4 桁の年号を使って表示または入力されるようになりました。
|
|
|
File Exchange 3.0.2
|
| |
File Exchange は、ファイル名拡張子から Mac OS ファイルタイプへの自動的なマッピングを行うと同時に(たとえば、ファイル名拡張子の .TXT を Mac OS ファイルタイプの 'TEXT' にマップします)、Mac OS 以外のファイルシステムとして作成されたボリュームを Mac OS とともに使用するためのサービスを提供します。“File Exchange”コントロールパネルにより、ユーザはこの機能によって使用される設定を変更したり、新しいファイルマッピングを追加することができます。また、DOS の SCSI ディスクおよびドライブコンテナのマウントや、ファイル変換プリファレンスの設定を行うこともできます。
|
- PC フォーマットの 120MB SuperDisk ディスクに対するより適切なサポートが提供されました。
- File Exchange によってフォーマットされたボリュームに不正なボリュームサイズが割り当てられるという問題が修正されました。
- File Exchange によってマウントされたボリュームの電源がオフになったときに、File Exchange は File Manager に通知を行うようになりました(ただし、下層にあるディスクドライバが File Manager のセクションで説明した新しい
driverHardwareGoneErr エラーコードをサポートしている場合のみ。)
- これまで、PC Exchange がオンになっているときに、PC フォーマットのボリュームを Mac OS フォーマットに再フォーマットしようとすると発生していた問題が修正されました。
- 今後、DOS ディスクの名前を“”(空)に変更することは許可されなくなります。
- “File Exchange”コントロールパネルの“すぐにマウント”ボタンをクリックしたときにボリュームをマウンドできないと、適切な追加情報やフィードバックが表示されるようになりました。
- 新しい HDI ドライバ(バージョン 1.4.1)の機能をサポートできるようにアップデートされました。
|
|
|
ファイル共有
| | |