本発明は、オペレーティングシステムの技術分野に関し、具体的には、オペレーティングシステムリカバリー方法、装置、及び端末デバイスに関する。
ハイバネーション(hibernation)はコンピュータのパワーマネジメントの技術である。先行技術では、コンピュータがハイバネーションモードに入ると、そのコンピュータのオペレーティングシステムのハイバネーション状態情報が、イメージファイルの形式でシステムの不揮発性メモリに保存される。ここでイメージファイルはオペレーティングシステムのイメージファイルであり、オペレーティングシステムのイメージファイルはオリジナルカーネルと、その他のアプリケーションプログラム情報とを含む。コンピュータは、ハイバネーションモードから復帰して、不揮発性メモリに回復すべきオペレーティングシステムのイメージファイルが保存されていることを検知すると、オリジナルカーネルをロードして起動し、起動されたオリジナルカーネルを用いてシステムの不揮発性メモリからオペレーティングシステムのイメージファイルを読み出し、オペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報により、コンピュータのオペレーティングシステムを、ハイバネーションモードに入る前の状態に戻す。先行技術では、オリジナルカーネルはオペレーティングシステムに含まれるカーネルと一致するので、先行技術におけるコンピュータのオペレーティングシステムをリカバーする方法のリカバリー速度は比較的遅い。
本出願は、2013年12月10日に中国特許庁に出願した中国特許出願第201310674990.2号(発明の名称「OPERATING SYSTEM RECOVERY METHOD AND APPARATUS, AND TERMINAL DEVICE」)の優先権を主張するものである。上記出願はここにその全体を参照援用する。
本発明の実施形態は、オペレーティングシステムリカバリー方法及び装置、並びにオペレーティングシステムのリカバリー速度を加速する端末デバイスを提供する。
一態様によると、本発明の一実施形態は、オペレーティングシステムリカバリー方法を提供し、該方法は、レベル2カーネルを起動し、前記起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送し、前記メモリ中の前記レベル2カーネル中のリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにし、前記レベル2カーネルは、前記オリジナルカーネルのイメージファイルをテイラーして、前記テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、前記オペレーティングシステムのイメージファイルは、前記オペレーティングシステムのハイバネーション状態情報を含むステップと、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーするステップとを有する。
第1の態様を参照して、第1のインプリメンテーションにおいて、リカバーすべきオペレーティングシステムのイメージファイルを、前記起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送し、前記メモリにおける前記レベル2カーネルのリカバリープログラムのロケーションが前記メモリのオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップは、前記起動されたレベル2カーネルを用いて、前記リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップを含む。
第1の態様を参照して、第2のインプリメンテーションにおいて、リカバーすべきオペレーティングシステムのイメージファイルを、前記起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送し、前記メモリにおける前記レベル2カーネルのリカバリープログラムのロケーションが前記メモリのオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップは、 前記不揮発性メモリ上の前記オペレーティングシステムのイメージファイルを、前記メモリの専用デバイスパーティションに読み出すステップと、前記起動されたレベル2カーネルを用いて、前記リカバーすべきオペレーティングシステムのイメージファイルを、前記メモリの専用デバイスパーティションから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップとを含む。
第1の態様、第1の態様の第1のインプリメンテーションまたは第1の態様の第2のインプリメンテーションを参照して、第3のインプリメンテーションにおいて、前記レベル2カーネルを起動した後、リカバーすべきオペレーティングシステムのイメージファイルを前記起動されたレベル2カーネルを用いてメモリの指定ロケーションに転送する前に、本発明はさらに、前記レベル2カーネルのイメージファイルをロードするステップをさらに有する。
第1の態様、または第1の態様の第1のインプリメンテーションないし第1の態様の第3のインプリメンテーションのうちいずれかを参照して、第4のインプリメンテーションにおいて、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーした後、オペレーティングシステムがそのハイバネーションモードに入る前に、本発明はさらに、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるステップを含む。
第1の態様の第4のインプリメンテーションを参照して、第5のインプリメンテーションにおいて、前記方法は、さらに、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするステップを含む。
第1の態様、または第1の態様の第1のインプリメンテーションないし第1の態様の第5のインプリメンテーションのうちいずれかを参照して、第6のインプリメンテーションにおいて、前記オペレーティングシステムのハイバネーション状態情報は、前記オペレーティングシステムが前記ハイバネーションモードに入る前に凍結され保存された前記オペレーティングシステムのハイバネーション状態情報、または予め設定され保存された前記オペレーティングシステムのハイバネーション状態情報を含む。
第2の態様によると、本発明の一実施形態は、オペレーティングシステムリカバリー装置を提供し、該装置は、レベル2カーネルを起動するように構成され、前記レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーし、前記テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる、ブートローダユニットと、前記起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、前記メモリにおけるレベル2カーネルのリカバリープログラムのロケーションが前記メモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするよう構成され、前記オペレーティングシステムのイメージファイルが前記オペレーティングシステムのハイバネーション状態情報を含む読み出しユニットと、前記起動されたレベル2カーネルのリカバリープログラムにより、前記メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれた前記オペレーティングシステムのハイバネーション状態情報を用いて、前記オペレーティングシステムを、前記オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーするように構成されているリカバリーユニットとを有する。
第2の態様を参照して、第1のインプリメンテーションにおいて、前記読み出しユニットは、前記起動されたレベル2カーネルを用いて、前記リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じにするように構成され、オペレーティングシステムのイメージファイルはそのオペレーティングシステムのハイバネーション状態情報を含む。
第2の態様を参照して、第2のインプリメンテーションにおいて、前記ブートローダユニットは、さらに、外部記憶上の前記オペレーティングシステムのイメージファイルを、前記メモリの専用デバイスパーティションに読み出すように構成され、前記読み出しユニットは、前記起動されたレベル2カーネルを用いて、前記リカバーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じにするように構成され、前記オペレーティングシステムのイメージファイルは前記オペレーティングシステムのハイバネーション状態情報を含む。
第2の態様、第2の態様の第1のインプリメンテーションまたは第2の態様の第2のインプリメンテーションを参照して、第3のインプリメンテーションにおいて、前記ブートローダユニットは、さらに、前記レベル2カーネルのイメージファイルをロードするように構成されている。
第2の態様、または第2の態様の第1のインプリメンテーションないし第2の態様の第3のインプリメンテーションのうちいずれかを参照して、第4のインプリメンテーションにおいて、前記リカバリーユニットは、さらに、前記レベル2カーネルを、前記リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。
第2の態様の第4のインプリメンテーションを参照して、第5のインプリメンテーションにおいて、リカバリーユニットは、さらに、前記リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、前記オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
第3の態様によると、本発明の一実施形態は、さらに、端末デバイスを提供し、該デバイスは、メモリと、第2の態様、または第2の態様の第1のインプリメンテーションないし第2の態様の第5のインプリメンテーションのいずれかによるオペレーティングシステムリカバリー装置とを有し、前記メモリは、前記端末デバイス上で実行されているオペレーティングシステムのイメージファイルを記憶し、前記オペレーティングシステムリカバリー装置は、前記メモリの指定ロケーションのオペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、前記オペレーティングシステムを、前記オペレーティングシステムがそのオペレーティングシステムのハイバネーションモードに入る前の状態にリカバーするように構成されている。
本発明の実施形態により提供されるオペレーティングシステムリカバリー方法及び装置、並びに端末デバイスにおいて、及び本発明の実施形態により提供される技術的ソリューションにおいて、レベル2カーネルが起動された後、リカバーされるべきオペレーティングシステムのイメージファイルが、起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送され、メモリにおけるレベル2カーネルのリカバリープログラムのロケーションが、メモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。これは、オペレーティングシステムがハイバネーションモードに入る前の状態にスムースにリカバーできるようにするためである。これらのソリューションでは、レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短い。それゆえ、本発明の実施形態により提供される技術的ソリューションによると、オペレーティングシステムの通常のリカバリーをインプリメントに基づいて、レベル2カーネルを起動する時間が短くなるので、オペレーティングシステムのリカバリー速度が加速される。
本発明の実施形態の技術的解決手段をより明確に説明するため、以下に実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。言うまでもなく、以下に説明する添付図面は、本発明の実施形態を示しており、本技術分野の当業者は、創作的努力をせずとも、これらの添付図面から他の図面に想到することもできるだろう。
先行技術における端末デバイスの論理構造を示す図である。
オリジナルカーネルのイメージファイルを示す構造図である。
レベル2カーネルのイメージファイルを示す構造図である。
本発明の一実施形態によるオペレーティングシステムのリカバリー方法を示す方法フローチャートである。
本発明の一実施形態によるオペレーティングシステムの他のリカバリー方法を示す方法フローチャートである。
本発明の一実施形態によるオペレーティングシステムの他のリカバリー方法を示す方法フローチャートである。
本発明の一実施形態によるオペレーティングシステムリカバリー装置を示す構成図である。
本発明の一実施形態による端末デバイスを示す構造図である。
本発明の一実施形態による他の端末デバイスを示す構造ブロック図である。
下記は、本発明の実施形態による添付図面を参照して本発明の実施形態における技術的解決策の明確かつ完全な説明である。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく一部である。本技術分野の当業者によって創作的努力を要せずに本発明の実施形態に基づき得られる他の実施形態はすべて、本発明の保護範囲内に入る。
実施形態1
図3aは、本発明の一実施形態によるオペレーティングシステムのリカバリー方法を示す方法フローチャートである。本発明のこの実施形態により提供されるオペレーティングシステムのリカバリー方法は、コンピュータシステムであって1つの物理的ホストにあるもの、及び複数の物理的ホストにあるものに適用できる。具体的に、コンピュータシステムは、一以上のコンピュータ、ポータブルコンピュータ、ハンドヘルドデバイス(例えば、モバイルフォンやPAD)、またはサーバなどの端末デバイスにある。端末デバイスの論理的構造を説明するため、図1を参照する。
図1を参照して、図1は本発明の一実施形態による端末デバイスの論理的構造を示す図である。標準的なLinuxカーネルを含むオペレーティングシステムが端末デバイスにインストールされ、実行される。端末デバイスは具体的にはパーソナルコンピュータ、スマートフォン、セットトップボックス、GPSなどである。図1に示すように、端末デバイスのハードウェアシステムは、プロセッサ、入力デバイス、ディスプレイデバイス、通信デバイス、メモリ、不揮発性メモリ(不揮発性メモリはハードディスクドライブと光ディスクを含むが、これらに限定されない)などを含み、端末デバイスのハードウェアシステムはさらに出力デバイス、メモリコントローラ、ネットワークインタフェースなどを含む。具体的に、入力デバイスは、キーボード、マウス、タッチスクリーンなどを含み、カーネル空間はハードウェアシステム上で実行され、オペレーティングシステムのLinuxカーネルと、ドライブプログラムとがカーネル空間上で実行され、ユーザ空間がカーネル空間上で実行され、ユーザ空間がC言語ライブラリ、コアライブラリなどを含み、(図示しない)ランチャー(launcher)、メディアプレーヤ(Media Player)、及びブラウザ(Browser)などの様々なアプリケーションプログラムがユーザ空間上で実行される。
具体的に、図3aを参照して、本発明のこの実施形態により提供されるオペレーティングシステムリカバリー方法の具体的な手順は次の通りである:
ステップS303:レベル2カーネルを起動し、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリ中のレベル2カーネル中のリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、オペレーティングシステムのイメージファイルは、オペレーティングシステムのハイバネーション状態情報を含む。
第1に、カーネルは、オペレーティングシステムのコアであり、ハードウェアに基づくソフトウェアエクステンションの第1のレイヤであり、オペレーティングシステムの最も基本的な機能を提供するのに使われ、オペレーティングシステムの動作(working)の基本である。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。オリジナルカーネルはオペレーティングシステムがハイバネーションモードに入る前にオペレーティングシステムに含まれているカーネルを指す。レベル2カーネルを起動するのに必要な時間は、オリジナルカーネルを起動するのにかかる時間より短い。具体的に、オリジナルカーネルのイメージファイルは、複数のコードセグメントを含み、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルに含まれるがオペレーティングシステムのリカバリーには関与しないコードセグメントをカットすることにより、得られる。レベル2カーネルは、オペレーティングシステムのリカバリーに欠かせないコードセグメントのみを含み、オペレーティングシステムのリカバリーに関与しないコードセグメントを含んでいてもよい。要するに、レベル2カーネルのイメージファイル中に含まれるコードセグメント数を、オリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少なくする限り、本発明におけるオペレーティングシステムのリカバリー速度を速くするという目的は、本発明の保護範囲内に入る。
留意点として、レベル2カーネルは、ブートローダプログラムがレベル2カーネルのイメージファイルをロードした後に、起動される。レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
オリジナルカーネルのイメージファイルは、メモリを管理するメモリ管理コードセグメントとファイルを管理するファイル管理コードセグメントのように、オリジナルカーネルの異なる機能に別々に対応するコードセグメントを含む。それに応じて、レベル2カーネルのイメージファイルもコードセグメントを含み、レベル2カーネルのイメージファイルの、オリジナルカーネルのイメージファイルとの違いは、レベル2カーネルのイメージファイルに含まれるコードセグメント数がオリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少ないことにある。それゆえ、レベル2カーネルのイメージファイルをロードするのにかかる時間は、先行技術において、オリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。
図2aと図2bは説明用の例として用いる。図2aに示したオリジナルカーネルのイメージファイルは、6つのコードセグメントを含む。6つとは、リカバリープログラム、プロセス管理、メモリ管理、ファイル管理、プロトコルスタック、及びデバイス管理である。図2aに示したレベル2カーネルのイメージファイルは、3つのコードセグメントを含む。3つとは、リカバリープログラム、メモリ管理、及びプロセス管理である。レベル2カーネルのイメージファイルは、3つのコードセグメントをカットして、オリジナルカーネルのイメージファイルを再コンパイルすることにより得られる。3つとは、ファイル管理、プロトコルスタック、及びデバイス管理である。確かに、よく用いられるLinuxカーネルのイメージファイルに含まれるコードセグメントは、上記の6つのコードセグメントのみに限定されない。Linuxカーネルが端末デバイスの様々なハードウェアデバイスのドライバーを含み得ることは周知である。ドライバーとは、例えば、ディスプレイドライバー、カメラドライバー、ブルートゥースドライバー、フラッシュメモリードライバー、キーボードドライバー、USBドライバー、レンダードライバー、パワー管理ドライバー、WiFiドライバー、及びオーディオドライバーである。それに応じて、Linuxカーネルのイメージファイルも上記の各コードセグメントを含む。
留意点として、レベル2カーネルは、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
リカバリーすべきオペレーティングシステムのイメージファイルは、起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送される。具体的に、図3bに示したステップS313を参照する。起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、図3cに示すステップS323を参照する。起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルのイメージファイルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
留意点として、レベル2カーネルが、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションからメモリの指定ロケーションに転送するとき、本発明の本実施形態のオペレーティングシステムリカバリー方法は、さらにステップ321を含む必要がある。ステップS321では、不揮発性メモリ上のオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションに読み出す。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEM(Persistent Memory)パーティション等であってもよい。
具体的に、組み込みオペレーティングシステムでは、オペレーティングシステムのカーネルが実行される前にブートローダプログラムが実行され、ブートローダプログラムがハードウェア環境を初期化し、メモリ空間のマッピングピクチャを生成し、それにより最終的にオペレーティングシステムのカーネルを呼び出す環境を準備するため、システムのソフトウェア及びハードウェア環境を好適な状態にする。本発明の本実施形態では、パワーオンされた後、まずブートローダプログラムが実行され、次に不揮発性メモリ上にあるオペレーティングシステムのイメージファイルがメモリの専用デバイスパーティションに読み出される。その理由は、ブートローダプログラムが不揮発性メモリからオペレーティングシステムのイメージファイルを読み出す機能を有し、ブートローダプログラムのこの機能を用いて、先行技術におけるカーネルに含まれるファイル管理コードセグメントのファイル管理機能に依存しないようにする。不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリに読み出すブートローダプログラムを用いる機能は、レベル2カーネルのイメージファイルがオリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られたとき、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、オペレーティングシステムレベル2カーネルが、スムースにリカバリーできるという前提の下に、オリジナルカーネルのイメージファイルに含まれるファイルシステムコードセグメントがカットでき、レベル2カーネルがより小さくなり、ローディング速度が速くなることにある。
オペレーティングシステムのハイバネーション状態情報は、オペレーティングシステムがハイバネーションモードに入る前に凍結され保存された、そのオペレーティングシステムのハイバネーション状態情報を指す。オペレーティングシステムのハイバネーション状態情報は、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報、外部デバイスの動作状態を表すデバイスデータ、オリジナルカーネルの動作状態を表すオリジナルカーネルデータ等を含む。具体的に、実行中のオペレーティングシステムのハイバネーションモードがアクティブになると、オペレーティングシステムはメモリとCPUレジスタに含まれるすべての情報のスナップショットを取り、そのスナップショットすなわちオペレーティングシステムのハイバネーション状態情報がイメージファイルに保存される。留意点として、オペレーティングシステムのハイバネーション状態情報は、予め設定され保存された、オペレーティングシステムのハイバネーション状態情報であってもよい。例えば、車載用GPSでは、オペレーティングシステムのハイバネーション状態情報は予め設定されていてもよい。このように、GPSは、起動されるたびに、実際の要求を満たす一定状態に直接リカバリーする。
ステップ305。起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーする。
具体的に、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーすることは、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報と、外部デバイスの動作状態を表すデバイスデータと、オペレーティングシステムがハイバネーションモードに入る前のオリジナルカーネルの動作状態を表すオリジナルカーネルデータとをリカバリーすることにより、オペレーティングシステムが、それがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされることを指す。
さらに、図3bに示したオペレーティングシステムのリカバリー方法を示すフローチャートを参照して、ステップS313において、起動されたレベル2カーネルを用いることにより、リカバーすべきオペレーティングシステムのイメージファイルを不揮発性メモリからメモリの指定ロケーションに転送する前に、本発明は、さらに、レベル2カーネルのイメージファイルをロードするステップを含む。
具体的に、不揮発性メモリ上のオペレーティングシステムのイメージファイルの、メモリの専用デバイスパーティションへの読み出しは、コンピュータがパワーオンされた後に実行されるブートローダプログラムにより実行される。ブートローダプログラムは、システムがパワーオンされた後に実行される最初のソフトウェアコードセグメントである。コンピュータ中のブートローダプログラムは、ハードディスクのMBRにある入出力システムBIOS及びブートローダを含む。ハードウェア検出とリソースアロケーションが完了した後、BIOSは、ハードディスクのMBR中のブートローダを、メモリのシステムに読み出し、コントロールパーミッション(control permission)をブートローダに渡す。ブートローダの主実行タスクは、ハードディスク上のカーネルのイメージファイルをメモリに読み出すことであり、ブートローダは実行のためカーネルのエントリーポイントにジャンプする。
留意点として、それに対応して、図3cに示したオペレーティングシステムリカバリー方法は、レベル2カーネルのイメージファイルをロードするステップも含む。
注目に値することに、図3bを参照して、オペレーティングシステムリカバリー方法は、さらに次のステップS317を含む。ステップS317は、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーした後、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換える。
具体的に、レベル2カーネルのリカバリープログラムは、オペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーする。オペレーティングシステムがリカバーされる時、オペレーティングシステムに含まれるオリジナルカーネルが同時にリカバーされる。メモリ中のオリジナルカーネルに含まれ宇リカバリープログラムのロケーションがそのメモリ中のレベル2カーネルに含まれるリカバリープログラムのロケーションと同じであることに基づいて、オリジナルカーネルはレベル2カーネルを上書きして置き換え、オペレーティングシステムが正しくリカバーされるようにする。
さらに、図3bを参照して、オペレーティングシステムのリカバリーシステムは、さらに次のステップS318を含む。ステップS318は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームする。
具体的に、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされると、オペレーティングシステムに含まれるオリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入った時にサスペンドされた外部デバイスをレジュームして、そのオペレーティングシステムが実行される端末デバイスが、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされるようにする。ここで、外部デバイスはシステムハードディスクなどである。具体的に、オペレーティングシステムは、リカバーされた後、ハイバネーション状態情報中に含まれるデバイスデータにより、そのデバイスがハイバネーションモードに入る前の、そのオペレーティングシステムの状態にリカバーする。
図3cを参照して、この図に示した他の一オペレーティングシステムリカバリー方法は、ステップS327とS328を含むことが分かる。ステップS327とS328の内容はそれぞれステップS317とS318の内容と同じであり、詳細についてはステップ317とS318の説明を参照し、ここでは説明を繰り返さない。
本発明の本実施形態によるオペレーティングシステムリカバリー方法によると、メモリ中のレベル2カーネルのリカバリープログラムのロケーションはメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであるから、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーできることが分かる。また、本発明の本実施形態による技術的ソリューションにより、レベル2カーネルを起動して、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされ、レベル2カーネルがオリジナルカーネルをテイラー及び再コンパイルすることにより得られるので、レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短く、すなわちレベル2カーネルの起動速度が加速される。すなわち、本発明の本実施形態の技術的ソリューションを用いて、オペレーティングシステムの正常なリカバリーを保証することに基づき、オペレーティングシステムのリカバリー速度を加速できる。
さらに、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルより小さいので、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。そのため、オペレーティングシステムのリカバリー速度はさらに加速される。
図4を参照するに、図4は、本発明の一実施形態によるオペレーティングシステムリカバリー装置40を示す構成図である。本発明の本実施形態によるオペレーティングシステムリカバリー装置40は、図1に示した端末デバイスにも適用することもできる。図4に示したように、装置40は、ブートローダユニット43、読み出しユニット45、及びリカバリーユニット47を含む。
ブートローダユニット43は、レベル2カーネルを起動するように構成されている。ここで、レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラー(tailor)し、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。
留意点として、レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。オリジナルカーネルはオペレーティングシステムがハイバネーションモードに入る前にオペレーティングシステムに含まれているカーネルを指す。レベル2カーネルを起動するのに必要な時間は、オリジナルカーネルを起動するのにかかる時間より短い。具体的に、オリジナルカーネルのイメージファイルは、複数のコードセグメントを含み、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルに含まれるがオペレーティングシステムのリカバリーには関与しないコードセグメントをカットすることにより、得られる。レベル2カーネルは、オペレーティングシステムのリカバリーに欠かせないコードセグメントのみを含み、オペレーティングシステムのリカバリーに関与しないコードセグメントを含んでいてもよい。要するに、レベル2カーネルのイメージファイルに含まれるコードセグメント数はオリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少なく、オペレーティングシステムのリカバリー速度を加速するという発明の目的は、本発明においてインプリメントされ得る。特筆に値することとして、レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
特筆に値することとして、ブートローダユニット43はレベル2カーネルのイメージファイルをロードするようにさらに構成され、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。
読み出しユニット45は、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリにおけるレベル2カーネルのリカバリープログラムのロケーションがそのメモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになり、オペレーティングシステムのイメージファイルがオペレーティングシステムのハイバネーション状態情報を含むように構成されている。
留意点として、読み出しユニット45は、レベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
具体的に、読み出しユニット45は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成される。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、読み出しユニット45は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになり、オペレーティングシステムのイメージファイルがオペレーティングシステムのハイバネーション状態情報を含むようにするように構成される。
それに対応して、読み出しユニット45が上記の機能をインプリメントする場合、ブートローダユニット43は、さらに、不揮発性メモリ上のオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションに読み出すように構成されている。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルのイメージファイルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEMパーティション等であってもよい。
リカバリーユニット47は、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーするように構成されている。
オペレーティングシステムのハイバネーション状態情報は、オペレーティングシステムがハイバネーションモードに入る前に凍結され保存された、そのオペレーティングシステムのハイバネーション状態情報を指す。オペレーティングシステムのハイバネーション状態情報は、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報、外部デバイスの動作状態を表すデバイスデータ、オリジナルカーネルの動作状態を表すオリジナルカーネルデータ等を含む。
さらに、リカバリーユニット47は、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。
具体的に、レベル2カーネルのリカバリープログラムは、オペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーする。オペレーティングシステムがリカバーされる時、オペレーティングシステムに含まれるオリジナルカーネルが同時にリカバーされる。メモリ中のオリジナルカーネルに含まれ宇リカバリープログラムのロケーションがそのメモリ中のレベル2カーネルに含まれるリカバリープログラムのロケーションと同じであることに基づいて、オリジナルカーネルはレベル2カーネルを上書きして置き換え、オペレーティングシステムが正しくリカバーされるようにする。
さらに、リカバリーユニット47は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
具体的に、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされると、オペレーティングシステムに含まれるオリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入った時にサスペンドされた外部デバイスをレジュームして、そのオペレーティングシステムが実行される端末デバイスが、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされるようにする。ここで、外部デバイスはシステムハードディスクなどである。
具体的なインプリメンテーションでは、上記各ユニットは、独立エンティティとしてインプリメントされてもよいし、一以上のエンティティとして、いかようにでも組み合わせて、インプリメントされてもよい。上記各ユニットの具体的なインプリメンテーションについて、上記の実施形態を参照し、ここでは詳細な説明は繰り返さない。
本発明の本実施形態によるオペレーティングシステムリカバリー装置がオペレーティングシステムをリカバーするとき、オリジナルカーネルをテイラーし、次にテイラーされたオリジナルカーネルをコンパイルすることによりレベル2カーネルが得られるので、レベル2カーネルを起動するのに係る時間はオリジナルカーネルを起動するのにかかる時間より短い。また、リカバリーユニットは、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。メモリにおけるオリジナルカーネルのリカバリープログラムのロケーションは、そのメモリにおけるレベル2カーネルのリカバリープログラムのロケーションと同じである。これにより、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーすることができる。すなわち、本発明のこの実施形態によるオペレーティングシステムは、通常のリカバリーを保証する状況下において、オペレーティングシステムのリカバリー速度を加速できる。
さらに、本発明の本実施形態によるレベル2カーネルは、レベル2カーネルのイメージファイルがロードされた後に起動され、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、レベル2カーネルのイメージファイルをロードしてレベル2カーネルを起動するのにかかる時間は、オリジナルカーネルのイメージファイルをロードしてオリジナルカーネルを起動するのにかかる時間より短い。そのため、オペレーティングシステムをリカバーするのにかかる時間をさらに短縮でき、オペレーティングシステムのリカバー効率を改善できる。
上記の方法と装置の実施形態をより良くインプリメントするため、図5を参照するに、図5は本発明の一実施形態による端末デバイス50を示す構成ブロック図である。端末デバイス50の論理的構造を示す図は図1に示した。具体的に、図5に示すように、端末デバイス50は、メモリ52とオペレーティングシステムリカバリー装置54とを含む。
メモリ52は、端末デバイス上で実行されるオペレーティングシステムのイメージファイルを記憶するように構成されている。
具体的に、オペレーティングシステムのイメージファイルはそのオペレーティングシステムのハイバネーション状態情報を含む。オペレーティングシステムのハイバネーション状態情報は、オペレーティングシステムがハイバネーションモードに入る前に凍結され保存された、そのオペレーティングシステムのハイバネーション状態情報を指す。オペレーティングシステムのハイバネーション状態情報は、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報、外部デバイスの動作状態を表すデバイスデータ、オリジナルカーネルの動作状態を表すオリジナルカーネルデータ等を含む。具体的に、実行中にオペレーティングシステムのハイバネーションモードがアクティブになると、オペレーティングシステムはメモリとCPUレジスタに含まれるすべての情報のスナップショットを取り、そのスナップショットすなわちオペレーティングシステムのハイバネーション状態情報がイメージファイルに保存される。
もちろん、オペレーティングシステムのハイバネーション状態情報は、予め設定され保存された、オペレーティングシステムのハイバネーション状態情報であってもよい。例えば、車載用GPSでは、オペレーティングシステムのハイバネーション状態情報は予め設定されていてもよい。このように、GPSは、起動されるたびに、実際の要求を満たす一定状態に直接リカバリーする。
オペレーティングシステムリカバリー装置54は、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたハイバネーション状態情報を用いて、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーするよう構成されている。
留意点として、オペレーティングシステムリカバリー装置54は、レベル2カーネルを起動し、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリ中のレベル2カーネル中のリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、オペレーティングシステムのイメージファイルは、オペレーティングシステムのハイバネーション状態情報を含む。メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、起動されたレベル2カーネルのリカバリープログラムを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーする。
ブートローダプログラムがレベル2カーネルのイメージファイルをロードした後、レベル2カーネルが起動され、オリジナルカーネルのイメージファイルをテイラー(tailor)し、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより、レベル2カーネルのイメージファイルが得られる。具体的に、オリジナルカーネルのイメージファイルは複数のコードセグメントを含む。オリジナルカーネルのイメージファイルと比較して、レベル2カーネルのイメージファイルは、少なくとも、オリジナルカーネルのイメージファイルに含まれる複数のコードセグメントのファイル管理コードセグメントをカットし、オリジナルカーネルのイメージファイルを再コンパイルすることにより得られる。
特筆に値する点として、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
留意点として、レベル2カーネルは、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
本発明の一実施形態として、オペレーティングシステムリカバリー装置54は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、オペレーティングシステムリカバリー装置54は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。
リカバーすべきオペレーティングシステムのイメージファイルが、起動されたレベル2カーネルを用いて、メモリの専用デバイスパーティションからメモリの指定ロケーションに転送され、メモリにおけるレベル2カーネルのリカバリープログラムのロケーションが、そのメモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする前に、オペレーティングシステムリカバリー装置54は、不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出すように構成されている。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルのイメージファイルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEMパーティション等であってもよい。
特筆すべき点として、さらに、オペレーティングシステムリカバリー装置54は、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。また、オペレーティングシステムリカバリー装置54は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
本発明の本実施形態による端末デバイスを用いて、その端末デバイス上のオペレーティングシステムをリカバーする時、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションはメモリ中のレベル2カーネルのリカバリープログラムのロケーションと同じであるから、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーできることが分かる。また、本発明の本実施形態による技術的ソリューションにより、レベル2カーネルを起動して、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされ、レベル2カーネルがオリジナルカーネルをテイラー及び再コンパイルすることにより得られるので、レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短く、すなわちレベル2カーネルの起動速度が加速される。すなわち、本発明のこの実施形態によるオペレーティングシステムは、通常のリカバリーを保証する状況下において、オペレーティングシステムのリカバリー速度を加速できる。
さらに、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルより小さいので、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。そのため、オペレーティングシステムのリカバリー速度はさらに改善される。
上記の方法と装置の実施形態をより良くインプリメントするため、図6を参照するに、図6は本発明の一実施形態による端末デバイス600を示す構成ブロック図である。端末デバイス600の論理的構造を示す図は図1に示した。具体的に、図6に示すように、端末デバイス600は、少なくとも1つのプロセッサ601、少なくとも1つのネットワークインタフェース604またはその他のユーザインタフェース603、記憶デバイス605、及び少なくとも1つの通信バス602を含む。通信バス602はこれらのコンポーネント間の接続通信をインプリメントするように構成されている。端末デバイス600は、任意的に、ユーザインタフェース603を含み、ディスプレイ(例えば、タッチスクリーン、LCD、CTR、ホログラフィックイメージング(Holographic)、プロジェクタ(Projector))、キーボード、またはクリックデバイス(例えば、マウス、トラックボール、タッチパッド、またはタッチスクリーン)を含む。
記憶デバイス605は、リードオンリーメモリとランダムアクセスメモリを含み、プロセッサ用の命令とデータを提供する。記憶デバイス605の一部は、さらに、不揮発性ランダムアクセスメモリ(NVRAM)を含み得る。
幾つかの実施形態では、記憶デバイス605は、実行モジュールまたはデータ構造、実行モジュールまたはデータ構造のサブセット、あるいは実行モジュールまたはデータ構造の拡張セット(extension set)などの要素を記憶する。
オペレーティングシステム6051は、フレームワークレイヤ、コアライブラリレイヤ、ドライバレイヤなどの様々なシステムプログラムを含み、様々な基本的サービスをインプリメントし、ハードウェアベースのタスクを処理するように構成されている。
アプリケーションプログラムモジュール6052は、ランチャー(launcher)、メディアプレーヤ(Media Player)、ブラウザ(Browser)など様々なアプリケーションプログラムを含み、様々なアプリケーションサービスをインプリメントするように構成されている。
本発明のこの実施形態では、記憶デバイス605に記憶されたプログラムまたは命令を起動することにより、プロセッサ601は、レベル2カーネルを起動し、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリ中のレベル2カーネル中のリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、オペレーティングシステムのイメージファイルは、オペレーティングシステムのハイバネーション状態情報を含む。メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、起動されたレベル2カーネルのリカバリープログラムにより、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーする。
特筆すべき点として、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルに含まれる、オペレーティングシステムのリカバリーとは無関係のコードセグメントをテイラーすることにより得られる。レベル2カーネルは、オペレーティングシステムのリカバリーに欠かせないコードセグメントのみを含み、オペレーティングシステムのリカバリーに関与しないコードセグメントを含んでいてもよい。要するに、レベル2カーネルのイメージファイル中に含まれるコードセグメント数を、オリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少なくする限り、本発明におけるオペレーティングシステムのリカバリー速度を速くするという目的は、本発明の保護範囲内に入る。 特筆に値する点として、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
留意点として、レベル2カーネルは、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
本発明の一実施形態として、プロセッサ601は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、プロセッサ601は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。それに対応して、プロセッサ601は、特に、リカバーすべきオペレーティングシステムのイメージファイルを、起動されたレベル2カーネルを用いて、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送するように構成されている場合、不揮発性メモリ上のオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションに読み込むようにさらに構成されている。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルのイメージファイルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEMパーティション等であってもよい。
さらに、プロセッサ601はレベル2カーネルのイメージファイルをロードするようにさらに構成され、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。
さらに、プロセッサ601は、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。
具体的に、レベル2カーネルのリカバリープログラムは、オペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーする。オペレーティングシステムがリカバーされる時、オペレーティングシステムに含まれるオリジナルカーネルが同時にリカバーされる。メモリ中のオリジナルカーネルに含まれ宇リカバリープログラムのロケーションがそのメモリ中のレベル2カーネルに含まれるリカバリープログラムのロケーションと同じであることに基づいて、オリジナルカーネルはレベル2カーネルを上書きして置き換え、オペレーティングシステムが正しくリカバーされるようにする。
さらに、プロセッサ601は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
具体的に、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされると、オペレーティングシステムに含まれるオリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入った時にサスペンドされた外部デバイスをレジュームして、そのオペレーティングシステムが実行される端末デバイスが、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされるようにする。ここで、外部デバイスはシステムハードディスクなどである。
本発明の本実施形態による端末デバイスを用いて、その端末デバイス上のオペレーティングシステムをリカバーする時、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションはメモリ中のレベル2カーネルのリカバリープログラムのロケーションと同じであるから、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーできることが分かる。まず、本発明の本実施形態による技術的ソリューションにより、レベル2カーネルを起動して、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされ、レベル2カーネルがオリジナルカーネルをテイラー及び再コンパイルすることにより得られるので、レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短く、すなわちレベル2カーネルの起動速度が加速される。本発明の本実施形態の端末デバイスを用いることにより、オペレーティングシステムの通常のリカバリーを保証する状況下において、オペレーティングシステムをリカバーする効率が改善される。
さらに、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルより小さいので、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。それにより、オペレーティングシステムをリカバーするのにかかる時間をさらに短縮でき、オペレーティングシステムをリカバーする効率が向上する。
上記の複数の実施形態間で相互参照をすることもできる。
本技術分野の当業者は、本明細書に開示した実施形態で説明した例と組み合わせて、ユニットとアルゴリズムステップは、電子的ハードウェアや、コンピュータソフトウェアと電子的ハードウェアとの組み合わせによりインプリメントできることが分かるだろう。機能がハードウェアで実行されるかソフトウェアで実行されるかは、具体的なアプリケーションと、技術的ソリューションのデザイン制約条件に依存する。本技術分野の当業者は、異なる方法を用いて、具体的な各アプリケーションの説明した機能をインプリメントするかも知れないが、そのインプリメンテーションが本発明の範囲を超えていると考えてはならない。
当業者には言うまでもなく、便宜上かつ説明を簡明にするために、上記のシステム、装置、及びユニットの詳細な動作プロセスについて、方法の実施形態の対応するプロセスを参照し、詳細はここでは説明しない。
本発明で提供される実施形態においては、言うまでもなく、開示のシステム、装置、及び方法は他のやり方で実施してもよい。例えば、開示の装置の実施形態は単なる例である。例えば、ユニットの分割は単なる論理的機能の分割であり、実際の実施では他の分割をしてもよい。例えば、複数のユニットやコンポーネントを他のシステムに結合しても集積してもよく、特徴の一部を無視しても実行しなくてもよい。また、表示又は説明した相互結合、直接結合、又は通信接続は、何らかのインタフェースを通じて実施してもよい。装置やユニット間の間接的な結合や通信接続は、電子的、機械的、又はその他の形式で実施できる。
別々のパーツとして説明したユニットは、物理的に離れていてもいなくてもよく、ユニットとして表示したパーツは物理的なパーツであってもなくてもよく、一箇所にあっても、複数のネットワークユニットに分散していてもよい。一部又は全部のユニットは、実施形態のソリューションの目的を達成するために実際の必要性に応じて選択できる。
また、本発明の実施形態の機能ユニットは、一処理ユニットに集積されてもよいし、各ユニットが物理的に孤立して存在しても良いし、2以上のユニットが一ユニットに集積されてもよい。
機能は、ソフトウェアの機能ユニットの形式で実施され、独立の製品として販売され使用される時、コンピュータ読み取り可能記憶媒体中に記憶されてもよい。かかる理解に基づき、本発明の技術的解決策は、又は先行技術に貢献する部分は、又は技術的解決策の一部は、ソフトウェア製品の形式で実施することができる。ソフトウェア製品は、記憶媒体に記憶され、本発明の実施形態で説明した方法のステップの全部又は一部を実行するようにコンピュータデバイス(例えば、パーソナルコンピュータ、サーバ、ネットワークデバイスなど)、またはプロセッサに命令する命令を含む。上記の記憶媒体は、次のものを含む:プログラムコードを記憶できる任意の媒体であって、例えばUSBフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、又は光ディスクなど。
上記の説明は、単に本発明具体的なインプリメンテーション方法であり、本発明の保護範囲の限定を意図したものではない。本発明で開示した技術的範囲内における当業者により容易に想到される変形や置換は、本発明の保護範囲に入るものである。よって、本発明の保護範囲は特許請求の範囲に基づく。
本発明は、オペレーティングシステムの技術分野に関し、具体的には、オペレーティングシステムリカバリー方法、装置、及び端末デバイスに関する。
ハイバネーション(hibernation)はコンピュータのパワーマネジメントの技術である。先行技術では、コンピュータがハイバネーションモードに入ると、そのコンピュータのオペレーティングシステムのハイバネーション状態情報が、イメージファイルの形式でシステムの不揮発性メモリに保存される。ここでイメージファイルはオペレーティングシステムのイメージファイルであり、オペレーティングシステムのイメージファイルはオリジナルカーネルと、その他のアプリケーションプログラム情報とを含む。コンピュータは、ハイバネーションモードから復帰して、不揮発性メモリに回復すべきオペレーティングシステムのイメージファイルが保存されていることを検知すると、オリジナルカーネルをロードして起動し、起動されたオリジナルカーネルを用いてシステムの不揮発性メモリからオペレーティングシステムのイメージファイルを読み出し、オペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報により、コンピュータのオペレーティングシステムを、ハイバネーションモードに入る前の状態に戻す。先行技術では、オリジナルカーネルはオペレーティングシステムに含まれるカーネルと一致するので、先行技術におけるコンピュータのオペレーティングシステムをリカバーする方法のリカバリー速度は比較的遅い。
本出願は、2013年12月10日に中国特許庁に出願した中国特許出願第201310674990.2号(発明の名称「OPERATING SYSTEM RECOVERY METHOD AND APPARATUS, AND TERMINAL DEVICE」)の優先権を主張するものである。上記出願はここにその全体を参照援用する。
本発明の実施形態は、オペレーティングシステムリカバリー方法及び装置、並びにオペレーティングシステムのリカバリー速度を加速する端末デバイスを提供する。
一態様によると、本発明の一実施形態は、オペレーティングシステムリカバリー方法を提供し、該方法は、レベル2カーネルを起動し、前記起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送し、前記メモリ中の前記レベル2カーネル中のリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにし、前記レベル2カーネルは、前記オリジナルカーネルのイメージファイルをテイラーして、前記テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、前記オペレーティングシステムのイメージファイルは、前記オペレーティングシステムのハイバネーション状態情報を含むステップと、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーするステップとを有する。
第1の態様を参照して、第1のインプリメンテーションにおいて、リカバーすべきオペレーティングシステムのイメージファイルを、前記起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送し、前記メモリにおける前記レベル2カーネルのリカバリープログラムのロケーションが前記メモリのオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップは、前記起動されたレベル2カーネルを用いて、前記リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップを含む。
第1の態様を参照して、第2のインプリメンテーションにおいて、リカバーすべきオペレーティングシステムのイメージファイルを、前記起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送し、前記メモリにおける前記レベル2カーネルのリカバリープログラムのロケーションが前記メモリのオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップは、 前記不揮発性メモリ上の前記オペレーティングシステムのイメージファイルを、前記メモリの専用デバイスパーティションに読み出すステップと、前記起動されたレベル2カーネルを用いて、前記リカバーすべきオペレーティングシステムのイメージファイルを、前記メモリの専用デバイスパーティションから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするステップとを含む。
第1の態様、第1の態様の第1のインプリメンテーションまたは第1の態様の第2のインプリメンテーションを参照して、第3のインプリメンテーションにおいて、前記レベル2カーネルを起動した後、リカバーすべきオペレーティングシステムのイメージファイルを前記起動されたレベル2カーネルを用いてメモリの指定ロケーションに転送する前に、本発明はさらに、前記レベル2カーネルのイメージファイルをロードするステップをさらに有する。
第1の態様、または第1の態様の第1のインプリメンテーションないし第1の態様の第3のインプリメンテーションのうちいずれかを参照して、第4のインプリメンテーションにおいて、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーした後、オペレーティングシステムがそのハイバネーションモードに入る前に、本発明はさらに、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるステップを含む。
第1の態様の第4のインプリメンテーションを参照して、第5のインプリメンテーションにおいて、前記方法は、さらに、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするステップを含む。
第1の態様、または第1の態様の第1のインプリメンテーションないし第1の態様の第5のインプリメンテーションのうちいずれかを参照して、第6のインプリメンテーションにおいて、前記オペレーティングシステムのハイバネーション状態情報は、前記オペレーティングシステムが前記ハイバネーションモードに入る前に凍結され保存された前記オペレーティングシステムのハイバネーション状態情報、または予め設定され保存された前記オペレーティングシステムのハイバネーション状態情報を含む。
第2の態様によると、本発明の一実施形態は、オペレーティングシステムリカバリー装置を提供し、該装置は、レベル2カーネルを起動するように構成され、前記レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーし、前記テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる、ブートローダユニットと、前記起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、前記メモリにおけるレベル2カーネルのリカバリープログラムのロケーションが前記メモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするよう構成され、前記オペレーティングシステムのイメージファイルが前記オペレーティングシステムのハイバネーション状態情報を含む読み出しユニットと、前記起動されたレベル2カーネルのリカバリープログラムにより、前記メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれた前記オペレーティングシステムのハイバネーション状態情報を用いて、前記オペレーティングシステムを、前記オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーするように構成されているリカバリーユニットとを有する。
第2の態様を参照して、第1のインプリメンテーションにおいて、前記読み出しユニットは、前記起動されたレベル2カーネルを用いて、前記リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じにするように構成され、オペレーティングシステムのイメージファイルはそのオペレーティングシステムのハイバネーション状態情報を含む。
第2の態様を参照して、第2のインプリメンテーションにおいて、前記ブートローダユニットは、さらに、外部記憶上の前記オペレーティングシステムのイメージファイルを、前記メモリの専用デバイスパーティションに読み出すように構成され、前記読み出しユニットは、前記起動されたレベル2カーネルを用いて、前記リカバーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、前記メモリの指定ロケーションに転送し、前記メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、前記メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じにするように構成され、前記オペレーティングシステムのイメージファイルは前記オペレーティングシステムのハイバネーション状態情報を含む。
第2の態様、第2の態様の第1のインプリメンテーションまたは第2の態様の第2のインプリメンテーションを参照して、第3のインプリメンテーションにおいて、前記ブートローダユニットは、さらに、前記レベル2カーネルのイメージファイルをロードするように構成されている。
第2の態様、または第2の態様の第1のインプリメンテーションないし第2の態様の第3のインプリメンテーションのうちいずれかを参照して、第4のインプリメンテーションにおいて、前記リカバリーユニットは、さらに、前記レベル2カーネルを、前記リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。
第2の態様の第4のインプリメンテーションを参照して、第5のインプリメンテーションにおいて、リカバリーユニットは、さらに、前記リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、前記オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
第3の態様によると、本発明の一実施形態は、さらに、端末デバイスを提供し、該デバイスは、メモリと、第2の態様、または第2の態様の第1のインプリメンテーションないし第2の態様の第5のインプリメンテーションのいずれかによるオペレーティングシステムリカバリー装置とを有し、前記メモリは、前記端末デバイス上で実行されているオペレーティングシステムのイメージファイルを記憶し、前記オペレーティングシステムリカバリー装置は、前記メモリの指定ロケーションのオペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、前記オペレーティングシステムを、前記オペレーティングシステムがそのオペレーティングシステムのハイバネーションモードに入る前の状態にリカバーするように構成されている。
本発明の実施形態により提供されるオペレーティングシステムリカバリー方法及び装置、並びに端末デバイスにおいて、及び本発明の実施形態により提供される技術的ソリューションにおいて、レベル2カーネルが起動された後、リカバーされるべきオペレーティングシステムのイメージファイルが、起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送され、メモリにおけるレベル2カーネルのリカバリープログラムのロケーションが、メモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。これは、オペレーティングシステムがハイバネーションモードに入る前の状態にスムースにリカバーできるようにするためである。これらのソリューションでは、レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短い。それゆえ、本発明の実施形態により提供される技術的ソリューションによると、オペレーティングシステムの通常のリカバリーをインプリメントに基づいて、レベル2カーネルを起動する時間が短くなるので、オペレーティングシステムのリカバリー速度が加速される。
本発明の実施形態の技術的解決手段をより明確に説明するため、以下に実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。言うまでもなく、以下に説明する添付図面は、本発明の実施形態を示しており、本技術分野の当業者は、創作的努力をせずとも、これらの添付図面から他の図面に想到することもできるだろう。
先行技術における端末デバイスの論理構造を示す図である。
オリジナルカーネルのイメージファイルを示す構造図である。
レベル2カーネルのイメージファイルを示す構造図である。
本発明の一実施形態によるオペレーティングシステムのリカバリー方法を示す方法フローチャートである。
本発明の一実施形態によるオペレーティングシステムの他のリカバリー方法を示す方法フローチャートである。
本発明の一実施形態によるオペレーティングシステムの他のリカバリー方法を示す方法フローチャートである。
本発明の一実施形態によるオペレーティングシステムリカバリー装置を示す構成図である。
本発明の一実施形態による端末デバイスを示す構造図である。
本発明の一実施形態による他の端末デバイスを示す構造ブロック図である。
下記は、本発明の実施形態による添付図面を参照して本発明の実施形態における技術的解決策の明確かつ完全な説明である。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく一部である。本技術分野の当業者によって創作的努力を要せずに本発明の実施形態に基づき得られる他の実施形態はすべて、本発明の保護範囲内に入る。
実施形態1
図3aは、本発明の一実施形態によるオペレーティングシステムのリカバリー方法を示す方法フローチャートである。本発明のこの実施形態により提供されるオペレーティングシステムのリカバリー方法は、コンピュータシステムであって1つの物理的ホストにあるもの、及び複数の物理的ホストにあるものに適用できる。具体的に、コンピュータシステムは、一以上のコンピュータ、ポータブルコンピュータ、ハンドヘルドデバイス(例えば、モバイルフォンやPAD)、またはサーバなどの端末デバイスにある。端末デバイスの論理的構造を説明するため、図1を参照する。
図1を参照して、図1は本発明の一実施形態による端末デバイスの論理的構造を示す図である。標準的なLinuxカーネルを含むオペレーティングシステムが端末デバイスにインストールされ、実行される。端末デバイスは具体的にはパーソナルコンピュータ、スマートフォン、セットトップボックス、GPSなどである。図1に示すように、端末デバイスのハードウェアシステムは、プロセッサ、入力デバイス、ディスプレイデバイス、通信デバイス、メモリ、不揮発性メモリ(不揮発性メモリはハードディスクドライブと光ディスクを含むが、これらに限定されない)などを含み、端末デバイスのハードウェアシステムはさらに出力デバイス、メモリコントローラ、ネットワークインタフェースなどを含む。具体的に、入力デバイスは、キーボード、マウス、タッチスクリーンなどを含み、カーネル空間はハードウェアシステム上で実行され、オペレーティングシステムのLinuxカーネルと、ドライブプログラムとがカーネル空間上で実行され、ユーザ空間がカーネル空間上で実行され、ユーザ空間がC言語ライブラリ、コアライブラリなどを含み、(図示しない)ランチャー(launcher)、メディアプレーヤ(Media Player)、及びブラウザ(Browser)などの様々なアプリケーションプログラムがユーザ空間上で実行される。
具体的に、図3aを参照して、本発明のこの実施形態により提供されるオペレーティングシステムリカバリー方法の具体的な手順は次の通りである:
ステップS303:レベル2カーネルを起動し、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリ中のレベル2カーネル中のリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、オペレーティングシステムのイメージファイルは、オペレーティングシステムのハイバネーション状態情報を含む。
第1に、カーネルは、オペレーティングシステムのコアであり、ハードウェアに基づくソフトウェアエクステンションの第1のレイヤであり、オペレーティングシステムの最も基本的な機能を提供するのに使われ、オペレーティングシステムの動作(working)の基本である。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。オリジナルカーネルはオペレーティングシステムがハイバネーションモードに入る前にオペレーティングシステムに含まれているカーネルを指す。レベル2カーネルを起動するのに必要な時間は、オリジナルカーネルを起動するのにかかる時間より短い。具体的に、オリジナルカーネルのイメージファイルは、複数のコードセグメントを含み、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルに含まれるがオペレーティングシステムのリカバリーには関与しないコードセグメントをカットすることにより、得られる。レベル2カーネルは、オペレーティングシステムのリカバリーに欠かせないコードセグメントのみを含み、オペレーティングシステムのリカバリーに関与しないコードセグメントを含んでいてもよい。要するに、レベル2カーネルのイメージファイル中に含まれるコードセグメント数を、オリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少なくする限り、本発明におけるオペレーティングシステムのリカバリー速度を速くするという目的は、本発明の保護範囲内に入る。
留意点として、レベル2カーネルは、ブートローダプログラムがレベル2カーネルのイメージファイルをロードした後に、起動される。レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
オリジナルカーネルのイメージファイルは、メモリを管理するメモリ管理コードセグメントとファイルを管理するファイル管理コードセグメントのように、オリジナルカーネルの異なる機能に別々に対応するコードセグメントを含む。それに応じて、レベル2カーネルのイメージファイルもコードセグメントを含み、レベル2カーネルのイメージファイルの、オリジナルカーネルのイメージファイルとの違いは、レベル2カーネルのイメージファイルに含まれるコードセグメント数がオリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少ないことにある。それゆえ、レベル2カーネルのイメージファイルをロードするのにかかる時間は、先行技術において、オリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。
図2aと図2bは説明用の例として用いる。図2aに示したオリジナルカーネルのイメージファイルは、6つのコードセグメントを含む。6つとは、リカバリープログラム、プロセス管理、メモリ管理、ファイル管理、プロトコルスタック、及びデバイス管理である。図2bに示したレベル2カーネルのイメージファイルは、3つのコードセグメントを含む。3つとは、リカバリープログラム、メモリ管理、及びプロセス管理である。レベル2カーネルのイメージファイルは、3つのコードセグメントをカットして、オリジナルカーネルのイメージファイルを再コンパイルすることにより得られる。3つとは、ファイル管理、プロトコルスタック、及びデバイス管理である。確かに、よく用いられるLinuxカーネルのイメージファイルに含まれるコードセグメントは、上記の6つのコードセグメントのみに限定されない。Linuxカーネルが端末デバイスの様々なハードウェアデバイスのドライバーを含み得ることは周知である。ドライバーとは、例えば、ディスプレイドライバー、カメラドライバー、ブルートゥースドライバー、フラッシュメモリードライバー、キーボードドライバー、USBドライバー、レンダードライバー、パワー管理ドライバー、WiFiドライバー、及びオーディオドライバーである。それに応じて、Linuxカーネルのイメージファイルも上記の各コードセグメントを含む。
留意点として、レベル2カーネルは、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
リカバリーすべきオペレーティングシステムのイメージファイルは、起動されたレベル2カーネルを用いて、メモリの指定ロケーションに転送される。具体的に、図3bに示したステップS313を参照する。起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、図3cに示すステップS323を参照する。起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
留意点として、レベル2カーネルが、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションからメモリの指定ロケーションに転送するとき、本発明の本実施形態のオペレーティングシステムリカバリー方法は、さらにステップ321を含む必要がある。ステップS321では、不揮発性メモリ上のオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションに読み出す。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEM(Persistent Memory)パーティション等であってもよい。
具体的に、組み込みオペレーティングシステムでは、オペレーティングシステムのカーネルが実行される前にブートローダプログラムが実行され、ブートローダプログラムがハードウェア環境を初期化し、メモリ空間のマッピングピクチャを生成し、それにより最終的にオペレーティングシステムのカーネルを呼び出す環境を準備するため、システムのソフトウェア及びハードウェア環境を好適な状態にする。本発明の本実施形態では、パワーオンされた後、まずブートローダプログラムが実行され、次に不揮発性メモリ上にあるオペレーティングシステムのイメージファイルがメモリの専用デバイスパーティションに読み出される。その理由は、ブートローダプログラムが不揮発性メモリからオペレーティングシステムのイメージファイルを読み出す機能を有し、ブートローダプログラムのこの機能を用いて、先行技術におけるカーネルに含まれるファイル管理コードセグメントのファイル管理機能に依存しないようにする。不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリに読み出すブートローダプログラムを用いる機能は、レベル2カーネルのイメージファイルがオリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られたとき、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、オペレーティングシステムレベル2カーネルが、スムースにリカバリーできるという前提の下に、オリジナルカーネルのイメージファイルに含まれるファイル管理システムコードセグメントがカットでき、レベル2カーネルがより小さくなり、ローディング速度が速くなることにある。
オペレーティングシステムのハイバネーション状態情報は、オペレーティングシステムがハイバネーションモードに入る前に凍結され保存された、そのオペレーティングシステムのハイバネーション状態情報を指す。オペレーティングシステムのハイバネーション状態情報は、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報、外部デバイスの動作状態を表すデバイスデータ、オリジナルカーネルの動作状態を表すオリジナルカーネルデータ等を含む。具体的に、実行中のオペレーティングシステムのハイバネーションモードがアクティブになると、オペレーティングシステムはメモリとCPUレジスタに含まれるすべての情報のスナップショットを取り、そのスナップショットすなわちオペレーティングシステムのハイバネーション状態情報がイメージファイルに保存される。留意点として、オペレーティングシステムのハイバネーション状態情報は、予め設定され保存された、オペレーティングシステムのハイバネーション状態情報であってもよい。例えば、車載用GPSでは、オペレーティングシステムのハイバネーション状態情報は予め設定されていてもよい。このように、GPSは、起動されるたびに、実際の要求を満たす一定状態に直接リカバリーする。
ステップ305。起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーする。
具体的に、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーすることは、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報と、外部デバイスの動作状態を表すデバイスデータと、オペレーティングシステムがハイバネーションモードに入る前のオリジナルカーネルの動作状態を表すオリジナルカーネルデータとをリカバリーすることにより、オペレーティングシステムが、それがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされることを指す。
さらに、図3bに示したオペレーティングシステムのリカバリー方法を示すフローチャートを参照して、ステップS313において、起動されたレベル2カーネルを用いることにより、リカバーすべきオペレーティングシステムのイメージファイルを不揮発性メモリからメモリの指定ロケーションに転送する前に、本発明は、さらに、レベル2カーネルのイメージファイルをロードするステップを含む。
具体的に、不揮発性メモリ上のオペレーティングシステムのイメージファイルの、メモリの専用デバイスパーティションへの読み出しは、コンピュータがパワーオンされた後に実行されるブートローダプログラムにより実行される。ブートローダプログラムは、システムがパワーオンされた後に実行される最初のソフトウェアコードセグメントである。コンピュータ中のブートローダプログラムは、ハードディスクのMBRにある基本入出力システム(BIOS)及びブートローダを含む。ハードウェア検出とリソースアロケーションが完了した後、BIOSは、ハードディスクのMBR中のブートローダを、メモリのシステムに読み出し、コントロールパーミッション(control permission)をブートローダに渡す。ブートローダの主実行タスクは、ハードディスク上のカーネルのイメージファイルをメモリに読み出すことであり、ブートローダは実行のためカーネルのエントリーポイントにジャンプする。
留意点として、それに対応して、図3cに示したオペレーティングシステムリカバリー方法は、レベル2カーネルのイメージファイルをロードするステップも含む。
注目に値することに、図3bを参照して、オペレーティングシステムリカバリー方法は、さらに次のステップS317を含む。ステップS317は、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーした後、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換える。
具体的に、レベル2カーネルのリカバリープログラムは、オペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーする。オペレーティングシステムがリカバーされる時、オペレーティングシステムに含まれるオリジナルカーネルが同時にリカバーされる。メモリ中のオリジナルカーネルに含まれ宇リカバリープログラムのロケーションがそのメモリ中のレベル2カーネルに含まれるリカバリープログラムのロケーションと同じであることに基づいて、オリジナルカーネルはレベル2カーネルを上書きして置き換え、オペレーティングシステムが正しくリカバーされるようにする。
さらに、図3bを参照して、オペレーティングシステムのリカバリーシステムは、さらに次のステップS318を含む。ステップS318は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームする。
具体的に、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされると、オペレーティングシステムに含まれるオリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入った時にサスペンドされた外部デバイスをレジュームして、そのオペレーティングシステムが実行される端末デバイスが、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされるようにする。ここで、外部デバイスはシステムハードディスクなどである。具体的に、オペレーティングシステムは、リカバーされた後、ハイバネーション状態情報中に含まれるデバイスデータにより、そのデバイスがハイバネーションモードに入る前の、そのオペレーティングシステムの状態にリカバーする。
図3cを参照して、この図に示した他の一オペレーティングシステムリカバリー方法は、ステップS327とS328を含むことが分かる。ステップS327とS328の内容はそれぞれステップS317とS318の内容と同じであり、詳細についてはステップ317とS318の説明を参照し、ここでは説明を繰り返さない。
本発明の本実施形態によるオペレーティングシステムリカバリー方法によると、メモリ中のレベル2カーネルのリカバリープログラムのロケーションはメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであるから、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーできることが分かる。また、本発明の本実施形態による技術的ソリューションにより、レベル2カーネルを起動して、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされ、レベル2カーネルがオリジナルカーネルをテイラー及び再コンパイルすることにより得られるので、レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短く、すなわちレベル2カーネルの起動速度が加速される。すなわち、本発明の本実施形態の技術的ソリューションを用いて、オペレーティングシステムの正常なリカバリーを保証することに基づき、オペレーティングシステムのリカバリー速度を加速できる。
さらに、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルより小さいので、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。そのため、オペレーティングシステムのリカバリー速度はさらに加速される。
図4を参照するに、図4は、本発明の一実施形態によるオペレーティングシステムリカバリー装置40を示す構成図である。本発明の本実施形態によるオペレーティングシステムリカバリー装置40は、図1に示した端末デバイスにも適用することもできる。図4に示したように、装置40は、ブートローダユニット43、読み出しユニット45、及びリカバリーユニット47を含む。
ブートローダユニット43は、レベル2カーネルを起動するように構成されている。ここで、レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラー(tailor)し、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。
留意点として、レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。オリジナルカーネルはオペレーティングシステムがハイバネーションモードに入る前にオペレーティングシステムに含まれているカーネルを指す。レベル2カーネルを起動するのに必要な時間は、オリジナルカーネルを起動するのにかかる時間より短い。具体的に、オリジナルカーネルのイメージファイルは、複数のコードセグメントを含み、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルに含まれるがオペレーティングシステムのリカバリーには関与しないコードセグメントをカットすることにより、得られる。レベル2カーネルは、オペレーティングシステムのリカバリーに欠かせないコードセグメントのみを含み、オペレーティングシステムのリカバリーに関与しないコードセグメントを含んでいてもよい。要するに、レベル2カーネルのイメージファイルに含まれるコードセグメント数はオリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少なく、オペレーティングシステムのリカバリー速度を加速するという発明の目的は、本発明においてインプリメントされ得る。特筆に値することとして、レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
特筆に値することとして、ブートローダユニット43はレベル2カーネルのイメージファイルをロードするようにさらに構成され、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。
読み出しユニット45は、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリにおけるレベル2カーネルのリカバリープログラムのロケーションがそのメモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになり、オペレーティングシステムのイメージファイルがオペレーティングシステムのハイバネーション状態情報を含むように構成されている。
留意点として、読み出しユニット45は、レベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
具体的に、読み出しユニット45は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成される。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、読み出しユニット45は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになり、オペレーティングシステムのイメージファイルがオペレーティングシステムのハイバネーション状態情報を含むようにするように構成される。
それに対応して、読み出しユニット45が上記の機能をインプリメントする場合、ブートローダユニット43は、さらに、不揮発性メモリ上のオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションに読み出すように構成されている。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルのイメージファイルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEMパーティション等であってもよい。
リカバリーユニット47は、起動されたレベル2カーネルのリカバリープログラムにより、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーするように構成されている。
オペレーティングシステムのハイバネーション状態情報は、オペレーティングシステムがハイバネーションモードに入る前に凍結され保存された、そのオペレーティングシステムのハイバネーション状態情報を指す。オペレーティングシステムのハイバネーション状態情報は、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報、外部デバイスの動作状態を表すデバイスデータ、オリジナルカーネルの動作状態を表すオリジナルカーネルデータ等を含む。
さらに、リカバリーユニット47は、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。
具体的に、レベル2カーネルのリカバリープログラムは、オペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーする。オペレーティングシステムがリカバーされる時、オペレーティングシステムに含まれるオリジナルカーネルが同時にリカバーされる。メモリ中のオリジナルカーネルに含まれ宇リカバリープログラムのロケーションがそのメモリ中のレベル2カーネルに含まれるリカバリープログラムのロケーションと同じであることに基づいて、オリジナルカーネルはレベル2カーネルを上書きして置き換え、オペレーティングシステムが正しくリカバーされるようにする。
さらに、リカバリーユニット47は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
具体的に、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされると、オペレーティングシステムに含まれるオリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入った時にサスペンドされた外部デバイスをレジュームして、そのオペレーティングシステムが実行される端末デバイスが、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされるようにする。ここで、外部デバイスはシステムハードディスクなどである。
具体的なインプリメンテーションでは、上記各ユニットは、独立エンティティとしてインプリメントされてもよいし、一以上のエンティティとして、いかようにでも組み合わせて、インプリメントされてもよい。上記各ユニットの具体的なインプリメンテーションについて、上記の実施形態を参照し、ここでは詳細な説明は繰り返さない。
本発明の本実施形態によるオペレーティングシステムリカバリー装置がオペレーティングシステムをリカバーするとき、オリジナルカーネルをテイラーし、次にテイラーされたオリジナルカーネルをコンパイルすることによりレベル2カーネルが得られるので、レベル2カーネルを起動するのに係る時間はオリジナルカーネルを起動するのにかかる時間より短い。また、リカバリーユニットは、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。メモリにおけるオリジナルカーネルのリカバリープログラムのロケーションは、そのメモリにおけるレベル2カーネルのリカバリープログラムのロケーションと同じである。これにより、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーすることができる。すなわち、本発明のこの実施形態によるオペレーティングシステムは、通常のリカバリーを保証する状況下において、オペレーティングシステムのリカバリー速度を加速できる。
さらに、本発明の本実施形態によるレベル2カーネルは、レベル2カーネルのイメージファイルがロードされた後に起動され、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、レベル2カーネルのイメージファイルをロードしてレベル2カーネルを起動するのにかかる時間は、オリジナルカーネルのイメージファイルをロードしてオリジナルカーネルを起動するのにかかる時間より短い。そのため、オペレーティングシステムをリカバーするのにかかる時間をさらに短縮でき、オペレーティングシステムのリカバー効率を改善できる。
上記の方法と装置の実施形態をより良くインプリメントするため、図5を参照するに、図5は本発明の一実施形態による端末デバイス50を示す構成ブロック図である。端末デバイス50の論理的構造を示す図は図1に示した。具体的に、図5に示すように、端末デバイス50は、メモリ52とオペレーティングシステムリカバリー装置54とを含む。
メモリ52は、端末デバイス上で実行されるオペレーティングシステムのイメージファイルを記憶するように構成されている。
具体的に、オペレーティングシステムのイメージファイルはそのオペレーティングシステムのハイバネーション状態情報を含む。オペレーティングシステムのハイバネーション状態情報は、オペレーティングシステムがハイバネーションモードに入る前に凍結され保存された、そのオペレーティングシステムのハイバネーション状態情報を指す。オペレーティングシステムのハイバネーション状態情報は、そのオペレーティングシステム上で実行されているすべてのプロセスに関する情報、外部デバイスの動作状態を表すデバイスデータ、オリジナルカーネルの動作状態を表すオリジナルカーネルデータ等を含む。具体的に、実行中にオペレーティングシステムのハイバネーションモードがアクティブになると、オペレーティングシステムはメモリとCPUレジスタに含まれるすべての情報のスナップショットを取り、そのスナップショットすなわちオペレーティングシステムのハイバネーション状態情報がイメージファイルに保存される。
もちろん、オペレーティングシステムのハイバネーション状態情報は、予め設定され保存された、オペレーティングシステムのハイバネーション状態情報であってもよい。例えば、車載用GPSでは、オペレーティングシステムのハイバネーション状態情報は予め設定されていてもよい。このように、GPSは、起動されるたびに、実際の要求を満たす一定状態に直接リカバリーする。
オペレーティングシステムリカバリー装置54は、メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたハイバネーション状態情報を用いて、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーするよう構成されている。
留意点として、オペレーティングシステムリカバリー装置54は、レベル2カーネルを起動し、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリ中のレベル2カーネル中のリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、オペレーティングシステムのイメージファイルは、オペレーティングシステムのハイバネーション状態情報を含む。メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、起動されたレベル2カーネルのリカバリープログラムを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーする。
ブートローダプログラムがレベル2カーネルのイメージファイルをロードした後、レベル2カーネルが起動され、オリジナルカーネルのイメージファイルをテイラー(tailor)し、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより、レベル2カーネルのイメージファイルが得られる。具体的に、オリジナルカーネルのイメージファイルは複数のコードセグメントを含む。オリジナルカーネルのイメージファイルと比較して、レベル2カーネルのイメージファイルは、少なくとも、オリジナルカーネルのイメージファイルに含まれる複数のコードセグメントのファイル管理コードセグメントをカットし、オリジナルカーネルのイメージファイルを再コンパイルすることにより得られる。
特筆に値する点として、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
留意点として、レベル2カーネルは、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
本発明の一実施形態として、オペレーティングシステムリカバリー装置54は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、オペレーティングシステムリカバリー装置54は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。
リカバーすべきオペレーティングシステムのイメージファイルが、起動されたレベル2カーネルを用いて、メモリの専用デバイスパーティションからメモリの指定ロケーションに転送され、メモリにおけるレベル2カーネルのリカバリープログラムのロケーションが、そのメモリにおけるオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする前に、オペレーティングシステムリカバリー装置54は、不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出すように構成されている。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEMパーティション等であってもよい。
特筆すべき点として、さらに、オペレーティングシステムリカバリー装置54は、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。また、オペレーティングシステムリカバリー装置54は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
本発明の本実施形態による端末デバイスを用いて、その端末デバイス上のオペレーティングシステムをリカバーする時、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションはメモリ中のレベル2カーネルのリカバリープログラムのロケーションと同じであるから、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーできることが分かる。また、本発明の本実施形態による技術的ソリューションにより、レベル2カーネルを起動して、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされ、レベル2カーネルがオリジナルカーネルをテイラー及び再コンパイルすることにより得られるので、レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短く、すなわちレベル2カーネルの起動速度が加速される。すなわち、本発明のこの実施形態によるオペレーティングシステムは、通常のリカバリーを保証する状況下において、オペレーティングシステムのリカバリー速度を加速できる。
さらに、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルより小さいので、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。そのため、オペレーティングシステムのリカバリー速度はさらに改善される。
上記の方法と装置の実施形態をより良くインプリメントするため、図6を参照するに、図6は本発明の一実施形態による端末デバイス600を示す構成ブロック図である。端末デバイス600の論理的構造を示す図は図1に示した。具体的に、図6に示すように、端末デバイス600は、少なくとも1つのプロセッサ601、少なくとも1つのネットワークインタフェース604またはその他のユーザインタフェース603、記憶デバイス605、及び少なくとも1つの通信バス602を含む。通信バス602はこれらのコンポーネント間の接続通信をインプリメントするように構成されている。端末デバイス600は、任意的に、ユーザインタフェース603を含み、ディスプレイ(例えば、タッチスクリーン、LCD、CTR、ホログラフィックイメージング(Holographic)、プロジェクタ(Projector))、キーボード、またはクリックデバイス(例えば、マウス、トラックボール、タッチパッド、またはタッチスクリーン)を含む。
記憶デバイス605は、リードオンリーメモリとランダムアクセスメモリを含み、プロセッサ用の命令とデータを提供する。記憶デバイス605の一部は、さらに、不揮発性ランダムアクセスメモリ(NVRAM)を含み得る。
幾つかの実施形態では、記憶デバイス605は、実行モジュールまたはデータ構造、実行モジュールまたはデータ構造のサブセット、あるいは実行モジュールまたはデータ構造の拡張セット(extension set)などの要素を記憶する。
オペレーティングシステム6051は、フレームワークレイヤ、コアライブラリレイヤ、ドライバレイヤなどの様々なシステムプログラムを含み、様々な基本的サービスをインプリメントし、ハードウェアベースのタスクを処理するように構成されている。
アプリケーションプログラムモジュール6052は、ランチャー(launcher)、メディアプレーヤ(Media Player)、ブラウザ(Browser)など様々なアプリケーションプログラムを含み、様々なアプリケーションサービスをインプリメントするように構成されている。
本発明のこの実施形態では、記憶デバイス605に記憶されたプログラムまたは命令を起動することにより、プロセッサ601は、レベル2カーネルを起動し、起動されたレベル2カーネルを用いて、リカバーすべきオペレーティングシステムのイメージファイルをメモリの指定ロケーションに転送し、メモリ中のレベル2カーネル中のリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。レベル2カーネルは、オリジナルカーネルのイメージファイルをテイラーして、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られ、オペレーティングシステムのイメージファイルは、オペレーティングシステムのハイバネーション状態情報を含む。メモリの指定ロケーションにあるオペレーティングシステムのイメージファイルに含まれたオペレーティングシステムのハイバネーション状態情報を用いて、起動されたレベル2カーネルのリカバリープログラムにより、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバリーする。
特筆すべき点として、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルに含まれる、オペレーティングシステムのリカバリーとは無関係のコードセグメントをテイラーすることにより得られる。レベル2カーネルは、オペレーティングシステムのリカバリーに欠かせないコードセグメントのみを含み、オペレーティングシステムのリカバリーに関与しないコードセグメントを含んでいてもよい。要するに、レベル2カーネルのイメージファイル中に含まれるコードセグメント数を、オリジナルカーネルのイメージファイルに含まれるコードセグメント数より比較的少なくする限り、本発明におけるオペレーティングシステムのリカバリー速度を速くするという目的は、本発明の保護範囲内に入る。 特筆に値する点として、レベル2カーネルのイメージファイルは、オリジナルカーネルのイメージファイルをテイラーし、テイラーされたオリジナルカーネルのイメージファイルをコンパイルすることにより得られる。レベル2カーネルのイメージファイルは、システムがハイバネーションする時、またはシャットダウンされる時に、生成され、システムの不揮発性メモリに保存されてもよいし、事前にシステムの不揮発性メモリに保存されてもよい。本発明の発明目的をインプリメントするため、システムがハイバネーションモードから復帰(awakened)する必要がある時、レベル2カーネルはロードされ、実行される。要するに、レベル2カーネルのイメージファイルを生成する方法は、本発明の本実施形態には限定的に規定されていない。
留意点として、レベル2カーネルは、リカバーすべきオペレーティングシステムのイメージファイルを、メモリの指定ロケーションに転送して、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにする。ここで、オリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入る前に、オペレーティングシステムに含まれるカーネルを指す。レベル2カーネルを用いて、オペレーティングシステムを、それがハイバネーションモードに入る前の状態に、リカバーする。実際、レベル2カーネルのリカバリープログラムを用いて、上記の理科払いー機能をインプリメントする。メモリ中のレベル2カーネルのリカバリープログラムのロケーションがメモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じであることにより、レベル2カーネルのリカバリープログラムが、リカバーされるオペレーティングシステムに含まれるオリジナルカーネルのリカバリープログラムによりスムースに買い換えられ、置換される。すなわち、レベル2カーネルのリカバリープログラムからオリジナルカーネルのリカバリープログラムへのセキュアなテイクオーバー(takeover)がなされ、オリジナルカーネルのその他のコードセグメントがレベル2カーネルのリカバリープログラムを書き換えてしまい、システムがクラッシュしてリカバリーできなくなることを回避する。
本発明の一実施形態として、プロセッサ601は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。
レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、不揮発性メモリから、メモリの指定ロケーションに直接転送してもよい。もちろん、このソリューションをインプリメントする前提条件は、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していることである。
本発明の他の一実施形態として、プロセッサ601は、具体的に、起動されたレベル2カーネルを用いて、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送し、メモリ中のレベル2カーネルのリカバリープログラムのロケーションが、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションと同じになるようにするように構成されている。それに対応して、プロセッサ601は、特に、リカバーすべきオペレーティングシステムのイメージファイルを、起動されたレベル2カーネルを用いて、メモリの専用デバイスパーティションから、メモリの指定ロケーションに転送するように構成されている場合、不揮発性メモリ上のオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションに読み込むようにさらに構成されている。
この実施形態では、レベル2カーネルは、リカバリーすべきオペレーティングシステムのイメージファイルを、メモリの専用デバイスパーティションから読み出す。留意点として、このソリューションを適用する際、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能も有していてもよい。そして、もちろん、レベル2カーネルは、不揮発性メモリ上のファイルをメモリに読み出す機能を有していなくてもよい。具体的に、レベル2カーネルが不揮発性メモリ上のファイルをメモリに読み出す機能を有していない場合、まずブートローダプログラムが不揮発性メモリ上のオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションに読み出す必要があり、次にレベル2カーネルがオペレーティングシステムのイメージファイルをメモリの専用デバイスパーティションからメモリの指定ロケーションに転送する。
注目に値することに、メモリの専用デバイスパーティションは、特定用途用にデバイスに割り当てられ、カーネルにより管理されていない物理的メモリ中のパーティションを指す。物理的メモリ中の専用デバイスパーティションのアドレスは連続しており、専用デバイスパーティションはPMEMパーティション等であってもよい。
さらに、プロセッサ601はレベル2カーネルのイメージファイルをロードするようにさらに構成され、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。
さらに、プロセッサ601は、レベル2カーネルを、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルと置き換えるように構成されている。
具体的に、レベル2カーネルのリカバリープログラムは、オペレーティングシステムのイメージファイルに含まれるハイバネーション状態情報を用いて、オペレーティングシステムを、それがハイバネーションモードに入る前のオペレーティングシステムの状態にリカバーする。オペレーティングシステムがリカバーされる時、オペレーティングシステムに含まれるオリジナルカーネルが同時にリカバーされる。メモリ中のオリジナルカーネルに含まれ宇リカバリープログラムのロケーションがそのメモリ中のレベル2カーネルに含まれるリカバリープログラムのロケーションと同じであることに基づいて、オリジナルカーネルはレベル2カーネルを上書きして置き換え、オペレーティングシステムが正しくリカバーされるようにする。
さらに、プロセッサ601は、リカバーされたオペレーティングシステムに含まれるオリジナルカーネルを用いて、オペレーティングシステムがハイバネーションモードに入る時にサスペンドされた外部デバイスをレジュームするように構成されている。
具体的に、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされると、オペレーティングシステムに含まれるオリジナルカーネルは、オペレーティングシステムがハイバネーションモードに入った時にサスペンドされた外部デバイスをレジュームして、そのオペレーティングシステムが実行される端末デバイスが、オペレーティングシステムがハイバネーションモードに入る前のオペレーティングシステムの状態に完全にリカバーされるようにする。ここで、外部デバイスはシステムハードディスクなどである。
本発明の本実施形態による端末デバイスを用いて、その端末デバイス上のオペレーティングシステムをリカバーする時、メモリ中のオリジナルカーネルのリカバリープログラムのロケーションはメモリ中のレベル2カーネルのリカバリープログラムのロケーションと同じであるから、レベル2カーネルを用いて、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にスムースにリカバーできることが分かる。まず、本発明の本実施形態による技術的ソリューションにより、レベル2カーネルを起動して、オペレーティングシステムがハイバネーションモードに入る前のそのオペレーティングシステムの状態にリカバーされ、レベル2カーネルがオリジナルカーネルをテイラー及び再コンパイルすることにより得られるので、レベル2カーネルを起動するのにかかる時間は、オリジナルカーネルを起動するのにかかる時間より短く、すなわちレベル2カーネルの起動速度が加速される。本発明の本実施形態の端末デバイスを用いることにより、オペレーティングシステムの通常のリカバリーを保証する状況下において、オペレーティングシステムをリカバーする効率が改善される。
さらに、レベル2カーネルのイメージファイルはオリジナルカーネルのイメージファイルより小さいので、レベル2カーネルのイメージファイルをロードするのにかかる時間はオリジナルカーネルのイメージファイルをロードするのにかかる時間より短い。それにより、オペレーティングシステムをリカバーするのにかかる時間をさらに短縮でき、オペレーティングシステムをリカバーする効率が向上する。
上記の複数の実施形態間で相互参照をすることもできる。
本技術分野の当業者は、本明細書に開示した実施形態で説明した例と組み合わせて、ユニットとアルゴリズムステップは、電子的ハードウェアや、コンピュータソフトウェアと電子的ハードウェアとの組み合わせによりインプリメントできることが分かるだろう。機能がハードウェアで実行されるかソフトウェアで実行されるかは、具体的なアプリケーションと、技術的ソリューションのデザイン制約条件に依存する。本技術分野の当業者は、異なる方法を用いて、具体的な各アプリケーションの説明した機能をインプリメントするかも知れないが、そのインプリメンテーションが本発明の範囲を超えていると考えてはならない。
当業者には言うまでもなく、便宜上かつ説明を簡明にするために、上記のシステム、装置、及びユニットの詳細な動作プロセスについて、方法の実施形態の対応するプロセスを参照し、詳細はここでは説明しない。
本発明で提供される実施形態においては、言うまでもなく、開示のシステム、装置、及び方法は他のやり方で実施してもよい。例えば、開示の装置の実施形態は単なる例である。例えば、ユニットの分割は単なる論理的機能の分割であり、実際の実施では他の分割をしてもよい。例えば、複数のユニットやコンポーネントを他のシステムに結合しても集積してもよく、特徴の一部を無視しても実行しなくてもよい。また、表示又は説明した相互結合、直接結合、又は通信接続は、何らかのインタフェースを通じて実施してもよい。装置やユニット間の間接的な結合や通信接続は、電子的、機械的、又はその他の形式で実施できる。
別々のパーツとして説明したユニットは、物理的に離れていてもいなくてもよく、ユニットとして表示したパーツは物理的なパーツであってもなくてもよく、一箇所にあっても、複数のネットワークユニットに分散していてもよい。一部又は全部のユニットは、実施形態のソリューションの目的を達成するために実際の必要性に応じて選択できる。
また、本発明の実施形態の機能ユニットは、一処理ユニットに集積されてもよいし、各ユニットが物理的に孤立して存在しても良いし、2以上のユニットが一ユニットに集積されてもよい。
機能は、ソフトウェアの機能ユニットの形式で実施され、独立の製品として販売され使用される時、コンピュータ読み取り可能記憶媒体中に記憶されてもよい。かかる理解に基づき、本発明の技術的解決策は、又は先行技術に貢献する部分は、又は技術的解決策の一部は、ソフトウェア製品の形式で実施することができる。ソフトウェア製品は、記憶媒体に記憶され、本発明の実施形態で説明した方法のステップの全部又は一部を実行するようにコンピュータデバイス(例えば、パーソナルコンピュータ、サーバ、ネットワークデバイスなど)、またはプロセッサに命令する命令を含む。上記の記憶媒体は、次のものを含む:プログラムコードを記憶できる任意の媒体であって、例えばUSBフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、又は光ディスクなど。
上記の説明は、単に本発明具体的なインプリメンテーション方法であり、本発明の保護範囲の限定を意図したものではない。本発明で開示した技術的範囲内における当業者により容易に想到される変形や置換は、本発明の保護範囲に入るものである。よって、本発明の保護範囲は特許請求の範囲に基づく。