(57)【特許請求の範囲】
【請求項１】
他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置であって、
システム起動時に、汎用の機能を提供する汎用のソフトウェアを実行環境領域にロードし、所定のディレクトリにマウントする第１のロード手段と、
前記システム起動時に、前記他の装置固有の機能を提供する専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントする第２のロード手段と、
前記実行環境領域において、前記第１のロード手段によりロードされた前記汎用のソフトウェアに含まれるシステムロギング機能やユーザアカウント管理機能を含む共通機能に関する設定情報を含む第１の設定ファイルと、前記第２のロード手段によりロードされた前記専用のソフトウェアに含まれる前記共通機能に関する設定情報を含む第２の設定ファイルとを統合することにより、前記汎用のソフトウェアに含まれる前記共通機能に関する設定を、前記専用のソフトウェアの設定を用いて更新した、前記共通機能に関する設定情報を含む第３の設定ファイルを生成する統合手段と
を備える情報処理装置。
【請求項２】
前記汎用のソフトウェアおよび前記専用のソフトウェアを、前記実行環境領域とは異なる記憶領域に記憶する記憶手段をさらに備える
請求項１に記載の情報処理装置。
【請求項３】
前記記憶手段は、前記汎用のソフトウェアおよび前記専用のソフトウェアを、互いに異なる記憶領域に記憶する
請求項２に記載の情報処理装置。
【請求項４】
前記専用のソフトウェアの機能を有効にするか無効にするかを設定する設定情報を記憶する設定情報記憶手段をさらに備え、
前記第２のロード手段は、前記設定情報記憶手段に記憶されている前記設定情報において、前記機能が有効であると設定されている専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントする
請求項１に記載の情報処理装置。
【請求項５】
前記設定情報記憶手段により記憶されている前記設定情報の内容を更新する更新指示を取得する更新指示取得手段と、
前記更新指示取得手段により取得された前記更新指示に基づいて、前記設定情報の内容を更新する更新手段と
をさらに備える請求項４に記載の情報処理装置。
【請求項６】
前記設定情報は、前記機能が有効な前記専用ソフトウェアのリストを含む
請求項４に記載の情報処理装置。
【請求項７】
前記設定情報は、前記機能が有効な前記専用ソフトウェアの、起動処理毎の設定を示すテーブル情報を含む
請求項４に記載の情報処理装置。
【請求項８】
前記システム起動時に、前記第２のロード手段によりロードされてマウントされた前記専用のソフトウェアに含まれるコマンドを実行するコマンド実行手段をさらに備える
請求項１に記載の情報処理装置。
【請求項９】
他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置の情報処理方法であって、
システム起動時に、汎用の機能を提供する汎用のソフトウェアを実行環境領域にロードし、所定のディレクトリにマウントし、
前記システム起動時に、前記他の装置固有の機能を提供する専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントし、
前記実行環境領域において、ロードされた前記汎用のソフトウェアに含まれるシステムロギング機能やユーザアカウント管理機能を含む共通機能に関する設定情報を含む第１の設定ファイルと、ロードされた前記専用のソフトウェアに含まれる前記共通機能に関する設定情報を含む第２の設定ファイルとを統合することにより、前記汎用のソフトウェアに含まれる前記共通機能に関する設定を、前記専用のソフトウェアの設定を用いて更新した、前記共通機能に関する設定情報を含む第３の設定ファイルを生成する
ステップを含む情報処理方法
【請求項１０】
他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する処理をコンピュータに行わせるプログラムであって、
システム起動時に、汎用の機能を提供する汎用のソフトウェアを実行環境領域にロードし、所定のディレクトリにマウントし、
前記システム起動時に、前記他の装置固有の機能を提供する専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントし、
前記実行環境領域において、ロードされた前記汎用のソフトウェアに含まれるシステムロギング機能やユーザアカウント管理機能を含む共通機能に関する設定情報を含む第１の設定ファイルと、ロードされた前記専用のソフトウェアに含まれる前記共通機能に関する設定情報を含む第２の設定ファイルとを統合することにより、前記汎用のソフトウェアに含まれる前記共通機能に関する設定を、前記専用のソフトウェアの設定を用いて更新した、前記共通機能に関する設定情報を含む第３の設定ファイルを生成する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、より安全かつ容易に機能の追加、削除、および更新を行うことができるようにする情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、製品に組み込まれたソフトウェアを後から更新する方法として、イーサネット（登録商標）などのネットワークを介してファームウェアの転送を行い、転送されたファームウェアをフラッシュメモリやハードディスク等の記録媒体に記録するという方法がある（例えば、特許文献１参照）。
【０００３】
このような場合、ファームウェアの転送を行うプログラムと、ファームウェアを記録媒体に記録するプログラムは、予め（例えば、工場出荷時に）その製品に組み込まれている。
【０００４】
ところで、製品に組み込むソフトウェアの肥大化に伴い、ハードウェアだけでなくソフトウェアの共通化も行われ始めている。例えば、小型のCPU（Central Processing Unit）基板にさまざまな製品で共通利用されるソフトウェアを組み込んだ汎用のプラットフォーム（汎用のハードウェアおよびソフトウェアを含む構成）を共通開発し、これをさまざまな製品に組み込むことによって、各製品のハードウェアやソフトウェアの開発コストの低減や、開発期間の短縮を図る方法がある。
【０００５】
上述したようなソフトウェアを後から更新する方法（ソフトウェア更新機能）は、各装置において求められることであるので、このソフトウェア更新機能に関する開発コストの低減や開発期間の短縮を実現するために、上述した汎用のプラットフォームの共通ソフトウェアとして組み込まれることが望ましい。
【０００６】
つまり、汎用のプラットフォームが組み込まれる各製品は、一般的に製品固有の機能を有しており、ソフトウェア更新機能を汎用の機能として提供する汎用のプラットフォームは、このソフトウェア更新機能により、その製品固有の機能を実現するための製品固有のソフトウェアの追加、削除、および更新などの処理も行う。
【特許文献１】特開２００５−１１２０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、汎用のプラットフォームは、上述したソフトウェア更新機能やオペレーティングシステム等の共通機能を含むシステムソフトウェアも有しており、製品固有のソフトウェアの追加、削除、および更新などの処理を行う際に、その処理だけでなく、起動終了処理の変更、共通機能に関する設定の変更、共通機能のソフトウェアモジュールの差し替え等、共通機能を含むシステムソフトウェアも書き換えなければならず、製品固有のソフトウェアの更新を繰り返すことによってシステムソフトウェアが修復不能に陥ってしまう恐れがあった。また、製品固有のソフトウェアの更新作業中の事故によってシステムソフトウェア自体が起動不能になってしまう恐れもあった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、より安全かつ容易に機能の追加、削除、および更新を行うことができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面の情報処理装置は、他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置であって、システム起動時に、汎用の機能を提供する汎用のソフトウェアを実行環境領域にロードし、所定のディレクトリにマウントする第１のロード手段と、前記システム起動時に、前記他の装置固有の機能を提供する専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントする第２のロード手段と、前記実行環境領域において、前記第１のロード手段によりロードされた前記汎用のソフトウェアに含まれるシステムロギング機能やユーザアカウント管理機能を含む共通機能に関する設定情報を含む第１の設定ファイルと、前記第２のロード手段によりロードされた前記専用のソフトウェアに含まれる前記共通機能に関する設定情報を含む第２の設定ファイルとを統合することにより、前記汎用のソフトウェアに含まれる前記共通機能に関する設定を、前記専用のソフトウェアの設定を用いて更新した、前記共通機能に関する設定情報を含む第３の設定ファイルを生成する統合手段とを備える。
【００１０】
前記汎用のソフトウェアおよび前記専用のソフトウェアを、前記実行環境領域とは異なる記憶領域に記憶する記憶手段をさらに備えるようにすることができる。
【００１１】
前記記憶手段は、前記汎用のソフトウェアおよび前記専用のソフトウェアを、互いに異なる記憶領域に記憶するようにすることができる。
【００１２】
前記専用のソフトウェアの機能を有効にするか無効にするかを設定する設定情報を記憶する設定情報記憶手段をさらに備え、前記第２のロード手段は、前記設定情報記憶手段に記憶されている前記設定情報において、前記機能が有効であると設定されている専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントするようにすることができる。
【００１３】
前記設定情報記憶手段により記憶されている前記設定情報の内容を更新する更新指示を取得する更新指示取得手段と、前記更新指示取得手段により取得された前記更新指示に基づいて、前記設定情報の内容を更新する更新手段とをさらに備えるようにすることができる。
【００１４】
前記設定情報は、前記機能が有効な前記専用ソフトウェアのリストを含むようにすることができる。
【００１５】
前記設定情報は、前記機能が有効な前記専用ソフトウェアの、起動処理毎の設定を示すテーブル情報を含むようにすることができる。
【００１６】
前記システム起動時に、前記第２のロード手段によりロードされてマウントされた前記専用のソフトウェアに含まれるコマンドを実行するコマンド実行手段をさらに備えるようにすることができる。
【００１７】
本発明の一側面の情報処理方法は、他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する情報処理装置の情報処理方法であって、システム起動時に、汎用の機能を提供する汎用のソフトウェアを実行環境領域にロードし、所定のディレクトリにマウントし、前記システム起動時に、前記他の装置固有の機能を提供する専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントし、前記実行環境領域において、ロードされた前記汎用のソフトウェアに含まれるシステムロギング機能やユーザアカウント管理機能を含む共通機能に関する設定情報を含む第１の設定ファイルと、ロードされた前記専用のソフトウェアに含まれる前記共通機能に関する設定情報を含む第２の設定ファイルとを統合することにより、前記汎用のソフトウェアに含まれる前記共通機能に関する設定を、前記専用のソフトウェアの設定を用いて更新した、前記共通機能に関する設定情報を含む第３の設定ファイルを生成するステップを含む。
【００１８】
本発明の一側面のプログラムは、他の装置に組み込まれて使用され、組み込み先の前記他の装置に対して所定の機能を提供する処理をコンピュータに行わせるプログラムであって、システム起動時に、汎用の機能を提供する汎用のソフトウェアを実行環境領域にロードし、所定のディレクトリにマウントし、前記システム起動時に、前記他の装置固有の機能を提供する専用のソフトウェアを前記実行環境領域にロードし、所定のディレクトリにマウントし、前記実行環境領域において、ロードされた前記汎用のソフトウェアに含まれるシステムロギング機能やユーザアカウント管理機能を含む共通機能に関する設定情報を含む第１の設定ファイルと、ロードされた前記専用のソフトウェアに含まれる前記共通機能に関する設定情報を含む第２の設定ファイルとを統合することにより、前記汎用のソフトウェアに含まれる前記共通機能に関する設定を、前記専用のソフトウェアの設定を用いて更新した、前記共通機能に関する設定情報を含む第３の設定ファイルを生成するステップを含む。
【００１９】
本発明の一側面においては、システム起動時に、汎用の機能を提供する汎用のソフトウェアが実行環境領域にロードされて所定のディレクトリにマウントされ、また、システム起動時に、他の装置固有の機能を提供する専用のソフトウェアが実行環境領域にロードされて所定のディレクトリにマウントされ、実行環境領域において、ロードされた汎用のソフトウェアに含まれるシステムロギング機能やユーザアカウント管理機能を含む共通機能に関する設定情報を含む第１の設定ファイルと、ロードされた専用のソフトウェアに含まれる共通機能に関する設定情報を含む第２の設定ファイルとが統合されることにより、汎用のソフトウェアに含まれる共通機能に関する設定を、専用のソフトウェアの設定を用いて更新した、共通機能に関する設定情報を含む第３の設定ファイルが生成される。
【発明の効果】
【００２０】
本発明の一側面によれば、情報を処理することができる。特に、より安全かつ容易に機能の追加、削除、および更新を行うことができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態について図を参照して説明する。
【００３３】
図１は、本発明を適用した汎用プラットフォームの一実施形態に係る構成例を示す図である。
【００３４】
図１において、汎用プラットフォーム１は、何らかの製品に組み込まれて使用されるユニットであり、汎用のハードウェアおよびソフトウェアにより構成され、例えば、通信機能や制御機能等、所定の汎用の機能をその製品に提供するプラットフォームである。つまり、この汎用プラットフォーム１が組み込まれた製品は、互いに異なる装置であっても、同じ機能を有する。
【００３５】
図１に示されるように、汎用プラットフォーム１は、バス１０を介して互いに接続されるCPU（Central Processing Unit）１１、ROM（Read Only Memory）１２、RAM（Random Access Memory）１３、イーサネット（登録商標）I/F（InterFace）１４、およびフラッシュメモリ１５を有する。
【００３６】
バス１０は、例えばPCI（Peripheral Components Interconnec）等の所定の規格のバスであり、CPU１１、ROM１２、RAM１３、イーサネット（登録商標）I/F１４、およびフラッシュメモリ１５の間で授受される情報を伝送する。また、バス１０は、汎用プラットフォーム１の外部の構成（汎用プラットフォーム１が組み込まれた製品固有の構成）とも接続され、それらの製品固有の構成と、CPU１１、ROM１２、RAM１３、イーサネット（登録商標）I/F１４、およびフラッシュメモリ１５との間で授受される情報も伝送する。
【００３７】
CPU１１は、例えば、ROM１２やフラッシュメモリ１５に記憶され、RAM１３にロードされたプログラム等を実行することにより、各部の動作を制御する処理部である。ROM１２およびフラッシュメモリ１５は、例えばフラッシュメモリ等の不揮発性の書き換え可能な記憶媒体であり、プラットフォームとして構成され、製品共通の機能を提供する共通ソフトウェア（プログラムやデータ等）や、組み込み先の製品固有の機能を提供する専用ソフトウェアを記憶する。
【００３８】
RAM１３は、揮発性の半導体メモリにより構成される揮発性の記憶媒体である。例えば、RAM１３は、CPU１１に制御され、ROM１２またはフラッシュメモリ１５より読み出されたソフトウェア（プログラムやデータ等）を一時的に保持し、必要に応じてCPU１１等に保持している情報を提供する。イーサネット（登録商標）I/F１４は、例えばイーサネット（登録商標）やインターネット等のネットワークを介して外部の装置（汎用プラットフォーム１が組み込まれている製品とネットワークを介して接続される装置）と通信処理を行い、その外部の装置と情報の授受を行う。例えば、イーサネット（登録商標）I/F１４は、フラッシュメモリ１５に記憶されているソフトウェアの更新データを外部の装置より取得し、バス１０を介して、それをRAM１３に保持させる。CPU１１は、そのRAM１３に保持されている更新データを用いてROM１２に記録されているソフトウェアを更新する。
【００３９】
なお、この汎用プラットフォーム１は、物理的に１つのユニットとして構成されるようにしてもよいが、複数のユニットとして構成されるようにしてもよく、各部の関係が図１に示される構成と実質的に同等となるのであれば、物理的な構成はどのようなものであってもよい。また、汎用プラットフォーム１が提供する汎用な機能は１つだけでなく、複数であってももちろんよい。
【００４０】
この汎用プラットフォーム１が組み込まれる製品としては、例えば、AV機器、パーソナルコンピュータ、冷蔵庫、若しくは洗濯機等の各種家庭電化製品、放送設備や交通管理システム等を構成する装置、または、自動車や飛行機等に組み込まれる電子制御装置等、様々な電子機器が考えられる。つまり、電子回路により制御や処理を行うものであればどのようなものであってもよい。
【００４１】
この汎用プラットフォーム１の開発方法としては様々な場合が考えられるが、ここでは、本発明に関する説明に限定するために、便宜上、汎用プラットフォーム１の開発においては、組み込み先となる製品の構成や機能（特に製品特有の機能）を特定しないものとする。
【００４２】
つまり、汎用プラットフォーム１のROM１２は、組み込み先の製品固有の機能を実現するための専用のソフトウェアも記憶するが、汎用プラットフォーム１の開発時においては、ROM１２にそのようなソフトウェアを記憶する記憶領域を設けるだけで、そのようなソフトウェア自体は開発しないものとする（組み込み先製品固有の専用ソフトウェアはその製品の開発時に開発するものとする）。
【００４３】
汎用プラットフォーム１の組み込み先の製品の開発者は、その製品の開発時において、既に開発済みの汎用プラットフォーム１を用いることにより、その汎用の機能に関する開発を省略することができる。すなわち、製品の開発者は、汎用プラットフォーム１を製品に組み込むことにより、開発コストの低減や開発期間の短縮を実現する。
【００４４】
なお、汎用プラットフォーム１の開発者と、汎用プラットフォーム１を組み込む製品の開発者とが同一人物であってももちろんよいが、ここでは説明の便宜上、それらが互いに異なるものとして説明する。
【００４５】
このような汎用プラットフォーム１を組み込んだ製品の専用ソフトウェアは、その製品の出荷時にROM１２に記憶させておくようにしてもよいが、出荷後に図２に示されるようにネットワークを介して行うようにしてもよい。
【００４６】
図２において、汎用プラットフォーム１は、パーソナルコンピュータ２１とネットワーク２２を介して接続される画像処理装置２３に組み込まれている。つまり、汎用プラットフォーム１（イーサネット（登録商標）I/F１４）は、ネットワーク２２を介してパーソナルコンピュータ２１に接続されている。
【００４７】
この画像処理装置の固有の機能を実現するための専用ソフトウェア群は、パーソナルコンピュータ２１より、製品パッケージとしてまとめられ、ネットワーク２２を介して供給される。汎用プラットフォーム１は、このように供給される製品パッケージを取得し、その中に含まれる各専用ソフトウェアをインストールする。
【００４８】
また、例えば、機能の追加や変更に伴う専用ソフトウェアの追加や更新も、同様に、図２に示されるようにネットワークを介して行うようにしてもよい。
【００４９】
次に、汎用プラットフォーム１の記憶領域について説明する。図３は、ROM１２およびフラッシュメモリ１５の記憶領域の構成例を示す図である。
【００５０】
図３に示されるように、ROM１２には、システム起動時に最初に実行されるプログラムであるブートローダ３１が記憶されている。また、フラッシュメモリ１５の記憶領域は、Linux（商標）カーネル等のオペレーティングシステムが格納されるOS（Operating System）格納領域４１、Linuxルートファイルシステム等の製品に依存しない共通機能を含むシステムソフトウェアが格納されるシステムソフトウェア格納領域４２、製品パッケージの有効/無効を切り替える設定情報である製品パッケージ設定情報４３、および、製品固有機能のソフトウェアを含む製品パッケージを格納する製品パッケージ格納領域４４に分割されている。なお、OS格納領域４１およびシステムソフトウェア格納領域４２はROM１２の記憶領域に設けるようにしてもよい。
【００５１】
製品パッケージ格納領域４４は１つまたは複数の製品パッケージを格納することができる。各製品パッケージは複数のファイルを含むアーカイブファイル形式になっており、アーカイブファイルのファイル名は例えば”<パッケージ名>-<バージョン番号>.tar.gz”という形式をとる。製品パッケージ設定情報４３は、インストールされた製品パッケージのうち有効にするパッケージのリストを格納する。例えばパッケージＡのバージョン１．０とパッケージＢのバージョン１．２を有効にする場合、製品パッケージ設定情報４３は、「パッケージＡ−１．０  パッケージＢ−１．２」という空白区切りのリストを記憶する。
【００５２】
なお、図３は、製品パッケージをインストールする前の状態の汎用プラットフォーム１を示している。この状態において、ROM１２にはブートローダ３１がインストールされており、フラッシュメモリ１５にはオペレーティングシステムおよびシステムソフトウェアのみがインストールされている。また、製品パッケージ設定情報４３および製品パッケージ格納領域４４は、何も書き込まれていない空き領域となっている。
【００５３】
次に、この状態（製品パッケージがインストールされていない状態）において、汎用プラットフォーム１のシステムを起動する場合について説明する。
【００５４】
図３の状態において、汎用プラットフォーム１のシステムを起動すると、まずROM１２に格納されたブートローダ３１に実行の制御が移される。つまり、CPU１１は、ROM１２のブートローダ３１を読み出しRAM１３にロードして実行する。CPU１１に実行されたブートローダ３１は、オペレーティングシステムとシステムソフトウェアをフラッシュメモリ１５より読み出し、RAM１３にロード（コピー）する。
【００５５】
図４はRAM１３にロードされたシステムソフトウェアに含まれるファイル構成を示す図である。システムソフトウェアの中には、製品に依存しない共通機能の起動処理の手順を示す共通機能の起動処理手順５１、共通機能の終了処理の手順を示す共通機能の終了処理手順５２、共通機能のデバイスドライバ５３、共通機能のアプリケーション５４、および共通機能に関する設定ファイル５５などを含む。共通機能のアプリケーション５４は、例えばシステムロギング機能やユーザアカウント管理機能を実現するためのアプリケーション等を含む。また共通機能のデバイスドライバ５３は、例えば、汎用プラットフォーム１のフラッシュメモリ１５に記憶されるデータを読み出したり、フラッシュメモリ１５にデータを書き込んだりするために必要なドライバを含む。
【００５６】
また、共通機能の起動処理手順５１は、共通機能に関する設定ファイル５５の参照手順を示す共通機能設定ファイル参照手順６１、共通機能のデバイスドライバ５３のインストール手順を示す共通機能デバイスドライバインストール手順６２、および、共通機能アプリケーション５４の起動手順を示す共通機能アプリケーション起動手順６３を含む。
【００５７】
オペレーティングシステムとシステムソフトウェアをロードすると、ブートローダ３１は、そのRAM１３に保持されるオペレーティングシステムに実行の制御を移す。つまり、CPU１１は、ブートローダ３１の実行を終了し、オペレーティングシステムの実行を開始する。
【００５８】
CPU１１に実行されるオペレーティングシステムは、自身の初期化処理を終えた後、システムソフトウェアに含まれる共通機能の起動処理手順５１を参照しながらシステム全体の起動処理を開始する。つまり、オペレーティングシステムは、共通機能の起動処理手順５１に起動処理に関する実行の制御を移す。
【００５９】
オペレーティングシステムを介してCPU１１に実行される共通機能の起動処理手順５１は、共通機能設定ファイル参照手順６１に基づいて共通機能に関する設定ファイル５５を参照し、共通機能デバイスドライバインストール手順６２に基づいて共通機能のデバイスドライバ５３のインストールを行い、共通機能アプリケーション起動手順６３に基づいて共通機能のアプリケーション５４を起動することによって、共通機能をシステム上で有効にする。
【００６０】
このときのCPU１１がソフトウェアを実行することにより有する機能を示す機能ブロックの構成例を図５に示す。
【００６１】
図５において、CPU１１は、機能ブロックとして、OSロード処理部７１、システムソフトウェアロード処理部７２、OS初期化処理部７３、共通機能設定ファイル参照部７４、共通機能デバイスドライバインストール部７５、および共通機能アプリケーション起動処理部７６を有する。
【００６２】
OSロード処理部７１は、CPU１１がブートローダ３１を実行することにより得られる機能を示す機能ブロックである。OSロード処理部７１は、フラッシュメモリ１５のOS格納領域４１に格納されているオペレーティングシステムを読み出し、それをRAM１３にロードする。オペレーティングシステムのロードが終了するとOSロード処理部７１は、処理をシステムソフトウェアロード処理部７２に渡す。
【００６３】
システムソフトウェアロード処理部７２は、CPU１１がブートローダ３１を実行することにより得られる機能を示す機能ブロックである。システムソフトウェアロード処理部７２は、フラッシュメモリ１５のシステムソフトウェア格納領域４２に格納されているシステムソフトウェアを読み出し、それをRAM１３にロードする。システムソフトウェアのロードが終了するとシステムソフトウェアロード処理部７２は、処理をOS初期化処理部７３に渡す。
【００６４】
OS初期化処理部７３は、CPU１１がRAM１３にロードされたオペレーティングシステムを実行することにより得られる機能を示す機能ブロックである。OS初期化処理部７３は、RAM１３にロードされたオペレーティングシステムを初期化して、システムソフトウェアの各ファイルを、例えば図４に示されるように、ファイルシステムの所定のディレクトリにマウントする。初期化が終了するとOS初期化処理部７３は、処理を共通機能設定ファイル参照部７４に渡す。
【００６５】
共通機能設定ファイル参照部７４は、CPU１１がシステムソフトウェアの共通機能の起動処理手順５１に含まれる共通機能設定ファイル参照手順６１を実行することにより得られる機能を示す機能ブロックである。共通機能設定ファイル参照部７４は、共通機能設定ファイル参照手順６１に示される手順に従って、システムソフトウェアの共通機能に関する設定ファイル５５を参照する。共通機能に関する設定ファイル５５を参照すると共通機能設定ファイル参照部７４は、処理を共通機能デバイスドライバインストール部７５に渡す。
【００６６】
共通機能デバイスドライバインストール部７５は、CPU１１がシステムソフトウェアの共通機能の起動処理手順５１に含まれる共通機能デバイスドライバインストール手順６２を実行することにより得られる機能を示す機能ブロックである。共通機能デバイスドライバインストール部７５は、共通機能デバイスドライバインストール手順６２に示される手順に従って、システムソフトウェアの共通機能のデバイスドライバ５３をインストールする。共通機能のデバイスドライバ５３をインストールすると共通機能デバイスドライバインストール部７５は、処理を共通機能アプリケーション起動処理部７６に渡す。
【００６７】
共通機能アプリケーション起動処理部７６は、CPU１１がシステムソフトウェアの共通機能の起動処理手順５１に含まれる共通機能アプリケーション起動手順６３を実行することにより得られる機能を示す機能ブロックである。共通機能アプリケーション起動処理部７６は、共通機能アプリケーション起動手順６３に示される手順に従って、システムソフトウェアの共通機能のアプリケーション５４を起動する。
【００６８】
CPU１１は、各ソフトウェアを実行することにより、上述したような機能ブロックを実現する。なお、図５に示されるような各機能ブロックの一部または全部をハードウェアにより実現するようにしてももちろん良い。
【００６９】
次に、このような構成のCPU１１により実行されるシステム起動処理の流れの例を、図６のフローチャートを参照して説明する。
【００７０】
システム起動処理が開始されると、OSロード処理部７１は、ステップＳ１において、オペレーティングシステム（OS）をフラッシュメモリ１５より読み出し、RAM１３にロードする。システムソフトウェアロード処理部７２は、ステップＳ２において、システムソフトウェアをフラッシュメモリ１５より読み出し、RAM１３にロードする。OS初期化処理部７３は、ステップＳ３において、RAM１３にロードされたオペレーティングシステム（OS）を初期化する。共通機能設定ファイル参照部７４は、ステップＳ４において、RAM１３にロードされたシステムソフトウェアの共通機能に関する設定ファイル５５を参照する。共通機能デバイスドライバインストール部７５は、ステップＳ５において、共通機能に関する設定ファイル５５に含まれる共通機能設定に基づいて、共通機能のデバイスドライバ５３をインストールする。共通機能アプリケーション起動処理部７６は、ステップＳ６において、共通機能に関する設定ファイル５５に含まれる共通機能設定に基づいて、共通機能のアプリケーション５４を起動する。共通機能のアプリケーション５４の起動が終了すると、システム起動処理が終了される。
【００７１】
以上のように予め用意された手順（共通機能設定ファイル参照手順６１、共通機能デバイスドライバインストール手順６２、および共通機能アプリケーション起動手順６３）に従って、システムを起動するので、CPU１１は、ユーザからの指示無しに、フラッシュメモリ１５に格納されるオペレーティングシステムやシステムソフトウェアをRAM１３にロードし、システムを正しく起動させることができる。
【００７２】
また、一般的に、汎用プラットフォーム１は、様々な製品に組み込まれることが想定されるので、例えば組み込み先の製品の製造コストを低減させるためにも、その構成は必要最小限であることが望ましい。CPU１１が、上述したように予め用意された手順に基づいて起動処理を行うことにより、汎用プラットフォーム１は、キーボードやディスプレイ等の、ユーザによる操作を受け付けるための構成が不要になるので、ソフトウェア追加や更新のための構成の増加を抑制することができる。
【００７３】
なお、システムソフトウェアに含まれる共通機能の中には、ソフトウェアを外部からダウンロード可能にするためのネットワーク機能、およびダウンロードしたソフトウェアを汎用プラットフォーム１にインストールするためのソフトウェア更新機能が含まれている。
【００７４】
つまり、例えば、図７に示されるように、RAM１３にロードされた共通機能のアプリケーション５４は、ネットワーク機能制御プログラム８１とインストールプログラム８２を有している。
【００７５】
ネットワーク機能制御プログラム８１は、イーサネット（登録商標）I/F１４を制御するためのプログラムである。CPU１１は、ネットワーク機能制御プログラム８１を実行することにより、例えば、イーサネット（登録商標）I/F１４を介した製品パッケージの取得に関する処理を行う。インストールプログラム８２は、ソフトウェアをインストールするためのプログラムである。CPU１１は、インストールプログラム８２を実行することにより、例えば、イーサネット（登録商標）I/F１４を介して取得された製品パッケージをフラッシュメモリ１５の製品パッケージ格納領域４４にインストールする等、製品パッケージのインストールに関する処理を行う。
【００７６】
このようなプログラムを実行することにより得られるCPU１１の機能ブロックの構成例を図８に示す。
【００７７】
図８において、CPU１１は、製品パッケージ取得部９１、製品パッケージインストール部９２、および設定情報更新部９３を有する。
【００７８】
製品パッケージ取得部９１は、CPU１１がネットワーク機能制御プログラム８１を実行することにより得られる機能を示す機能ブロックである。製品パッケージ取得部９１は、製品パッケージの取得に関する制御処理を行う。例えば、製品パッケージ取得部９１は、イーサネット（登録商標）I/F１４を制御して、パーソナルコンピュータ２１よりネットワーク２２を介して供給される製品パッケージを取得し、それをRAM１３に保持させる。RAM１３が製品パッケージを保持すると製品パッケージ取得部９１は、処理を製品パッケージインストール部９２に渡す。
【００７９】
製品パッケージインストール部９２は、CPU１１がインストールプログラム８２を実行することにより得られる機能を示す機能ブロックである。製品パッケージインストール部９２は、製品パッケージのインストールに関する制御処理を行う。例えば、製品パッケージインストール部９２は、製品パッケージ取得部９１が取得し、RAM１３に保持されている製品パッケージを、フラッシュメモリ４４の製品パッケージ格納領域４４にインストールする。製品パッケージをインストールすると製品パッケージインストール部９２は、処理を設定情報更新部に渡す。
【００８０】
設定情報更新部９３は、CPU１１がインストールプログラム８２を実行することにより得られる機能を示す機能ブロックである。設定情報更新部９３は、製品パッケージのインストールに伴う製品パッケージ設定情報４３の更新処理を行う。例えば、設定情報更新部９３は、インストールした製品パッケージを次回のシステム起動時より有効になる（インストールした製品パッケージが起動される）ように設定するために、製品パッケージ設定情報４３に格納されるリストにインストールした製品パッケージの情報を反映させる（追加または上書きする）。
【００８１】
図９は、設定情報更新部９３による、製品パッケージ設定情報４３が格納するリストの更新の様子を説明する図である。
【００８２】
例えば、製品パッケージ設定情報４３が、図９の上に示されるようなリスト１０１−１を記憶しているとする。リスト１０１−１の各要素は、製品パッケージのアーカイブファイル名に基づいた「<パッケージ名>-<バージョン番号>」の情報により構成される。例えば、リスト１０１−１は、「pkgA-1.0」と「pkgB-1.0」の２つの要素により構成される。つまり、このリスト１０１−１は、パッケージ名が「pkgA」でバージョン番号が「1.0」の製品パッケージと、パッケージ名が「pkgB」でバージョン番号が「1.0」の製品パッケージが有効である（起動される）ことを示している。
【００８３】
この状態において、パッケージ名が「pkgC」でバージョン番号が「2.0」の製品パッケージがインストールされると、設定情報更新部９３は、この製品パッケージを示す情報１０２をリスト１０１−１に追加する。情報１０２の内容は「pkgC-2.0」である。この情報１０２をリスト１０１−１に追加したものがリスト１０１−２である。このとき、パッケージ名が「pkgC」の要素がリスト１０１−１に存在しないので、情報１０２は、新たな要素として、リスト１０１−２の最後の要素の後に追加される。つまり、リスト１０１−２では要素の数が３つになっている。
【００８４】
さらに、この状態において、パッケージ名が「pkgB」でバージョン番号が「1.2」の製品パッケージがインストールされると、設定情報更新部９３は、この製品パッケージを示す情報１０３をリスト１０１−２に追加する。情報１０３の内容は「pkgB-1.2」である。この情報１０３をリスト１０１−２に追加したものがリスト１０１−３である。このとき、パッケージ名が「pkgB」の要素がリスト１０１−２の２番目の要素として存在し、かつ、その要素のバージョン番号「1.0」が情報１０３に含まれるバージョン番号「1.2」と異なるので、情報１０３は、その２番目の要素に上書きされる。つまり、リスト１０１−３では２番目の要素の値が「pkgB-1.2」に更新され、要素の数は３つのままである。
【００８５】
つまり、設定情報更新部９３は、インストールされた製品パッケージのパッケージ名やバージョン番号に基づいて製品パッケージ設定情報４３に格納されるリストを更新し、インストールされた製品パッケージの設定を有効にし、かつ、バージョンが異なるだけの互いに同じ製品パッケージ（パッケージ名が重複する複数の製品パッケージ）を同時に有効にしないようにする。
【００８６】
なお、このとき、設定情報更新部９３が、パッケージ名が重複する新旧の製品パッケージのバージョン番号を比較し、例えば、最新のバージョンの製品パッケージを優先的に有効にしたり、バージョンが最も古い製品パッケージを優先的に有効にしたりするようにしてもよい。
【００８７】
CPU１１は、各ソフトウェアを実行することにより、上述したような機能ブロックを実現する。なお、図８に示されるような各機能ブロックの一部または全部をハードウェアにより実現するようにしてももちろん良い。
【００８８】
次に、図８のCPU１１による製品パッケージインストール処理の流れの例を図１０のフローチャートを参照して説明する。
【００８９】
製品パッケージ取得部９１は、ステップＳ２１において、イーサネット（登録商標）I/F１４を制御し、パーソナルコンピュータ２１より供給される製品パッケージを取得し、ステップＳ２２において、それをRAM１３に展開して保持させる。ステップＳ２３において、製品パッケージインストール部９２は、そのRAM１３に保持されている製品パッケージをフラッシュメモリ１５の製品パッケージ格納領域４４にインストールする。製品パッケージがインストールされると、設定情報更新部９３は、ステップＳ２４において製品パッケージ設定情報４３に格納される情報を更新し、製品パッケージインストール処理を終了する。
【００９０】
次に、図１１のフローチャートを参照して、図１０のステップＳ２４において実行される設定情報更新処理の詳細な流れの例を説明する。
【００９１】
設定情報更新処理を開始した設定情報更新部９３は、ステップＳ４１において、製品パッケージインストール部９２がインストールした製品パッケージと同じパッケージ名の要素がリストに存在するか否かを判定し、存在しないと判定した場合、処理をステップＳ４２に進め、リストの最後尾に、製品パッケージインストール部９２がインストールした製品パッケージを示す要素（製品パッケージインストール部９２がインストールした製品パッケージの製品パッケージ名およびバージョン情報からなる要素）を追加する。ステップＳ４２の処理を終了すると、設定情報更新部９３は、設定情報更新処理を終了して図１０のステップＳ２４に処理を戻し、製品パッケージインストール処理を終了する。
【００９２】
また、図１１のステップＳ４１において、製品パッケージインストール部９２がインストールした製品パッケージと同じパッケージ名の要素がリストに存在すると判定した場合、設定情報更新部９３は、ステップＳ４３に処理を進める。ステップＳ４３において、設定情報更新部９３は、製品パッケージインストール部９２がインストールした製品パッケージと同じパッケージ名の要素のバージョン番号は、製品パッケージインストール部９２がインストールした製品パッケージのバージョン番号と一致するか否かを判定する。
【００９３】
製品パッケージインストール部９２がインストールした製品パッケージと、パッケージ名およびバージョン番号がともに同じである要素が存在すると判定した場合、設定情報更新部９３は、設定情報更新処理を終了して図１０のステップＳ２４に処理を戻し、製品パッケージインストール処理を終了する。
【００９４】
また、製品パッケージインストール部９２がインストールした製品パッケージとパッケージ名が一致する要素は存在するが、バージョン番号も同時に一致する要素は存在しないと判定した場合、設定情報更新部９３は、処理をステップＳ４４に進め、その製品パッケージ名が一致する要素のバージョン番号を、インストールした製品パッケージのバージョン番号に変更する。ステップＳ４４の処理を終了すると、設定情報更新部９３は、設定情報更新処理を終了して図１０のステップＳ２４に処理を戻し、製品パッケージインストール処理を終了する。
【００９５】
以上のように、CPU１１は、製品パッケージを外部の装置より取得し、フラッシュメモリ１５の製品パッケージ格納領域４４にインストールするだけでなく、そのインストールに伴って、製品パッケージ設定情報のリストを更新するので、ユーザからの指示無しに、インストールした製品パッケージを、次回のシステム起動時より有効になるよう設定することができる。つまり、汎用プラットフォーム１は、モニタやキーボード等のユーザインタフェースを有していなくても、外部より供給される製品パッケージを適切にインストールすることができる。すなわち、ユーザは、製品パッケージをインストールするためにノート型パーソナルコンピュータを汎用プラットフォーム１に接続し、そのノート型パーソナルコンピュータから汎用プラットフォーム１による製品パッケージのインストール処理を制御するなど、煩雑な作業を必要とせずに、容易に、製品パッケージを適切にインストールすることができる。
【００９６】
また、以上のようにすることにより、汎用プラットフォーム１は、製品パッケージのインストールのためだけに必要な構成を有する必要がないので、製品パッケージのインストールに伴う構成の増大を抑制することができ、汎用プラットフォーム１の製造や開発等のコストだけでなく、汎用プラットフォーム１の組み込み先の製品の製造や開発等のコストの増大も抑制することができる。
【００９７】
以上のようにして製品パッケージのインストール処理が行われると、図３において空き領域であった製品パッケージ設定情報４３と製品パッケージ格納領域４４が、図１２に示されるように空き領域で無くなる。つまり、図１２に示される状態においては、製品パッケージ格納領域４４には、図示せぬ製品パッケージが格納され、製品パッケージ設定情報４３には、その製品パッケージ格納領域４４に格納される製品パッケージのうち、有効な製品パッケージのリストが格納される。
【００９８】
次に、以上のように製品パッケージをインストールした状態、すなわち、図１２に示される状態において汎用プラットフォーム１のシステムを起動する場合について説明する。この場合、システムソフトウェアと製品パッケージの両方が、RAM１３にロードされ、実行環境領域で再構築される。つまり、このように再構築されることでその共通機能および製品固有機能は有効に設定される。
【００９９】
図１２の状態において、汎用プラットフォーム１のシステムが起動されると、図３の状態からシステムが起動される場合と同様に、まずROM１２に格納されたブートローダ３１に実行の制御が移される。つまり、CPU１１は、ROM１２のブートローダ３１を読み出しRAM１３にロードして実行する。CPU１１に実行されたブートローダ３１は、オペレーティングシステムとシステムソフトウェアをフラッシュメモリ１５より読み出し、RAM１３にロード（コピー）する。そしてブートローダ３１は、オペレーティングシステムに処理を渡す。オペレーティングシステムは、初期化を開始し、システムソフトウェアをマウントして共通機能の設定ファイルを参照する。ここまでは、上述した、製品パッケージをインストールする前の状態のシステム起動と同様である。
【０１００】
図１３はRAM１３にロードされたシステムソフトウェアに含まれるファイル構成、並びに、RAM１３にロードされた製品パッケージに含まれるファイル構成を示す図である。システムソフトウェアの中には、図４に示される例と同様に、共通機能の起動処理手順５１乃至共通機能に関する設定ファイル５５含む。
【０１０１】
ただし、この場合、共通機能の起動処理手順５１は、図４に示される例の構成の他に、製品パッケージマウント手順１１１および共通機能設定ファイルマージ手順１１２を含む。
【０１０２】
製品パッケージマウント手順１１１は、フラッシュメモリ１５の製品パッケージ格納領域４４に格納される製品パッケージをマウントする手順を示す情報である。共通機能設定ファイルマージ手順１１２は、製品パッケージをマウントすることにより必要になる、共通機能に関する設定ファイル５５の情報と、製品パッケージが有する共通機能に関する設定ファイル１２５（後述する）の情報とのマージ（統合）手順を示す情報である。
【０１０３】
また、製品パッケージマウント手順１１１に従って製品パッケージがマウントされると、図１３に示されるRAM１３内に構築されるディレクトリ構造に「製品パッケージ名」のディレクトリが構築され、そのディレクトリ下に、製品パッケージの各ファイルがマウントされる。
【０１０４】
図１３に示されるように、この製品パッケージのファイルには、製品固有の起動処理手順１２１、製品固有の終了処理手順１２２、製品固有のデバイスドライバ１２３、製品固有のアプリケーション１２４、および共通機能に関する設定ファイル１２５が含まれる。
【０１０５】
製品固有の起動処理手順１２１は、製品固有の機能の起動処理の手順を示し、製品固有の終了処理手順１２２は、製品固有の機能の終了処理の手順を示している。製品固有のデバイスドライバ１２３、および製品固有のアプリケーション１２４は、それぞれ、製品固有の機能を与えるための製品固有のデバイスドラバおよびアプリケーションである。また、共通機能に関する設定ファイル１２５は、製品パッケージをインストールした場合に必要な、共通機能に関する設定ファイル５５の更新部分を示す情報である。つまり、共通機能に関する設定ファイル１２５は、共通機能に関する設定ファイル５５の設定情報に製品パッケージの存在を反映させたものである。
【０１０６】
また、製品固有の起動処理手順１２１は、第１製品固有起動処理手順１３１および第２製品固有起動処理手順１３２を有している。
【０１０７】
第１製品固有起動処理手順１３１は、共通機能のアプリケーションの起動前に必要な起動処理の手順を示す情報である。例えば、共通機能であるログ機能のログ保存先が製品固有のデバイスである場合、ログ機能を起動する前に、製品固有デバイスドライバのインストール処理、および製品固有のマウント処理が必要になる。第１製品固有起動処理手順１３１は、このような処理の手順を示す。
【０１０８】
第２製品固有起動処理手順１３２は、共通機能のアプリケーション５４の起動後に起動する必要のある処理の起動手順を示す情報である。例えば、共通機能であるログ機能を使用してログをとるアプリケーションの起動は、ログ機能を起動した後に行う必要がある。第２製品固有起動処理手順１３２は、このような処理の手順を示す。
【０１０９】
このように、製品固有の起動処理手順１２１は、製品固有の起動処理の手順を、共通機能のアプリケーション５４の起動手順を示す共通機能アプリケーション起動手順６３に応じて、例えば第１製品固有起動処理手順１３１と第２製品固有起動処理手順１３２のように、複数ファイルに分割して有する。これにより、製品固有の起動処理手順１２１は、より適切な起動処理手順を示すことができる。つまり、CPU１１は、より適切にアプリケーションの起動処理を行うことができる。
【０１１０】
この場合のCPU１１が有する機能を示す機能ブロックの構成例を図１４に示す。
【０１１１】
図１４において、CPU１１は、機能ブロックとして、図５の場合と同様の構成である、OSロード処理部７１乃至共通機能アプリケーション起動処理部７６の他に、さらに、製品パッケージロード処理部１４１、共通機能設定マージ処理部１４２、第１製品固有起動処理手順実行部１４３、および第２製品固有起動処理手順実行部１４４を有している。
【０１１２】
OS初期化処理部７３は、処理を終了すると、その処理を製品パッケージロード処理部１４１に渡す。
【０１１３】
製品パッケージロード処理部１４１は、CPU１１が製品パッケージマウント手順１１１を実行することにより得られる機能を示す機能ブロックである。製品パッケージロード処理部１４１は、フラッシュメモリ１５の製品パッケージ格納領域４４に格納されている製品格納パッケージを読み出し、それをRAM１３にロードし、オペレーティングシステムが管理するファイルシステムにおけるディレクトリ構造の所定の位置にマウントする。製品パッケージのロードが終了すると製品パッケージロード処理部１４１は、処理を共通機能設定マージ処理部１４２に渡す。
【０１１４】
共通機能設定マージ処理部１４２は、CPU１１が共通機能設定ファイルマージ手順１１２を実行することにより得られる機能を示す機能ブロックである。共通機能設定マージ処理部１４２は、有効な製品パッケージ（マウントした製品パッケージ）に含まれる共通機能に関する設定ファイル１２５を、システムソフトウェアに元々存在していた共通機能に関する設定ファイル５５に統合（例えば、上書きコピー、ファイルの連結、または、記述の行単位での統合（マージ）等）する。この共通機能に関する設定ファイル１２５は、例えば共通機能であるシステムロギング機能に関する設定ファイル(syslog.conf)やユーザアカウント管理機能に関する設定ファイル(passwd)等を含む。この処理によって、システムソフトウェアの持つ共通機能に関する設定を製品固有の設定にカスタマイズすることが可能になる。共通機能に関する設定ファイルのマージが終了すると共通機能設定マージ処理部１４２は、処理を共通機能設定ファイル参照部７４に渡す。共通機能設定ファイル参照部７４は、共通機能設定ファイルを参照し、処理を共通機能デバイスドライバインストール部７５に渡す。
【０１１５】
共通機能デバイスドライバインストール部７５は、処理を終了すると、その処理を第１製品固有起動処理手順実行部１４３に渡す。
【０１１６】
第１製品固有起動処理手順実行部１４３は、CPU１１が第１製品固有起動処理手順１３１を実行することにより得られる機能を示す機能ブロックである。第１製品固有起動処理手順実行部１４３は、共通機能のアプリケーションの起動前に必要な、製品固有の機能に関する起動処理を実行する。製品固有の機能に関する起動処理が終了すると第１製品固有起動処理手順実行部１４３は、処理を共通機能アプリケーション起動処理部７６に渡す。
【０１１７】
共通機能アプリケーション起動処理部７６は、処理を終了すると、その処理を第２製品固有起動処理手順実行部１４４に渡す。
【０１１８】
第２製品固有起動処理手順実行部１４４は、CPU１１が第２製品固有起動処理手順１３２を実行することにより得られる機能を示す機能ブロックである。第２製品固有起動処理手順実行部１４４は、共通機能のアプリケーション５４の起動後に起動する必要のある、製品固有の機能に関する起動処理を実行する。
【０１１９】
CPU１１は、各ソフトウェアを実行することにより、上述したような機能ブロックを実現する。なお、図１４に示されるような各機能ブロックの一部または全部をハードウェアにより実現するようにしてももちろん良い。
【０１２０】
次に、このような構成のCPU１１により実行されるシステム起動処理の流れの例を、図１５および図１６のフローチャートを参照して説明する。
【０１２１】
システム起動処理が開始されると、OSロード処理部７１乃至OS初期化処理部７３は、それぞれ、図１５のステップＳ６１乃至ステップＳ６３の処理を、図６のステップＳ１乃至ステップＳ３の場合と同様に実行する。
【０１２２】
ステップＳ６３の処理を終了すると、共通機能設定ファイル参照部７４は、処理をステップＳ６４に進める。ステップＳ６４において、製品パッケージロード処理部１４１は、未処理の有効な製品パッケージが存在するか否かを判定する。つまり、製品パッケージロード処理部１４１は、「有効」に設定されている製品パッケージ（製品パッケージ設定情報４３に格納されるリストにその情報が登録されている製品パッケージ）で、未だRAM１３にロードしていない製品パッケージが存在するか否かを判定する。
【０１２３】
未処理の有効な製品パッケージが存在すると判定した場合、製品パッケージロード処理部１４１は、ステップＳ６５に処理を進め、その製品パッケージをRAM１３にロードし、ディレクトリ構造において所定の位置にマウントする。ステップＳ６５の処理を終了すると、製品パッケージロード処理部１４１は、処理をステップＳ６４に戻し、それ以降の処理を繰り返す。すなわち、製品パッケージロード処理部１４１は、未処理の有効な製品パッケージが存在しないと判定するまで（全ての有効な製品パッケージをRAM１３にロードさせるまで）、ステップＳ６４およびステップＳ６５の処理を繰り返す。
【０１２４】
ステップＳ６４において、未処理の有効な製品パッケージが存在しないと判定した場合、製品パッケージロード処理部１４１は、処理をステップＳ６６に進める。
【０１２５】
ステップＳ６６において、共通機能設定マージ処理部１４２は、未処理の有効な製品パッケージが存在するか否かを判定する。つまり、共通機能設定マージ処理部１４２は、「有効」に設定されている製品パッケージ（ステップＳ６５においてRAM１３にロードされた製品パッケージ）で、未だ共通機能に関する設定ファイル１２５を、システムファイルの共通機能に関する設定ファイル５５とマージしていない製品パッケージが存在するか否かを判定する。
【０１２６】
未処理の有効な製品パッケージが存在すると判定した場合、共通機能設定マージ処理部１４２は、ステップＳ６７に処理を進め、その製品パッケージの共通機能に関する設定ファイル１２５を、システムファイルの共通機能に関する設定ファイル５５とマージさせる。ステップＳ６７の処理を終了すると、共通機能設定マージ処理部１４２は、処理をステップＳ６６に戻し、それ以降の処理を繰り返す。すなわち、共通機能設定マージ処理部１４２は、未処理の有効な製品パッケージが存在しないと判定するまで（全ての有効な製品パッケージの共通機能に関する設定ファイル１２５をシステムファイルの共通機能に関する設定ファイル５５とマージさせるまで）、ステップＳ６６およびステップＳ６７の処理を繰り返す。
【０１２７】
ステップＳ６６において、未処理の有効な製品パッケージが存在しないと判定した場合、共通機能設定マージ処理部１４２は、ステップＳ６８に処理を進める。ステップＳ６８において、共通機能設定ファイル参照部７４は、ステップＳ６７の処理によりマージされた共通機能設定ファイルを参照する。共通機能設定ファイルを参照すると、共通機能設定ファイル参照部７４は、処理を図１６のステップＳ７１に進める。
【０１２８】
図１６のステップＳ７１において、共通機能デバイスドライバインストール処理部７５は、図６のステップＳ５と同様に処理を行い、共通機能設定に基づいて、共通機能のデバイスドライバ５３をインストールする。ステップＳ６５の処理を終了すると、共通機能デバイスドライバインストール処理部７５は、処理をステップＳ７２に進める。
【０１２９】
ステップＳ７２において、第１製品固有起動処理手順実行部１４３は、未処理の有効な製品パッケージが存在するか否かを判定する。つまり、第１製品固有起動処理手順実行部１４３は、「有効」に設定されている製品パッケージ（図１５のステップＳ６６においてRAM１３にロードされた製品パッケージ）で、未だ、共通機能のアプリケーション５４よりも先にインストールする必要がある製品固有のデバイスドライバ１２３をインストールしていない製品パッケージや、共通機能のアプリケーション５４よりも先に起動する必要がある製品固有のアプリケーション１２４を起動していない製品パッケージが存在するか否かを判定する。
【０１３０】
未処理の有効な製品パッケージが存在すると判定した場合、第１製品固有起動処理手順実行部１４３は、ステップＳ７３に処理を進め、第１製品固有起動処理手順１３１を実行し、その製品パッケージの製品固有のデバイスドライバ１２３をインストールしたり、製品固有のアプリケーション１２４を起動したりする。ステップＳ７３の処理を終了すると、第１製品固有起動処理手順実行部１４３は、処理をステップＳ７２に戻し、それ以降の処理を繰り返す。すなわち、第１製品固有起動処理手順実行部１４３は、未処理の有効な製品パッケージが存在しないと判定するまで（全ての有効な製品パッケージの、共通機能のアプリケーション５４よりも先にインストールする必要がある製品固有のデバイスドライバ１２３をインストールし、共通機能のアプリケーション５４よりも先に起動する必要がある製品固有のアプリケーション１２４を起動するまで）、ステップＳ７２およびステップＳ７３の処理を繰り返す。
【０１３１】
ステップＳ７３において、未処理の有効な製品パッケージが存在しないと判定した場合、第１製品固有起動処理手順実行部１４３は、処理をステップＳ７４に進める。
【０１３２】
ステップＳ７４において、共通機能アプリケーション起動処理部７６は、図６のステップＳ６と同様に処理を行い、共通機能設定に基づいて、共通機能のアプリケーション５４を起動する。ステップＳ７４の処理を終了すると、共通機能アプリケーション起動処理部７６は、処理をステップＳ７５に進める。
【０１３３】
ステップＳ７５において、第２製品固有起動処理手順実行部１４４は、未処理の有効な製品パッケージが存在するか否かを判定する。つまり、第２製品固有起動処理手順実行部１４４は、「有効」に設定されている製品パッケージ（図１５のステップＳ６６においてRAM１３にロードされた製品パッケージ）で、未だ、共通機能のアプリケーション５４よりも後にインストールする必要がある製品固有のデバイスドライバ１２３をインストールしていない製品パッケージや、共通機能のアプリケーション５４よりも後に起動する必要がある製品固有のアプリケーション１２４を起動していない製品パッケージが存在するか否かを判定する。
【０１３４】
未処理の有効な製品パッケージが存在すると判定した場合、第２製品固有起動処理手順実行部１４４は、ステップＳ７６に処理を進め、第２製品固有起動処理手順１３２を実行し、その製品パッケージの製品固有のデバイスドライバ１２３をインストールしたり、製品固有のアプリケーション１２４を起動したりする。ステップＳ７６の処理を終了すると、第２製品固有起動処理手順実行部１４４は、処理をステップＳ７５に戻し、それ以降の処理を繰り返す。すなわち、第２製品固有起動処理手順実行部１４４は、未処理の有効な製品パッケージが存在しないと判定するまで（全ての有効な製品パッケージの、共通機能のアプリケーション５４よりも後にインストールする必要がある製品固有のデバイスドライバ１２３をインストールし、共通機能のアプリケーション５４よりも後に起動する必要がある製品固有のアプリケーション１２４を起動するまで）、ステップＳ７５およびステップＳ７６の処理を繰り返す。
【０１３５】
ステップＳ７５において、未処理の有効な製品パッケージが存在しないと判定した場合、第２製品固有起動処理手順実行部１４４は、システム起動処理を終了する。
【０１３６】
以上のように予め用意された手順（共通機能設定ファイル参照手順６１、共通機能デバイスドライバインストール手順６２、および共通機能アプリケーション起動手順６３）に従って、システムを起動するので、CPU１１は、ユーザからの指示無しに、フラッシュメモリ１５に格納されるオペレーティングシステムやシステムソフトウェアだけでなく、製品固有の製品パッケージをRAM１３にロードし、システムを正しく起動させることができる。
【０１３７】
つまり、以上のようにシステムを起動することにより、CPU１１は、オペレーティングシステムやシステムソフトウェアだけでなく製品固有の機能を提供する製品パッケージも、それらの保存領域であるフラッシュメモリ１５とは異なるRAM１３の実行環境領域で再構築して共通機能および製品固有機能をともに有効にすることができる。また、このように、RAM１３上で構成を再構築するように起動処理を行うことにより、CPU１１は、フラッシュメモリ１５に、オペレーティングシステムやシステムソフトウェアと、製品固有の機能を提供する製品パッケージを、実行環境における構成と異なる構成で記憶させておくことができる。つまり、フラッシュメモリ１５は、互いに異なる領域に、オペレーティングシステム、システムソフトウェア、および製品パッケージを格納することができる。
【０１３８】
このようにフラッシュメモリ１５が各ソフトウェアを互いに異なる領域に格納することにより、CPU１１は、オペレーティングシステムやシステムソフトウェアを更新せずに、製品パッケージの追加、削除、および更新などの処理を行うことができる。すなわち、汎用プラットフォーム１は、より安全に機能の追加、削除、および更新を行うことができる。
【０１３９】
次に、以上のようにインストールされる各製品パッケージの有効または無効の設定の更新について説明する。
【０１４０】
図１７に示されるように、RAM１３にロードされた共通機能のアプリケーション５４には、製品パッケージ設定情報４３に格納される、有効な製品パッケージを示すリストの情報を、例えばユーザ等の外部からの指示に基づいて更新するリスト更新プログラム１５１が含まれている。
【０１４１】
CPU１１は、このリスト更新プログラム１５１を実行することにより、図１８に示されるように、機能ブロックとして、設定情報変更指示取得部１６１と設定情報更新部１６２を有する。
【０１４２】
設定情報変更指示取得部１６１は、CPU１１がリスト更新プログラム１５１を実行することにより得られる機能を示す機能ブロックである。設定情報変更指示取得部１６１は、例えば、イーサネット（登録商標）I/F１４を介してパーソナルコンピュータ２１より製品パッケージの有効・無効の設定を切り替える指示である設定変更指示を取得する。設定変更指示を取得すると設定情報変更指示取得部１６１は、処理を設定情報更新部１６２に渡す。
【０１４３】
設定情報更新部１６２は、CPU１１がリスト更新プログラム１５１を実行することにより得られる機能を示す機能ブロックである。設定情報更新部１６２は、例えば、設定情報変更指示取得部１６１が取得した設定変更指示に基づいて、製品パッケージ設定情報４３に記憶されているリストの情報を更新する。
【０１４４】
CPU１１は、各ソフトウェアを実行することにより、上述したような機能ブロックを実現する。なお、図１８に示されるような各機能ブロックの一部または全部をハードウェアにより実現するようにしてももちろん良い。
【０１４５】
次に、このような構成のCPU１１により実行される設定情報更新処理の流れの例を、図１９のフローチャートを参照して説明する。
【０１４６】
最初に、ステップＳ９１において、設定情報変更指示取得部１６１は、例えばイーサネット（登録商標）I/F１４を制御して、パーソナルコンピュータ２１より供給される製品パッケージ設定変更指示を取得する。設定変更指示を取得すると、設定情報更新部１６２は、ステップＳ９２において、その設定変更指示が製品パッケージの設定を「有効」に切り替える製品パッケージ有効化指示であるか否かを判定する。設定情報変更指示取得部１６１が取得した設定変更指示が製品パッケージ有効化指示であると判定した場合、設定情報更新部１６２は、処理をステップＳ９３に進める。
【０１４７】
ステップＳ９３において、設定情報更新部１６２は、設定変更指示により指定される製品パッケージの情報がリストに存在するか否かを判定する。リストにその製品パッケージの情報が存在しないと判定した場合、設定情報更新部１６２は、処理をステップＳ９４に進め、その製品パッケージの設定を「有効」にするために、リストの最後尾にその製品パッケージの要素を新たに追加し、設定情報更新処理を終了する。
【０１４８】
また、ステップＳ９３において、リストにその製品パッケージの情報が存在すると判定した場合、設定情報更新部１６２は、その製品パッケージの設定が既に「有効」であるので、ステップＳ９４の処理を省略し、設定情報更新処理を終了する。
【０１４９】
さらに、ステップＳ９２において、設定情報変更指示取得部１６１が取得した設定変更指示が製品パッケージ有効化指示でないと判定した場合、設定情報更新部１６２は、処理をステップＳ９５に進める。
【０１５０】
ステップＳ９５において、設定情報更新部１６２は、設定情報変更指示取得部１６１が取得した設定変更指示が製品パッケージの設定を「無効」に切り替える製品パッケージ無効化指示であるか否かを判定する。設定情報変更指示取得部１６１が取得した設定変更指示が製品パッケージ無効化指示であると判定した場合、設定情報更新部１６２は、処理をステップＳ９６に進める。
【０１５１】
ステップＳ９６において、設定情報更新部１６２は、設定変更指示により指定される製品パッケージの情報がリストに存在するか否かを判定する。リストにその製品パッケージの情報が存在すると判定した場合、設定情報更新部１６２は、処理をステップＳ９７に進め、その製品パッケージの設定を「無効」にするために、リストからその製品パッケージの要素を削除し、設定情報更新処理を終了する。
【０１５２】
また、ステップＳ９６において、リストにその製品パッケージの情報が存在しないと判定した場合、設定情報更新部１６２は、その製品パッケージの設定が既に「無効」であるので、ステップＳ９７の処理を省略し、設定情報更新処理を終了する。
【０１５３】
さらに、ステップＳ９５において、設定情報変更指示取得部１６１が取得した設定変更指示が製品パッケージ無効化指示でないと判定した場合、設定情報更新部１６２は、設定情報更新処理を終了する。
【０１５４】
以上のように、CPU１１は、取得した設定変更指示に基づいて、フラッシュメモリ１５の製品パッケージ設定情報４３に格納されているリストに、製品パッケージの情報を追加したり削除したりするだけで、製品パッケージそのものを追加したり削除したりすることなく、その製品パッケージを有効化したり無効化したりすることができる。また、上述したように、CPU１１は、例えばイーサネット（登録商標）I/F１４を制御して、外部より、機能を提供する各製品パッケージの設定を切り替える設定変更指示を取得することもできる。つまり、汎用プラットフォーム１は、容易に機能の追加、削除、および更新を行うことができる。
【０１５５】
なお、以上において、図１５および図１６のフローチャートを参照して説明した、製品パッケージインストール後のシステムの起動処理は、あくまでも一例であり、CPU１１は、上述した以外の方法で、システムを起動するようにしてもよい。
【０１５６】
例えば、製品パッケージインストール後のシステムの起動処理において、CPU１１が、所定のタイミングで、製品パッケージ内で用意される既定コマンドを実行するようにしてもよい。
【０１５７】
その場合、RAM１３においてマウントされた共通機能の起動処理手順５１には、図２０に示されるように、図１３に示される構成の他に、既定コマンドの実行手順を示す既定コマンド実行手順１７１を含む。
【０１５８】
既定コマンド実行手順１７１は、各フェーズにおける既定コマンドの実行手順を示す情報であり、例えば、製品パッケージ間において、製品パッケージ内で用意するコマンドのコマンド名と、各フェーズでのコマンド実行時に渡すパラメータを既定している。
【０１５９】
CPU１１は、この既定コマンド実行手順１７１を実行することにより、図２１に示されるように、機能ブロックとして、既定コマンド実行部１８１を有する。つまり、図２１の場合のCPU１１は、図１４の場合の構成に、既定コマンド実行部１８１が追加されている。
【０１６０】
既定コマンド実行部１８１は、CPU１１が既定コマンド実行手順１７１を実行することにより得られる機能を示す機能ブロックである。既定コマンド実行部１８１は、例えば、製品パッケージロード処理部１４１、共通機能設定マージ処理部１４２、第１製品固有起動処理手順実行部１４３、または第２製品固有起動処理手順実行部１４４に制御され、既定コマンド実行手順１７１において規定されるコマンドをシステム起動処理中の各フェーズにおいて実行する。
【０１６１】
例えば、既定コマンド実行手順１７１には、「＜製品パッケージ名＞／phase_command 01」、「＜製品パッケージ名＞／phase_command 02」、および「＜製品パッケージ名＞／phase_command 03」等の情報が既定されている。既定コマンド実行部１８１は、これらのコマンドを、それぞれ割り当てられたフェーズにおいて順次実行する。
【０１６２】
なお、既定コマンド（phase_command）が具体的にどのような処理を行うかは、各製品パッケージに依存する。例えば、製品固有のLEDデバイスをパラメータに合わせて表示することにより、起動処理の進行状況を表示するようにしてもよいし、ネットワークを介してホストコンピュータに起動処理のログを出力するようにしてもよい。また、これ以外の処理であっても良い。
【０１６３】
CPU１１は、各ソフトウェアを実行することにより、上述したような機能ブロックを実現する。なお、図２１に示されるような各機能ブロックの一部または全部をハードウェアにより実現するようにしてももちろん良い。
【０１６４】
次に、図２２および図２３のフローチャートを参照して、このような構成のCPU１１により実行されるシステム起動処理の流れの例を説明する。
【０１６５】
システム起動処理が開始されると、OSロード処理部７１乃至OS初期化処理部７３は、それぞれ、図２２のステップＳ１１１乃至ステップＳ１１３の処理を、図６のステップＳ１乃至ステップＳ３の場合と同様に実行する。
【０１６６】
ステップＳ１１３の処理を終了すると、OS初期化処理部７３は、処理をステップＳ１１４に進める。製品パッケージロード処理部１４１は、ステップＳ１１４およびステップＳ１１５の処理を、図１５のステップＳ６４およびステップＳ６５と同様に実行する。
【０１６７】
ステップＳ１１５の処理を終了すると、製品パッケージロード処理部１４１は、処理をステップＳ１１６に進める。ステップＳ１１６において、既定コマンド実行部１８１は、現在処理対象となっている製品パッケージ内の既定コマンドをパラメータＡで実行する。なお、このパラメータＡは、任意のパラメータであり、実行する既定コマンドに対応するパラメータであれば何でも良い。ステップＳ１１６の処理を終了すると、既定コマンド実行部１８１は、処理をステップＳ１１４に戻し、それ以降の処理を繰り返させる。
【０１６８】
また、ステップＳ１１４において未処理の有効な製品パッケージが存在しないと判定した場合、製品パッケージロード処理部１４１は、処理をステップＳ１１７に進める。共通機能設定マージ処理部１４２は、ステップＳ１１７およびステップＳ１１８の処理を図１５のステップＳ６６およびステップＳ６７と同様に実行する。
【０１６９】
ステップＳ１１８の処理を終了すると、共通機能設定マージ処理部１４２は、処理をステップＳ１１９に進める。ステップＳ１１９において、既定コマンド実行部１８１は、現在処理対象となっている製品パッケージ内の既定コマンドをパラメータＢで実行する。なお、このパラメータＢは、任意のパラメータであり、実行する既定コマンドに対応するパラメータであれば何でも良い。ステップＳ１１９の処理を終了すると、既定コマンド実行部１８１は、処理をステップＳ１１７に戻し、それ以降の処理を繰り返させる。
【０１７０】
また、ステップＳ１１７において未処理の有効な製品パッケージが存在しないと判定した場合、共通機能設定マージ処理部１４２は、処理をステップＳ１２０に進める。ステップＳ１２０において、共通機能設定ファイル参照部７４は、図１５のステップＳ６８の場合と同様に、マージされた共通機能設定ファイルを参照する。処理を終了すると、共通機能設定ファイル参照部７４は、処理を図２３のステップＳ１３１に進める。ステップＳ１３１において、共通機能デバイスドライバインストール部７５は、図１６のステップＳ７１と同様に、共通機能設定に基づいて、共通機能デバイスドライバをインストールし、処理をステップＳ１３２に進める。
【０１７１】
第１製品固有起動処理手順実行部１４３は、ステップＳ１３２およびステップＳ１３３の処理を図１６のステップＳ７２およびステップＳ７３と同様に実行する。ステップＳ１３３の処理を終了すると、第１製品固有起動処理手順実行部１４３は、処理をステップＳ１３４に進める。ステップＳ１３４において、既定コマンド実行部１８１は、現在処理対象となっている製品パッケージ内の既定コマンドをパラメータＣで実行する。なお、このパラメータＣは、任意のパラメータであり、実行する既定コマンドに対応するパラメータであれば何でも良い。ステップＳ１３４の処理を終了すると、既定コマンド実行部１８１は、処理をステップＳ１３２に戻し、それ以降の処理を繰り返させる。
【０１７２】
また、ステップＳ１３２において未処理の有効な製品パッケージが存在しないと判定した場合、第１製品固有起動処理手順実行部１４３は、処理をステップＳ１３５に進める。ステップＳ１３５において、共通機能アプリケーション起動処理部７６は、図１６のステップＳ７４と同様に、共通機能設定に基づいて、共通機能アプリケーションを起動し、処理をステップＳ１３６に進める。
【０１７３】
第２製品固有起動処理手順実行部１４４は、ステップＳ１３６およびステップＳ１３７の処理を図１６のステップＳ７５およびステップＳ７６と同様に実行する。ステップＳ１３７の処理を終了すると、第２製品固有起動処理手順実行部１４４は、処理をステップＳ１３８に進める。ステップＳ１３８において、既定コマンド実行部１８１は、現在処理対象となっている製品パッケージ内の既定コマンドをパラメータＤで実行する。なお、このパラメータＤは、任意のパラメータであり、実行する既定コマンドに対応するパラメータであれば何でも良い。ステップＳ１３８の処理を終了すると、既定コマンド実行部１８１は、処理をステップＳ１３６に戻し、それ以降の処理を繰り返させる。
【０１７４】
また、ステップＳ１３６において未処理の有効な製品パッケージが存在しないと判定した場合、第２製品固有起動処理手順実行部１４４は、システム起動処理を終了する。
【０１７５】
以上のように、既定コマンドを実行しながらシステムを起動することにより、CPU１１は、システムソフトウェア等、共通の起動処理を変更することなく、製品パッケージのインストールのみで、予め定義されていない処理を追加することができる。つまり、汎用プラットフォーム１は、より安全かつ容易に機能の追加、削除、および更新を行うことができる。
【０１７６】
また、以上においては、１つの製品パッケージに製品固有の起動処理手順１２１、製品固有の終了処理手順１２２、製品固有のデバイスドライバ１２３、製品固有のアプリケーション１２４、および共通機能に関する設定ファイル１２５を全て含むように説明したが、これに限らず、例えば、共通機能に関する設定ファイル１２５の１つである、ユーザアカウント管理機能に関する設定ファイル(passwd)のみを他の製品パッケージの共通機能に関する設定ファイル１２５に含めるようにしてもよい。この場合、２つの製品パッケージＡと製品パッケージＢを共に有効にして、製品固有の機能が全て有効にしたり、一方の製品パッケージＢのみを無効にして、製品固有のユーザアカウント設定のみを無効にしたりする(システムソフトウェア内のデフォルト設定を有効にする)等、汎用プラットフォーム１が、各製品パッケージについてより細かな設定を行うことができるようになる。
【０１７７】
さらに、以上において、CPU１１が、各製品パッケージの設定が有効であるか否かを、製品パッケージ設定情報４３に格納されるリストを用いて管理するように説明したが、これに限らず、製品パッケージの設定が、例えば、図２４に示されるようにテーブル情報を用いて管理されるようにしてもよい。
【０１７８】
図２４においてテーブル情報１９１は、製品パッケージの設定（有効であるか、無効であるか）を、実行する処理毎に管理するテーブル情報である。例えば、図２４において、テーブル情報１９１は、各製品パッケージについて、実行される処理毎に、有効であるか無効であるかを設定している。
【０１７９】
例えば、図２４において、パッケージ名が「pkgA」で、バージョン番号が「1.0」の製品パッケージは、共通機能設定のマージ、第１製品固有起動処理手順の実行、および第２製品固有起動処理手順の実行のいずれも「有効（ON）」に設定されている。また、パッケージ名が「pkgB」で、バージョン番号が「1.2」の製品パッケージは、共通機能設定のマージのみ「有効（ON）」に設定されており、第１製品固有起動処理手順の実行および第２製品固有起動処理手順の実行のいずれも「無効（OFF）」に設定されている。さらに、パッケージ名が「pkgC」で、バージョン番号が「2.0」の製品パッケージは、共通機能設定のマージのみ「無効（OFF）」に設定されており、第１製品固有起動処理手順の実行および第２製品固有起動処理手順の実行のいずれも「有効（ON）」に設定されている。
【０１８０】
この場合のRAM１３にロードされるソフトウェアの構成は、図１３の場合と同様であり、それらを起動するCPU１１が有する機能ブロックの構成も、図１４の場合と同様である。
【０１８１】
つまり、この場合のシステム起動処理においては、図２５および図２６のフローチャートに示されるように、図２５のステップＳ１５７、図２６のステップＳ１６３、および図２６のステップＳ１６７において、それぞれ、各処理の実行に対して、製品パッケージの設定が「有効」であるか「無効」であるかが確認され、「有効」である場合のみ、それらの処理が実行され、「無効」である場合は、それらの処理が省略される。
【０１８２】
例えば、共通設定マージ処理部１４２は、図２５のステップＳ１５６においては、テーブル情報１９１に製品パッケージが存在するか否かのみを判定している。そして、共通設定マージ処理部１４２は、図２５のステップＳ１５７においては、テーブル情報１９１を参照し、処理対象の製品パッケージの設定が、共通機能設定のマージ処理に対して有効であるか無効であるかを判定している。
【０１８３】
同様に、第１製品固有起動処理手順１４３は、図２６のステップＳ１６２においては、テーブル情報１９１に製品パッケージが存在するか否かのみを判定している。そして、第１製品固有起動処理手順１４３は、図２６のステップＳ１６３においては、テーブル情報１９１を参照し、処理対象の製品パッケージの設定が、第１製品固有起動処理手順の実行に対して有効であるか無効であるかを判定している。
【０１８４】
さらに、第２製品固有起動処理手順１４４は、図２６のステップＳ１６６においては、テーブル情報１９１に製品パッケージが存在するか否かのみを判定している。そして、第２製品固有起動処理手順１４４は、図２６のステップＳ１６７においては、テーブル情報１９１を参照し、処理対象の製品パッケージの設定が、第２製品固有起動処理手順の実行に対して有効であるか無効であるかを判定している。
【０１８５】
以上のように、テーブル情報１９１を用いて各製品パッケージの設定を管理することにより、CPU１１は、ユーザ操作入力無しに、処理毎に細かい設定を行うことができる。また、CPU１１は、このテーブル情報１９１の設定を更新するだけで、機能を処理毎に追加したり削除したり、変更したりすることができる。つまり、汎用プラットフォーム１は、より安全かつ容易に機能の追加、削除、および更新を行うことができる。
【０１８６】
以上のように、本発明を適用した汎用プラットフォームは、より安全かつ容易に機能の追加、削除、および更新を行うことができる。なお、本発明は、より安全かつ容易に機能の追加、削除、更新のうち、少なくとも１つを行うことを目的としており、例えば互いに異なる複数の記憶領域に記憶されている複数のソフトウェアを実行環境にロードし、その実行環境において、各ソフトウェアを所定のディレクトリにマウントし、設定ファイルをマージさせるものであれば、上述した汎用プラットフォーム以外の情報処理装置であっても適用することができる。
【０１８７】
以上においては、汎用プラットフォーム１が、イーサネット（登録商標）I/F１４を介して、他の装置であるパーソナルコンピュータ５１より、更新処理用のソフトウェアパッケージを取得するように説明したが、これに限らず、例えば、図２７に示される汎用プラットフォーム２０１のように、所定のリムーバブルメディア２１２に対応したドライブ２１１を有し、このリムーバブルメディア２１２に記録されているソフトウェアパッケージを取得するようにしてもよい。
【０１８８】
つまり、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできるが、上述した一連の処理をソフトウェアにより実行させる場合には、上述したソフトウェアが、記録媒体からインストールされるようにしてもよい。
【０１８９】
この記録媒体は、例えば、図２７に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア２１２により構成される。
【０１９０】
ただし、この場合、汎用プラットフォーム２０１がユーザからの指示を受け付ける構成を必要としないように、CPU１１が、ドライブ２１１に装着されたリムーバブルメディア２１２に記録されているソフトウェアパッケージを読み出す処理を自動実行する（リムーバブルメディア２１２に記録されているソフトウェアパッケージを自動再生する）ことができるようになされているのが望ましい。
【０１９１】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１９２】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。なお、以上において、一つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて一つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。
【図面の簡単な説明】
【０１９３】
【図１】本発明を適用した汎用プラットフォームの一実施形態に係る構成例を示す図である。
【図２】汎用プラットフォームのシステムへの適用例を示す図である。
【図３】汎用プラットフォームの記憶領域の構成例を示す図である。
【図４】RAMにロードされたソフトウェアの構成例を示す図である。
【図５】CPUが有する機能を示す機能ブロック図である。
【図６】システム起動処理の流れの例を説明するフローチャートである。
【図７】RAMにロードされたソフトウェアの構成例を示す図である。
【図８】CPUが有する機能を示す機能ブロック図である。
【図９】リストの更新の様子を説明する図である。
【図１０】製品パッケージインストール処理の流れの例を説明するフローチャートである。
【図１１】設定情報更新処理の流れの例を説明するフローチャートである。
【図１２】汎用プラットフォームの記憶領域の構成例を示す図である。
【図１３】RAMにロードされたソフトウェアの構成例を示す図である。
【図１４】CPUが有する機能を示す機能ブロック図である。
【図１５】システム起動処理の流れの例を説明するフローチャートである。
【図１６】システム起動処理の流れの例を説明する、図１５に続くフローチャートである。
【図１７】RAMにロードされたソフトウェアの構成例を示す図である。
【図１８】CPUが有する機能を示す機能ブロック図である。
【図１９】設定情報更新処理の流れの例を説明するフローチャートである。
【図２０】RAMにロードされたソフトウェアの構成例を示す図である。
【図２１】CPUが有する機能を示す機能ブロック図である。
【図２２】システム起動処理の流れの例を説明するフローチャートである。
【図２３】システム起動処理の流れの例を説明する、図２２に続くフローチャートである。
【図２４】テーブル情報の構成例を示す模式図である。
【図２５】システム起動処理の流れの例を説明するフローチャートである。
【図２６】システム起動処理の流れの例を説明する、図２５に続くフローチャートである。
【図２７】本発明を適用した汎用プラットフォームの一実施形態に係る、他の構成例を示す図である。
【符号の説明】
【０１９４】
１  汎用プラットフォーム，  １０  バス，  １１  CPU，  １２  ROM，  １３  RAM，  １４  イーサネット（登録商標）I/F，  １５  フラッシュメモリ，  ２１  パーソナルコンピュータ，  ２２  ネットワーク，  ２３  画像処理装置，  ３１  ブートローダ，  ４１  OS格納領域，  ４２  システムソフトウェア格納領域，  ４３  製品パッケージ設定情報，  ４４  製品パッケージ格納領域，  ５１  共通機能の起動処理手順，  ５２  共通機能の終了処理手順，  ５３  共通機能のデバイスドライバ，  ５４  共通機能のアプリケーション，  ５５  共通機能に関する設定ファイル，  ６１  共通機能設定ファイル参照手順，  ６２  共通機能デバイスドライバインストール手順，  ６３  共通機能アプリケーション起動手順，  ７１  OSロード処理部，  ７２  システムソフトウェアロード処理部，  ７３  OS初期化処理部，  ７４  共通機能設定ファイル参照部，  ７５  共通機能デバイスドライバインストール部，  ７６  共通機能アプリケーション起動処理部，  ８１  ネットワーク機能制御プログラム，  ８２  インストールプログラム，  ９１  製品パッケージ取得部，  ９２  製品パッケージインストール部，  ９３  設定情報更新部，  １１１  製品パッケージマウント手順，  １１２  共通機能設定ファイルマージ手順，  １２１  製品固有の起動処理手順，  １２２  製品固有の終了処理手順，  １２３  製品固有のデバイスドライバ，  １２４  製品固有のアプリケーション，  １２５  共通機能に関する設定ファイル，  １３１  第１製品固有起動処理手順，  １３２  第２製品固有起動処理手順，  １４１  製品パッケージロード処理部，  １４２  共通機能設定マージ処理部，  １４３  第１製品固有起動処理手順実行部，  １４４  第２製品固有起動処理手順実行部，  １５１  リスト更新プログラム，  １６１  設定情報変更指示取得部，  １６２  設定情報更新部，  １７１  既定コマンド実行手順，  １８１  既定コマンド実行部，  １９１  テーブル情報，  ２０１  汎用プラットフォーム，  ２１１  ドライブ，  ２１２  リムーバブルメディア
【図１】
0004815938.tif 000002
【図２】
0004815938.tif 000003
【図３】
0004815938.tif 000004
【図４】
0004815938.tif 000005
【図５】
0004815938.tif 000006
【図６】
0004815938.tif 000007
【図７】
0004815938.tif 000008
【図８】
0004815938.tif 000009
【図９】
0004815938.tif 000010
【図１０】
0004815938.tif 000011
【図１１】
0004815938.tif 000012
【図１２】
0004815938.tif 000013
【図１３】
0004815938.tif 000014
【図１４】
0004815938.tif 000015
【図１５】
0004815938.tif 000016
【図１６】
0004815938.tif 000017
【図１７】
0004815938.tif 000018
【図１８】
0004815938.tif 000019
【図１９】
0004815938.tif 000020
【図２０】
0004815938.tif 000021
【図２１】
0004815938.tif 000022
【図２２】
0004815938.tif 000023
【図２３】
0004815938.tif 000024
【図２４】
0004815938.tif 000025
【図２５】
0004815938.tif 000026
【図２６】
0004815938.tif 000027
【図２７】
0004815938.tif 000028