(57)【要約】【課題】納手段に格納されるファームウェアを構成するプログラムモジュールの全てが電子装置の起動時に主記憶装置に読み込まれる場合と比較して、電子装置の起動のために必要な主記憶装置領域の消費量を削減すること。【解決手段】選択部１４は、第三格納部に格納されているパス設定ファイルの内容に基づいて第二格納部に格納されている複数の版の機能単位ファイルのいずれかの版を選択し、第一格納部１１に格納されている実行モジュールは、選択部１４によって選択された版の機能単位ファイルを主記憶装置上にロードする。【選択図】図３
2019049814.tif 000002
【特許請求の範囲】
【請求項１】
機能単位でファイル化されているファームウェアを格納する格納手段であって、前記ファームウェアを構成する各機能単位ファイルについて、異なる複数の版を格納する格納手段と、
起動時に主記憶装置に読み込まれる機能単位ファイルの版を、前記格納手段に格納されている複数の版の中から選択する選択手段と、
を具えた電子装置。
【請求項２】
前記格納手段に格納されている前記機能単位ファイルの内、実行形式でないファイルは、ファームウェア更新の処理の際に前記格納手段から削除されない、請求項１記載の電子装置。
【請求項３】
ファームウェア更新の処理の際に、インストール対象であるファームウェアを構成する機能単位ファイルは、前記格納手段に格納されている機能単位ファイルのいずれとも同一でない場合に、前記格納手段に追加格納される、請求項２記載の電子装置。
【請求項４】
ファームウェア更新の処理の際に、インストール対象であるファームウェアを構成する機能単位ファイルは、前記格納手段に格納されている機能単位ファイルのいずれかと同一である場合には、前記格納手段に追加格納されない、請求項２記載の電子装置。
【請求項５】
前記選択手段は、外部からの指示に従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項１から４いずれか記載の電子装置。
【請求項６】
前記選択手段は、利用者からの指示に従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項５記載の電子装置。
【請求項７】
どの版の機能単位ファイルを起動時に主記憶装置に読み込ませるのかについての利用者からの指示を受け付ける受付手段を更に具え、
前記選択手段は、前記受付手段によって受け付けた指示に従って、起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する請求項６記載の電子装置。
【請求項８】
前記選択手段は、他の機器からの指示に従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項５記載の電子装置。
【請求項９】
他の機器から送信されたデータを受信する受信手段を更に具え、
前記選択手段は、前記受信手段が受信したデータに従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項８記載の電子装置。
【請求項１０】
前記選択手段は、前記電子装置内で生じた事象の履歴が予め定められた条件に適合するか否かに基づいて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項１から４いずれか記載の電子装置。
【請求項１１】
前記選択手段は、特定の機能に関するエラーの履歴が予め定められた条件に適合するか否かに基づいて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項１０記載の電子装置。
【請求項１２】
前記選択手段は、特定の機能に関するエラーが予め定められた頻度以上に生じた場合に、該特定の機能に関する機能単位ファイルについては、デバッグ用のログを作成する機能を有する版を起動時に主記憶装置に読み込まれる版として選択する、請求項１１記載の電子装置。
【請求項１３】
前記選択手段は、特定の機能に関するエラーが予め定められた頻度以上に生じていない場合に、該特定の機能に関する機能単位ファイルについては、デバッグ用のログを作成する機能を有さない版を起動時に主記憶装置に読み込まれる版として選択する、請求項１１記載の電子装置。
【請求項１４】
前記格納手段に格納されている機能単位ファイルに付与された電子署名を検証する検証手段と、
前記検証手段による検証結果に従って前記電子装置の起動処理を制御する制御手段と、
を更に具える、請求項１から１３いずれか記載の電子装置。
【請求項１５】
前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名でない場合に、前記電子装置の起動処理を停止するよう制御する、請求項１４記載の電子装置。
【請求項１６】
前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名である場合に、前記電子装置の起動処理を停止しないよう制御する、請求項１４記載の電子装置。
【請求項１７】
前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名でない場合に、前記選択手段によって選択された版の機能単位ファイルの代替として、前記選択手段によって選択された版とは異なる版の機能単位ファイルが、前記電子装置の起動処理中に主記憶装置に読み込まれるよう制御する、請求項１４記載の電子装置。
【請求項１８】
前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名である場合に、前記選択手段によって選択された版の機能単位ファイルが前記電子装置の起動処理中に主記憶装置に読み込まれるよう制御する、請求項１４記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置に関する。
【背景技術】
【０００２】
特許文献１には、情報処理装置におけるモジュール群の版管理方法であって、あるモジュール(モジュール１)が更新されたときに、前記モジュール１の更新によって影響を受けるモジュール(モジュール２他)も更新された場合、更新されたモジュール名と該モジュールの最新版番号とを対応付け、これらのモジュール群(モジュール１，２他)を単位として管理する版管理情報データベースと、各モジュールの他のモジュールに対する依存関係の情報を管理するモジュール間対応テーブルとを有し、モジュール名と該モジュールの版番号が指定されたとき、前記版管理情報データベースとモジュール間対応テーブルとを参照して、当該モジュールが含まれるモジュール群内のモジュール以外の他のモジュールについては、整合が取れる範囲でより新しい版のモジュールを採集することを特徴とするモジュール群の版管理方法、が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−３０２１９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、格納手段に格納されるファームウェアを構成するプログラムモジュールの全てが電子装置の起動時に主記憶装置に読み込まれる場合と比較して、電子装置の起動のために必要な主記憶装置領域の消費量を削減することを目的とする。
【課題を解決するための手段】
【０００５】
［電子装置］
請求項１に係る本発明は、機能単位でファイル化されているファームウェアを格納する格納手段であって、前記ファームウェアを構成する各機能単位ファイルについて、異なる複数の版を格納する格納手段と、
起動時に主記憶装置に読み込まれる機能単位ファイルの版を、前記格納手段に格納されている複数の版の中から選択する選択手段と、
を具えた電子装置である。
【０００６】
請求項２に係る本発明は、前記格納手段に格納されている前記機能単位ファイルの内、実行形式でないファイルは、ファームウェア更新の処理の際に前記格納手段から削除されない、請求項１記載の電子装置である。
【０００７】
請求項３に係る本発明は、ファームウェア更新の処理の際に、インストール対象であるファームウェアを構成する機能単位ファイルは、前記格納手段に格納されている機能単位ファイルのいずれとも同一でない場合に、前記格納手段に追加格納される、請求項２記載の電子装置である。
【０００８】
請求項４に係る本発明は、ファームウェア更新の処理の際に、インストール対象であるファームウェアを構成する機能単位ファイルは、前記格納手段に格納されている機能単位ファイルのいずれかと同一である場合には、前記格納手段に追加格納されない、請求項２記載の電子装置である。
【０００９】
請求項５に係る本発明は、前記選択手段は、外部からの指示に従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項１から４いずれか記載の電子装置である。
【００１０】
請求項６に係る本発明は、前記選択手段は、利用者からの指示に従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項５記載の電子装置である。
【００１１】
請求項７に係る本発明は、どの版の機能単位ファイルを起動時に主記憶装置に読み込ませるのかについての利用者からの指示を受け付ける受付手段を更に具え、
前記選択手段は、前記受付手段によって受け付けた指示に従って、起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する請求項６記載の電子装置である。
【００１２】
請求項８に係る本発明は、前記選択手段は、他の機器からの指示に従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項５記載の電子装置である。
【００１３】
請求項９に係る本発明は、他の機器から送信されたデータを受信する受信手段を更に具え、
前記選択手段は、前記受信手段が受信したデータに従って起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項８記載の電子装置である。
【００１４】
請求項１０に係る本発明は、前記選択手段は、前記電子装置内で生じた事象の履歴が予め定められた条件に適合するか否かに基づいて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項１から４いずれか記載の電子装置である。
【００１５】
請求項１１に係る本発明は、前記選択手段は、特定の機能に関するエラーの履歴が予め定められた条件に適合するか否かに基づいて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を選択する、請求項１０記載の電子装置である。
【００１６】
請求項１２に係る本発明は、前記選択手段は、特定の機能に関するエラーが予め定められた頻度以上に生じた場合に、該特定の機能に関する機能単位ファイルについては、デバッグ用のログを作成する機能を有する版を起動時に主記憶装置に読み込まれる版として選択する、請求項１１記載の電子装置である。
【００１７】
請求項１３に係る本発明は、前記選択手段は、特定の機能に関するエラーが予め定められた頻度以上に生じていない場合に、該特定の機能に関する機能単位ファイルについては、デバッグ用のログを作成する機能を有さない版を起動時に主記憶装置に読み込まれる版として選択する、請求項１１記載の電子装置である。
【００１８】
請求項１４に係る本発明は、前記格納手段に格納されている機能単位ファイルに付与された電子署名を検証する検証手段と、
前記検証手段による検証結果に従って前記電子装置の起動処理を制御する制御手段と、
を更に具える、請求項１から１３いずれか記載の電子装置である。
【００１９】
請求項１５に係る本発明は、前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名でない場合に、前記電子装置の起動処理を停止するよう制御する、請求項１４記載の電子装置である。
【００２０】
請求項１６に係る本発明は、前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名である場合に、前記電子装置の起動処理を停止しないよう制御する、請求項１４記載の電子装置である。
【００２１】
請求項１７に係る本発明は、前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名でない場合に、前記選択手段によって選択された版の機能単位ファイルの代替として、前記選択手段によって選択された版とは異なる版の機能単位ファイルが、前記電子装置の起動処理中に主記憶装置に読み込まれるよう制御する、請求項１４記載の電子装置である。
【００２２】
請求項１８に係る本発明は、前記制御手段は、前記選択手段によって選択された版の機能単位ファイルに付与された電子署名が正当な署名である場合に、前記選択手段によって選択された版の機能単位ファイルが前記電子装置の起動処理中に主記憶装置に読み込まれるよう制御する、請求項１４記載の電子装置である。
【発明の効果】
【００２３】
請求項１に係る本発明によれば、格納手段に格納されるファームウェアを構成するプログラムモジュールの全てが電子装置の起動時に主記憶装置に読み込まれる場合と比較して、電子装置の起動のために必要な主記憶装置領域の消費量を削減することができる。
【００２４】
請求項２に係る本発明によれば、請求項１に係る本発明の効果に加えて、ファームウェアの更新によって、格納手段に格納される機能単位ファイルの版を複数とすることができる。
【００２５】
請求項３に係る本発明によれば、請求項２に係る本発明の効果に加えて、異なる複数の版の機能単位ファイルを格納するために必要となる格納手段の容量を、同一内容の機能単位ファイルが複数格納手段に格納される場合と比べて、少なくすることができる。
【００２６】
請求項４に係る本発明によれば、請求項２に係る本発明の効果に加えて、異なる複数の版の機能単位ファイルを格納するために必要となる格納手段の容量を、同一内容の機能単位ファイルが複数格納手段に格納される場合と比べて、少なくすることができる。
【００２７】
請求項５に係る本発明によれば、請求項１から４いずれか記載の本発明の効果に加えて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を、外部から指示できるようになる。
【００２８】
請求項６に係る本発明によれば、請求項５記載の本発明の効果に加えて、利用者によって指示された機能単位ファイルの版が、起動時に主記憶装置に読み込まれるようになる。
【００２９】
請求項７に係る本発明によれば、請求項６記載の本発明の効果に加えて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を、利用者が指示できるようになる。
【００３０】
請求項８に係る本発明によれば、請求項５記載の本発明の効果に加えて、他の機器によって指示された機能単位ファイルの版が、起動時に主記憶装置に読み込まれるようになる。
【００３１】
請求項９に係る本発明によれば、請求項８記載の本発明の効果に加えて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を、他の機器を介して指示できるようになる。
【００３２】
請求項１０に係る本発明によれば、請求項１から４いずれか記載の本発明の効果に加えて、起動時に主記憶装置に読み込まれる機能単位ファイルの版を、電子装置が自律的に選択できるようになる。
【００３３】
請求項１１に係る本発明によれば、請求項１０記載の本発明の効果に加えて、起動時に主記憶装置に読み込まれる機能単位ファイルの版が、特定の機能に関するエラー履歴に基づいて選択されるようになる。
【００３４】
請求項１２に係る本発明によれば、請求項１１記載の本発明の効果に加えて、特定の機能に関するエラーが予め定められた頻度以上に生じた場合に、当該機能に関する機能単位ファイルについては、デバッグ用のログを作成する機能を有する版が起動時に主記憶装置に読み込まれるようになる。
【００３５】
請求項１３に係る本発明によれば、請求項１１記載の本発明の効果に加えて、特定の機能に関するエラーが予め定められた頻度以上に生じていない場合には、当該機能に関する機能単位ファイルについては、デバッグ用のログを作成する機能を有さない版が起動時に主記憶装置に読み込まれるようになる。
【００３６】
請求項１４に係る本発明によれば、請求項１から１３いずれか記載の本発明の効果に加えて、機能単位ファイルが改ざんされている可能性がある場合に、電子装置の起動処理について通常とは異なるように制御することができるようになる。
【００３７】
請求項１５に係る本発明によれば、請求項１４記載の本発明の効果に加えて、改ざんされた可能性のある機能単位ファイルが選択手段によって選択されていたとしても、当該改ざんされた可能性のある機能単位ファイルが、主記憶装置上にロードされた状態で電子装置が起動してしまうことを防ぐことが可能となる。
【００３８】
請求項１６に係る本発明によれば、請求項１４記載の本発明の効果に加えて、改ざんされた可能性の低い機能単位ファイルを主記憶装置上にロードさせた状態で電子装置を起動させることが可能となる。
【００３９】
請求項１７に係る本発明によれば、請求項１４記載の本発明の効果に加えて、改ざんされた可能性のある機能単位ファイルが選択手段によって選択されていたとしても、当該改ざんされた可能性のある機能単位ファイルが、主記憶装置上にロードされた状態で電子装置が起動してしまうことを防ぐことが可能となる。
【００４０】
請求項１８に係る本発明によれば、請求項１４記載の本発明の効果に加えて、改ざんされた可能性の低い機能単位ファイルを主記憶装置上にロードさせた状態で電子装置を起動させることが可能となる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施形態に係る電子装置１００のハードウェア構成示す。
【図２】本発明の実施形態に係るファームウェアの例の構成の概念図である。
【図３】電子装置１００の機能構成を示す。
【図４】電子装置１００におけるファームウェア更新処理のフローの例を示す。
【図５】外部からの指示に基づいて実体モジュールの版が選択されるフローの例を示す。
【図６】利用する実体モジュールの版について利用者からの指定を受け付ける画面の例を示す。
【図７】格納部１２に格納されている実体モジュールの版の状態の例を示す。
【図８】他のサーバ機器から送信される、利用する実体モジュールの版の指定のためのファイルに含まれる情報の例を示す。
【図９】他のサーバ機器から送信される、利用する実体モジュールの版の指定のためのファイルに含まれる情報の例を示す。
【図１０】外部からの指示を介さずに実体モジュールの版が選択されるフローの例を示す。
【図１１】エラー履歴及びエラーの集計結果の例を示す。
【図１２】版によってセキュリティモジュールが対応するアルゴリズムの種類が異なる場合の例を示す。
【発明を実施するための形態】
【００４２】
図１は、電子装置１００のハードウェア構成を示す。電子装置１００は、ＣＰＵ１、メモリ２、磁気記憶装置や光ディスク（読取用のドライブを含む）等の補助記憶装置３、ネットワークを介して外部の装置等との間でデータの送信及び受信を行う通信インタフェース（ＩＦ）４を有し、これらの構成要素が、制御バス５を介して互いに接続されている。
【００４３】
ＣＰＵ１は、主記憶装置であるメモリ２のＲＯＭ領域や補助記憶装置３に格納されるファームウェアを実行することで、電子装置１００の動作を（特にハードウェア的な側面で）制御する。ファームウェアとはコンピュータシステムのハードウェアを制御するためのソフトウェアプログラムのことを指し、起動時にメモリ２のＲＡＭ領域上に読み込まれ（以下、「ロードされる」等とも表現する）て実行される。
【００４４】
ここで、本実施形態に係る電子装置１００のファームウェアの構成について説明する。
【００４５】
コンピュータシステムが組み込まれた電子装置に所望の動きをさせるために、当該電子装置のハードウェアを制御するためのソフトウェアプログラムであるファームウェアは、一般的に、機能単位毎に分割されて（機能モジュール単位で）作成され、一つの実行モジュールと複数の実体モジュールからなる一つの実行形式のプログラムファイルとして実装されるものであるが、本実施形態に係るファームウェアは、機能モジュール単位でプログラムファイルに分割（以下「ファイル化」ともいう）されており、図２に概念的に示したように、ファームウェア２１は、実行形式のプログラムファイルである一つの実行ファイル２２（「メインモジュール」に相当する）と実行ファイルに機能を提供するためのライブラリ２３から構成される。ライブラリは複数の実体ファイル２４（「実体モジュール」に相当する）の集合である。なお、図２においては、電子装置１００がファクシミリ機能と複写機能を有する画像形成装置である場合のファームウェアの例として示した。なお、ファイルとはコンピュータシステムにおいて、記憶装置上においてデータが入出力される際の単位のことであり、データはファイルを最小単位として入出力される。
【００４６】
このように、機能単位毎のプログラムファイルである機能モジュールが複数組み合わされて、概念上の一つのファームウェアを構成するが、メインモジュールに呼び出され（てメモリ２のＲＡＭ領域上にロードされ）た各実体モジュールが、メインモジュールに対して所定の機能を提供する、という点は一般的なファームウェアと何ら違いはない。
【００４７】
また、本実施形態に係るファームウェアのメインモジュールは予め、各機能モジュールのパス（ファイルが存在するディレクトリまでのルート）を格納するためのファイル（以下、「パス設定ファイル」ともいう）を参照及び（パス設定ファイルが存在しない場合は）作成するように構成されており、電子装置１００の起動時に、パス設定ファイルを参照することでメインモジュールは別ファイルである各実体モジュールを呼び出すことになる。また、なお、パス設定ファイルの作成時には各機能モジュールのパス（以下、「パス設定値」ともいう）として予め定められた初期値が設定される。
【００４８】
図３に電子装置１００の機能構成を示す。電子装置１００は、第一格納部１１、第二格納部１２、第三格納部１３、選択部１４を具えている。
【００４９】
第一格納部１１は、ファームウェアの内、実行モジュールを格納する。本実施形態においては、第一格納部１１はメモリ２のＲＯＭ領域によって実現される。
【００５０】
第二格納部１２は、ファームウェアの内、ライブラリすなわち実体モジュール（群）を格納する。本実施形態においては、第二格納部１２は補助記憶装置３によって実現される。
【００５１】
第二格納部１２には、ファームウェアのライブラリを構成する各実体モジュールについて異なる複数のバージョン（以下、「版」ともいう）を格納するように構成されている。具体的には、例えば、同一機能単位の実体モジュールついて、版が異なるものは別のファイル名となるように、あるいは同一ファイル名であっても格納されるディレクトリが異なるようにして、同一機能の実体モジュールについて、異なる複数の版が格納される。
【００５２】
また、本実施形態に係る電子装置１００においては、ファームウェアの更新の処理の際に、第二格納部１２に格納されている実体モジュールは削除されない。そして、インストール対象であるファームウェアを構成する実体モジュールは、第二格納部１２に既に格納されている実体モジュールのいずれとも同一でない場合に、第二格納部１２に追加され、第二格納部１２に既に格納されている実体モジュールのいずれかと同一である場合には、第二格納部１２に追加されない。なお、インストールとはコンピュータシステムが組み込まれた電子装置にソフトウェア（ここではファームウェア）を追加して使用可能とするための処理や行為のことである。
【００５３】
図４に、ファームウェアの更新処理の流れを例示した。
【００５４】
ステップＳ１：第一格納部１１に格納されているメインモジュール（実行ファイル）が、インストール対象であるファームウェア（以下、「追加ファーム」ともいう）を構成するメインモジュールで上書き更新される。
【００５５】
ステップＳ２：実体モジュール毎に（機能単位毎に）、追加ファームを構成する実体モジュールの版（「追加モジュール」という）と、既に第二格納部１２に格納されている実体モジュールの版（「既存モジュール」という）とが比較され、既存モジュールに追加モジュールと同一の版が存在するかどうかが判定される。
【００５６】
ステップＳ３：追加ファームの実体モジュールの版が、既に第二格納部１２に格納されている実体モジュールの版のいずれとも一致しない場合（ステップＳ２においてＮＯの場合）には、追加ファームの当該モジュール（実体ファイル）が、第二格納部１２に追加される。
【００５７】
ステップＳ４：追加ファームの実体モジュールの版が、既に第二格納部１２に格納されている実体モジュールの版のいずれかと同一である場合（ステップＳ２においてＹＥＳの場合）には、追加ファームの当該モジュール（実体ファイル）は、第二格納部１２に追加されない。
【００５８】
なお、上記においては、追加ファームが、概念上の一つの（完全な）版のファームウェアであると想定した場合の例で説明したが、本実施形態にかかるファームウェアは、実体モジュール単位でファイル化されているため、そのファイル単位（ファームウェアの一部に相当する）で更新処理を行っても良い。例えば、メインモジュールを含まない形で提供されたものインストールする場合、上記ステップＳ１は当然不要となる。
【００５９】
また、一般的な電子装置においては、ファームウェア更新とは一つのファイルであるファームウェアの書き換え（旧版の削除が含まれる）を意味し、過去にインストールされていたファームウェアに含まれていた特定の実体モジュールについて利用したい場合、当該モジュールを含んでいる版のファームウェアを再びインストールする、すなわち、ファームウェアの更新作業が必要となる。一方、本実施形態に係る電子装置１００においては、ファームウェアの更新に伴って旧版の実体モジュールが削除されることはないため、このような場合でもファームウェアの更新作業は不要である。
【００６０】
第三格納部１３は、パス設定ファイルを格納する。第三格納部１３は例えば補助記憶装置３によって実現される。
【００６１】
選択部１４は、第二格納部１２に異なる複数の版が格納されている各機能モジュールについて、格納されている異なる複数の版の中から、電子装置１００の起動時にメモリ上に展開（ロード）される版を選択する。具体的には、第三格納部１４に格納されるパス設定ファイルのパス設定値の値、すなわち、各実体モジュールのパスの値を選択部１４が変更することにより、各機能モジュールについて、起動時にメモリ上に展開される版が選択される。
【００６２】
パス設定ファイルのパス設定値を変更する方法としては、大きく、外部（例えば、利用者や他の機器等）からの直接的な指示に基づいて変更する方法と、外部からの指示を介さず自律的に（例えば、電子装置１００内で生じたイベントの履歴に基づいて）変更する方法に分けられる。
【００６３】
外部からの指示に基づいてパス設定値が変更される場合の例としては、例えば、どの版の機能単位ファイルを起動時にメモリに読み込ませるのかについての利用者からの指示を受け付ける受付部を更に具えるようにして、利用者からの指示を受け付けても良いし、他の機器から送信されたデータを受信する受信部を更に具えるようにして、他のサーバ機器等からの指示を受け付けても良い。以下、本実施形態に係る電子装置１００が利用する実体モジュールの版が選択されるフローについて、図５を参照して説明する。
【００６４】
ステップＳ１０１：使用する機能モジュールの版についての指定を外部から受け付ける。
【００６５】
利用者による指定であれば、例えば、第二格納部１２にセキュリティモジュールとして「互換性重視版」「脆弱性対応版」の２つが格納されている場合に、図６に示したような入力画面によって、「互換性重視版」と「脆弱性対応版」のどちらの版のモジュールを使用するのかについて指定する入力を受け付ける。
【００６６】
また、他の機器からの指定であれば、例えば、第二格納部１２に図７に示すように各実体モジュールの版が格納されている場合に、他のサーバ機器から、図８又は図９に例示したような実体モジュールの種類とそのバージョン番号等の情報を含むデータを受信することで、各実体モジュールの版の指定を受け付ける。
【００６７】
ステップＳ１０２：選択部１４は、パス設定ファイルの各実体モジュールに関するパス設定値について、ステップＳ１０１にて指定された版が存在するディレクトリのパスの値に変更する。
【００６８】
ステップＳ１０３：任意のタイミングで電子装置１００が再起動され、起動時にメインモジュールが、実体モジュール毎にパス設定ファイルに設定されているパス設定値に基づいて各機能モジュールを呼び出すことで、ステップＳ１０１で指定された版の実体モジュールがメモリ２（のＲＡＭ領域）上にロードされることになる。
【００６９】
なお、第二格納部１２に図７に示すように各実体モジュールの版が格納されている電子装置１００において、図９に例示されたデータを受信した場合、起動時に選択される実体モジュールは、セキュリティモジュール：バージョン２．０、認証モジュール：バージョン３．０、スキャンモジュール：バージョン１．０、プリントモジュール：バージョン３．０となる。
【００７０】
ここで、その後にファームウェアが更新されて、セキュリティモジュール：バージョン３．０が第二格納部１２に追加された場合、起動時に選択される実体モジュールは、セキュリティモジュール：バージョン３．０、認証モジュール：バージョン３．０、スキャンモジュール：バージョン１．０、プリントモジュール：バージョン３．０となる。このようにして、外部からの指示内容が変更されなくても、選択される実体モジュールの版が変更されることになる。上記例では、外部からの指示内容が変更されなくてもセキュリティモジュールに関して最新版が選択されることになるが、新しい版のセキュリティモジュールである程、セキュリティ強度が高くなるようにセキュリティモジュールが提供されるようになされていれば、電子装置１００のセキュリティ強度が高くなるように自動的に選択されていくことになる。
【００７１】
次に、電子装置１００内で生じた事象（エラーや通知等の各種イベント）の履歴が、予め定められた条件に適合するか否かに基づいて、実体モジュールの版が選択される例について説明する。
【００７２】
はじめに、エラー履歴が予め定められた条件に適合するか否かに基づいて実体モジュールの版が選択される例について図１０のフロー図を参照しながら説明する。ここでは、各実体モジュールについて、デバッグ用のログ（プログラムの欠陥や問題点を発見するために電子装置内の処理内容についての履歴が逐一記録されたもの）を作成する機能を有する「デバッグ版」と、有さない「通常利用版」との２つの版が予め第二格納部１２に格納されており、予め定められた頻度（ここでは１週間で７回とする）以上のエラーが生じている実体モジュールについては、デバッグ版が選択され、そうでない実体モジュールについては通常利用版が選択される場合の例とする。
【００７３】
ステップＳ２０１：エラー履歴が参照され、機能モジュール毎のエラー発生件数がカウントされる。これは周期的（ここでは１週間毎）に行われ、エラー発生件数はその都度リセットされる。図１１にエラー履歴及びエラー件数の集計結果の例を概念的に示した。
【００７４】
ステップＳ２０２：選択部１４は、ステップＳ２０１でカウントされたエラー発生件数に応じて、パス設定ファイルの各機能モジュールに関するパス設定値を設定する。具体的には、ステップＳ２０１においてカウントされた件数が、７回以上の機能モジュールについては、パス設定値がデバッグ版のディレクトリのパスとなるように設定され、そうでない（６回以下の）機能モジュールについては、パス設定値が通常利用版のディレクトリのパスとなるように設定される。
【００７５】
ステップＳ２０３：任意のタイミングで電子装置１００が再起動され、起動時にメインモジュールによって、機能モジュール毎にパス設定ファイルに設定されているパス設定値に基づいて各機能モジュールが呼び出され、各機能モジュールがメモリ２のＲＡＭ領域上にロードされることになる。
【００７６】
以上の様にして、図１１のエラー履歴を例にした場合、セキュリティモジュールについてはデバッグ版が、他の機能モジュールについては通常利用版が、外部からの直接的な指示を介さずに選択されることになる。
【００７７】
また、以下に示す例の様に、特定の機能に関する利用履歴に基づいて実体モジュールの版が選択されるように成されていても良い。
【００７８】
例えば、電子装置１００のセキュリティに関する機能を司るセキュリティモジュールにおいて、平文の暗号化及び暗号文の復号化に用いる暗号アルゴリズムやデータ改ざんの検出に用いられるハッシュ関数のアルゴリズムについて、対応する（利用可能な）アルゴリズムの機能が組み込まれている場合に、セキュリティモジュールの古い版のモジュールでは対応していたアルゴリズムが、新しい版のモジュールでは対応しないものされることで、新しいモジュールほど、対応するアルゴリズムの種類が少なくなることがある（図１２に例示）。
【００７９】
これは、一般的に両アルゴリズムは年月が経つほど陳腐化していくため、通信のセキュリティ（機密性や完全性等）の確保のためには、古いアルゴリズム程使用しない（できない）ことが好ましいという考え方に基づく。
【００８０】
一方、通信相手となる機器毎に対応するアルゴリズムは当然異なってくるため、利便性の観点からは、極力多くのアルゴリズムを利用できた方が好ましいという考え方もある。しかし、多くのアルゴリズムを利用できるモジュールであるほど、消費されるメモリ量は増大することになる。
【００８１】
そこで、例えば、暗号アルゴリズム及びハッシュ関数のアルゴリズムについて利用された履歴を参照して、利用されているアルゴリズムを全て含み、かつ、対応しているアルゴリズムの種類が最小となる版のセキュリティモジュールが選択されるようするようにしても良い。その結果、セキュリティモジュールのために消費されるメモリ量が必要最低限となる。
【００８２】
また、ファームウェアがインターネットなどを介して提供されること、あるいは、インストールされているファームウェアが改ざんされる可能性もあることから、本実施形態においては、真正性の確保のために、各機能モジュールに（すなわちファイル単位で）付与された電子署名を検証する検証部と、検証部による検証結果に従って電子装置１００の起動処理を制御する制御部とを具えるようにして、メモリ上にロードされるタイミングで真正性の確認がなされるようにしても良い。
【００８３】
公開鍵暗号方式の秘密鍵を電子署名として用いる場合の例を説明すると、各機能モジュールは予めファームウェア作成者の秘密鍵で暗号化された状態で提供及びインストールされる。電子装置１００の起動時に検証部によって署名が検証され、電子署名が正当な署名でない（ファームウェア作成者によって作成されたことが確認できない）モジュール（以下、「海賊版モジュール」ともいう）が選択部１４によって選択されている場合には、電子装置１００の起動処理を停止する、あるいは、選択されているモジュールの代替として、海賊版モジュールではない（ファームウェア作成者によって作成されたことが確認された）他の版のモジュールがメモリ上にロードされるようにしても良い。
【００８４】
なお、上記実施形態においては、ファームウェアの内メインモジュールである実行ファイルのみがメモリ２のＲＯＭ領域に格納され、ライブラリは補助記憶装置３に格納される例を説明したが、ライブラリがメモリ２のＲＯＭ領域に格納される態様でも本発明は実施可能である。
【００８５】
ライブラリがＲＯＭ領域に格納される態様の場合、補助記憶装置３に格納される態様と比べて、ライブラリの各ファイル（実体モジュール）が改ざんされるリスクが低減される。
【００８６】
ライブラリが補助記憶装置３に格納される態様の場合、各実体モジュールのファイル容量や格納される版の数について、ＲＯＭの容量による制約がなくなる。
【符号の説明】
【００８７】
１００  電子装置
１      ＣＰＵ
２      メモリ
３      補助記憶装置
４      通信インタフェース
５      制御バス
１１    第一格納部
１２    第二格納部
１３    第三格納部
１４    選択部
２１    ファームウェア
２２    実行ファイル
２３    ライブラリ
２４    実体ファイル
【図１】
2019049814.tif 000003
【図２】
2019049814.tif 000004
【図３】
2019049814.tif 000005
【図４】
2019049814.tif 000006
【図５】
2019049814.tif 000007
【図６】
2019049814.tif 000008
【図７】
2019049814.tif 000009
【図８】
2019049814.tif 000010
【図９】
2019049814.tif 000011
【図１０】
2019049814.tif 000012
【図１１】
2019049814.tif 000013
【図１２】
2019049814.tif 000014