(57)【要約】【解決手段】本発明は、カーネルモジュールロード方法および装置を開示する。本方法の一つの具体的な実施形態は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するステップと、指令が検出されたことに応じて、ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するステップであって、識別情報は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを示すためのものである、ステップと、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードするステップと、を含む。本実施形態によれば、ロード対象のカーネルモジュールの適用性を向上することができる。【選択図】図２
2019532414.tif 000002
【特許請求の範囲】
【請求項１】
カーネルモジュールロード方法であって、
ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するステップと、
前記指令が検出されたことに応じて、前記ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するステップであって、前記識別情報は、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードすることを示すためのものである、ステップと、
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするステップと、を含む、
ことを特徴とするカーネルモジュールロード方法。
【請求項２】
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするステップは、
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記識別情報に対してセキュリティ検証を行うことと、
前記識別情報がセキュリティ検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードすることと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記方法は、カーネルモジュール内で識別情報を生成するステップを更に含み、前記生成するステップは、
カーネルモジュールを取得し、前記カーネルモジュールが事前設定条件を満たすか否かを判定することと、
前記カーネルモジュールが前記事前設定条件を満たすと判定されたことに応じて、事前設定方法によって前記カーネルモジュール内で識別情報を生成することと、
を含むことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記事前設定条件は、前記カーネルモジュールとロード対象の前記カーネルモジュールのカーネルとが互換性を有することを含む、
ことを特徴とする請求項３に記載の方法。
【請求項５】
前記方法は、
前記ロード対象のカーネルモジュールに前記識別情報が存在していないと判定されたことに応じて、前記ロード対象のカーネルモジュールに対してロード検証を行うステップと、
前記ロード対象のカーネルモジュールがロード検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするステップと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項６】
カーネルモジュールロード装置であって、
ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するように配置される検出ユニットと、
前記指令が検出されたことに応じて、前記ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するように配置される識別情報判定ユニットであって、前記識別情報は、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードすることを示すためのものである、識別情報判定ユニットと、
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするように配置される第１のロードユニットと、
を備えることを特徴とするカーネルモジュールロード装置。
【請求項７】
前記第１のロードユニットは、更に
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記識別情報に対してセキュリティ検証を行い、
前記識別情報がセキュリティ検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードする、ように配置されることを特徴とする請求項６に記載の装置。
【請求項８】
前記装置は、
カーネルモジュールを取得し、前記カーネルモジュールが事前設定条件を満たすか否かを判定するように配置される取得ユニットと、
前記カーネルモジュールが前記事前設定条件を満たすと判定されたことに応じて、事前設定方法によって前記カーネルモジュール内で識別情報を生成するように配置される生成ユニットと、
を更に備えることを特徴とする請求項６または７に記載の装置。
【請求項９】
前記事前設定条件は、前記カーネルモジュールとロード対象の前記カーネルモジュールのカーネルとが互換性を有することを含む、
ことを特徴とする請求項８に記載の装置。
【請求項１０】
前記装置は、
前記ロード対象のカーネルモジュールに前記識別情報が存在していないと判定されたことに応じて、前記ロード対象のカーネルモジュールに対してロード検証を行うように配置される検証ユニットと、
前記ロード対象のカーネルモジュールがロード検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするように配置される第２のロードユニットと、
を更に備えることを特徴とする請求項６に記載の装置。
【請求項１１】
サーバであって、
１つ以上のプロセッサと、
１つ以上のプログラムを記憶するための記憶装置と、を備え、
前記１つ以上のプログラムが前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに請求項１〜５のいずれか一項に記載の方法を実現させる、
ことを特徴とするサーバ。
【請求項１２】
コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、
前記コンピュータプログラムがプロセッサによって実行されると、請求項１〜５のいずれか１項に記載の方法を実行させる、
ことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本発明は、２０１７年２月２２日に提出した、出願番号が２０１７１００９６２２６．Ｘ号である中国特許出願に基づく優先権を主張し、当該出願の全文を引用することにより本願に組み込む。
【０００２】
本発明は、コンピュータ技術分野に関し、具体的に、オペレーティングシステムカーネル技術分野に関し、特に、カーネルモジュールロード方法および装置に関する。
【背景技術】
【０００３】
現在、カーネルモジュールをカーネルプログラム内で動作可能にするために、通常にカーネルのソースコードを含むカーネルモジュールを生成することが要求されている。したがって、従来のカーネルモジュールロード方法は、通常に、カーネルのソースコードと、カーネルモジュールをロートする時に検証に必要なパラメータ（例えば、カーネルバージョン、カーネルシンボル、およびＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ，巡回冗長検査））などとに基づいて、カーネルモジュールに対して再コンパイルまたは再修正を行って、カーネルの検証メカニズムを通じてカーネルにロードするようにする。
【０００４】
カーネルモジュールは、コンパイル時に依存したソースコードに対応するカーネルにしかロードできないので、同じオペレーティングシステムのカーネルバージョンが複数ある場合、異なるバージョンのカーネルを適用するために、通常にカーネルモジュールを複数回再コンパイルまたは再修正する必要がある。
【発明の概要】
【０００５】
本発明の目的は、上記の背景技術で言及された技術問題を解決するための、改良されたカーネルモジュールロード方法および装置を提案することにある。
【０００６】
第１の態様において、本発明は、カーネルモジュールロード方法であって、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するステップと、指令が検出されたことに応じて、ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するステップであって、識別情報は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを示すためのものである、ステップと、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードするステップと、を含むカーネルモジュールロード方法を提供する。
【０００７】
いくつかの実施形態において、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードするステップは、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、識別情報に対してセキュリティ検証を行うことと、識別情報がセキュリティ検証を通過した場合、ロード対象のカーネルモジュールをターゲットカーネルにロードすることと、を含む。
【０００８】
いくつかの実施形態において、当該方法は、カーネルモジュール内で識別情報を生成するステップを更に含み、当該ステップは、カーネルモジュールを取得し、カーネルモジュールが事前設定条件を満たすか否かを判定することと、カーネルモジュールが事前設定条件を満たすと判定されたことに応じて、事前設定方法によってカーネルモジュール内で識別情報を生成することと、を含む。
【０００９】
いくつかの実施形態において、事前設定条件は、カーネルモジュールとロード対象のカーネルモジュールのカーネルとが互換性を有することを含む。
【００１０】
いくつかの実施形態において、当該方法は、ロード対象のカーネルモジュールに識別情報が存在していないと判定されたことに応じて、ロード対象のカーネルモジュールに対してロード検証を行うステップと、ロード対象のカーネルモジュールがロード検証を通過した場合、ロード対象のカーネルモジュールをターゲットカーネルにロードするステップと、を更に含む。
【００１１】
第２の態様において、本発明は、カーネルモジュールロード装置であって、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するように配置される検出ユニットと、指令が検出されたことに応じて、ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するように配置される識別情報判定ユニットであって、識別情報は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを示すためのものである、識別情報判定ユニットと、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードするように配置される第１のロードユニットと、を備えるカーネルモジュールロード装置を提供する。
【００１２】
いくつかの実施形態において、第１のロードユニットは、更に、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、識別情報に対してセキュリティ検証を行い、識別情報がセキュリティ検証を通過した場合、ロード対象のカーネルモジュールをターゲットカーネルにロードするように配置される。
【００１３】
いくつかの実施形態において、当該装置は、カーネルモジュールを取得し、カーネルモジュールが事前設定条件を満たすか否かを判定するように配置される取得ユニットと、カーネルモジュールが事前設定条件を満たすと判定されたことに応じて、事前設定方法によってカーネルモジュール内で識別情報を生成するように配置される生成ユニットと、を更に備える。
【００１４】
いくつかの実施形態において、事前設定条件は、カーネルモジュールとロード対象のカーネルモジュールのカーネルとが互換性を有することを含む。
【００１５】
いくつかの実施形態において、当該装置は、ロード対象のカーネルモジュールに識別情報が存在していないと判定されたことに応じて、ロード対象のカーネルモジュールに対してロード検証を行うように配置される検証ユニットと、ロード対象のカーネルモジュールがロード検証を通過した場合、ロード対象のカーネルモジュールをターゲットカーネルにロードするように配置される第２のロードユニットと、を更に備える。
【００１６】
第３の態様において、本発明は、サーバであって、１つ以上のプロセッサと、１つ以上のプログラムを記憶するための記憶装置と、を備え、１つ以上のプログラムが１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに第１の態様に記載のカーネルモジュールロード方法を実現させるサーバを提供する。
【００１７】
第４の態様において、本発明は、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、当該コンピュータプログラムがプロセッサによって実行されると、第１の態様に記載のカーネルモジュールロード方法を実現させるコンピュータ可読記憶媒体を提供する。
【００１８】
本発明に提供されるカーネルモジュールロード方法および装置は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令が検出された後、ロード対象のカーネルモジュールの情報を取得し、ロード対象のカーネルモジュールに識別情報が存在しているか否かを判定する。ロード対象のカーネルモジュールに識別情報が存在している場合、ターゲットカーネルのロード検証を行わずに、ターゲットカーネルにカーネルモジュールをロードすることができる。このように、同じタイプのオペレーティングシステムの異なるバージョンのカーネルが、ロード対象のカーネルモジュールを動作させる必要があるとき、ロード対象のカーネルモジュール内に識別情報があれば、そのカーネルモジュールを異なるバージョンのカーネル内にロードすることができる。これにより、ロード対象のカーネルモジュールの適用範囲の向上に役立つ。
【図面の簡単な説明】
【００１９】
本発明の他の特徴、目的および利点は、以下の図面を参照してなされる非限定的な実施形態に係る詳細な説明を読むことにより、より明らかになるであろう。
【図１】本発明を適用可能な例示的なシステムアーキテクチャの図である。
【図２】本発明に係るカーネルモジュールロード方法の一実施形態を示すフローチャートである。
【図３】本発明に係るカーネルモジュールロード方法の一応用シナリオを示す概略図である。
【図４】本発明に係るカーネルモジュールロード方法のもう一つの実施形態を示すフローチャートである。
【図５】本発明に係るカーネルモジュールロード方法における識別情報生成ステップの一実施形態を示すフローチャートである。
【図６】本発明に係るカーネルモジュールロード装置の一実施形態を示す構造の概略図である。
【図７】本発明の実施形態を実現するのに適用するサーバのコンピュータシステムの構造の概略図である。
【発明を実施するための形態】
【００２０】
以下、図面および実施形態を参照しながら本発明をより詳細に説明する。理解すべきことは、ここで説明する具体的な実施形態は、関連する発明を説明するためのものに過ぎず、当該発明を限定するものではない。更に、説明の便宜上、図面には発明に関連する部分のみが示されている。
【００２１】
なお、本発明の実施形態および実施形態における特徴は、矛盾を生じない限り、相互に組み合わせることができる。以下、図面および実施形態を参照しながら本発明を詳細に説明する。
【００２２】
図１は、本発明に係るカーネルモジュールロード方法またはカーネルモジュールロード装置の実施形態を適用可能な例示的なシステムアーキテクチャ１００を示す。
【００２３】
図１に示すように、システムアーキテクチャ１００は、端末装置１０１、１０２、１０３、ネットワーク１０４、１０６、サーバ１０５およびデータベースサーバ１０７を含んでもよい。ネットワーク１０４は、端末装置１０１、１０２、１０３とサーバ１０５の間で通信リンクの媒体を提供するために使用される。ネットワーク１０６は、サーバ１０５とデータベースサーバ１０７の間で通信リンクの媒体を提供するために使用される。ネットワーク１０４、１０６は、有線、無線通信リンクまたは光ファイバケーブルなどの様々なタイプの接続を含んでもよい。
【００２４】
ユーザは、メッセージを送受信するように、端末装置１０１、１０２、１０３を使用してネットワーク１０４を介してサーバ１０５と情報のインタラクションをすることができる。端末装置１０１、１０２、１０３には、ウェブブラウザアプリケーション、検索アプリケーション、インスタントコミュニケーションツールなどの様々な通信クライアントアプリケーションをインストールすることができる。
【００２５】
端末装置１０１、１０２、１０３は、様々な電子機器であってもよく、スマートフォン、タブレットコンピュータ、電子書籍リーダ、およびデスクトップコンピュータなどを含むが、これらに限定されない。
【００２６】
データベースサーバ１０７は、ロード対象のカーネルモジュール群が記憶されているサーバであってもよい。
【００２７】
サーバ１０５は、様々なサービスを提供するサーバであってもよく、例えば、端末装置１０１、１０２、１０３から送信された指令を処理するバックエンドカーネルモジュールロードサーバが挙げられ、当該指令は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するためのものである。バックエンドカーネルモジュールロードサーバは、当該指令が検出された後、データベースサーバ１０７からロード対象のカーネルモジュールを取得し、ロード対象のカーネルモジュールおよびターゲットカーネルなどのデータを解析処理し、処理結果（ロードに成功したか否かのプロンプト情報）を端末装置にフィードバックする。
【００２８】
なお、本発明の実施形態に係るカーネルモジュールロード方法は、通常にサーバ１０５によって実行され、これに応じて、カーネルモジュールロード装置は、通常にサーバ１０５に設けられている。
【００２９】
図１における端末装置、ネットワーク、サーバおよびデータベースサーバの数は、例示的なものに過ぎないことを理解されたい。必要に応じて、端末装置、ネットワーク、サーバおよびデータベースサーバの数を任意に加減してもよい。なお、ロード対象のカーネルモジュールがサーバ１０５に記憶されている場合は、データベースサーバ１０７をシステムアーキテクチャ１００に設けなくてもよい。
【００３０】
次に、本発明に係るカーネルモジュールロード方法の一実施形態のフローチャート２００を示す図２を参照する。当該方法は、次のステップを含む。
【００３１】
ステップ２０１において、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出する。
【００３２】
本実施形態において、カーネルモジュールロード方法が実行される電子機器（例えば、図１に示すサーバ１０５）は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を、ユーザの使用する端末から有線接続または無線接続方式で検出して受信することができる。ここで、指令とは、ユーザがタッチ端末上の特定のボタン（仮想ボタンまたは物理的ボタン）を介して発行したものであってもよい。ユーザが端末を介して上記電子機器に特定の情報を送信することによって発行したものでもよい。
【００３３】
本実施形態において、ターゲットカーネルは、様々なオペレーティングシステムにおける異なるバージョンのカーネルであってもよい。例えば、Ｗｉｎｄｏｗｓ（登録商標）グラフィカル・ユーザー・インターフェース・オペレーティング・システムにおけるＮＴ５．１、ＮＴ５．２、ＮＴ６．０、およびＮＴ６．１などのバージョンのカーネルが挙げられる。ロード対象のカーネルモジュールは、独立した機能を持つが独立に実行できないプログラムを含んでもよい。例えば、新しいハードウェアデバイスがＷｉｎｄｏｗｓオペレーティングシステムに追加されたとき、ロード対象のカーネルモジュールは、当該ハードウェアデバイスのデバイスドライブであってもよい。ロード対象のカーネルモジュールは、Ｌｉｎｕｘ（登録商標）カーネル内のＬＫＭ（Ｌｏａｄａｂｌｅ  Ｋｅｒｎｅｌ  Ｍｏｄｕｌｅ，ローダブル・カーネル・モジュール）を更に含んでもよい。
【００３４】
ステップ２０２において、指令の検出に応じて、ロード対象のカーネルモジュール内に識別情報が存在するか否かを判定する。
【００３５】
本実施形態において、ステップ２０１で検出された指令に基づいて、上記電子機器は、上記指令によって指示されたロード対象のカーネルモジュールを取得し、その後、ロード対象のカーネルモジュールの情報を読み取り、当該情報に識別情報が存在するか否かを判定する。ここで、識別情報は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを示すために使用される。
【００３６】
本実施形態において、ロード対象のカーネルモジュールの名称および／またはバージョン番号が上記指令に含まれてもよい。上記電子機器は、ロード対象のカーネルモジュールの名称および／またはバージョン番号に従って、図１に示すデータベースサーバ１０７から、マッチするロード対象のカーネルモジュールを取得することができる。上記電子機器は、先ず、マッチするロード対象のカーネルモジュールが記憶されているか否かをローカルで検索することができる。ローカルで検索が失敗した場合、次に、マッチするロード対象のカーネルモジュールをデータベースサーバ１０７から取得する。ロード対象のカーネルモジュールの具体的な記憶場所は、本発明で限定されないことに留意されたい。
【００３７】
本実施形態において、上記電子機器は、プログラムコンテンツに関連しない情報がロード対象のカーネルモジュールに存在しているか否かという判定結果に応じて、その中に識別情報が存在しているか否かを判定することができる。ロード対象のカーネルモジュール内にプログラムコンテンツに関連しない情報がある場合、その情報を識別情報として判定することができる。例えば、ＥＬＦファイルのヘッダー（ＥＬＦ  Ｈｅａｄｅｒ）の前に「￥」がある。
【００３８】
本実施形態のいくつかの選択的な実施態様において、上記電子機器は更に、予め記憶された識別情報の集合における各識別情報をロード対象のカーネルモジュール内にマッチングすることができる。ロード対象のカーネルモジュール内に、識別情報の集合における識別情報にマッチする情報があれば、ロード対象のカーネルモジュールに識別情報が存在すると判定することができる。
【００３９】
本実施形態のいくつかの選択的な実施態様において、識別情報は、文字、文字列、またはデータセグメントなどの任意のものとすることができる。一例として、Ｌｉｎｕｘシステムのカーネルモジュールは、ＥＬＦ（Ｅｘｅｃｕｔａｂｌｅ  ａｎｄ  Ｌｉｎｋｉｎｇ  Ｆｏｒｍａｔ，実行可能リンクフォーマット）フォーマットであるので、識別情報はロード対象のカーネルモジュール内の独立したセクションであってもよく、その名称が「ｆｏｏ」または「ｂａｒ」などであってもよい。同時に、セクション内のデータは任意であってもよい。
【００４０】
本実施形態のいくつかの選択的な実施態様において、上記カーネルモジュールロード方法は、カーネルモジュール内に識別情報を生成するステップを更に含んでもよい。ここで、図５は、本発明に係るカーネルモジュールロード方法における識別情報生成ステップの一実施形態のフローチャートを示している。上記電子機器は、当該フローに従ってカーネルモジュール内に識別情報を生成することができる。
【００４１】
ステップ２０３において、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードする。
【００４２】
本実施形態において、ステップ２０２でロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、上記電子機器は、ロード対象のカーネルモジュールをターゲットカーネルにロードするロードプログラムを実行することができる。ロード対象のカーネルモジュールに対する上記電子機器のロードプロセスは、本発明において限定されないことが理解され得る。ロードプロセスは、直接ロードプロセスまたは互換ロードプロセスのいずれかであってもよい。例えば、上記電子機器は、該当する互換パッケージをインストールすることにより、ロード対象のカーネルモジュールに対するロード動作を実現することができる。また、ロード対象のカーネルモジュールにおける識別情報の位置は、本発明で限定されないことに留意されたい。
【００４３】
本実施形態において、上記電子機器のオペレーティングシステムに複数のバージョンのカーネルを記憶することができる。このとき、上記指令は、ターゲットカーネルのバージョン番号を更に含んでもよい。電子機器は、ターゲットカーネルのバージョン番号に従ってターゲットカーネルを選択することができる。また、複数のオペレーティングシステムが上記電子機器に記憶されてもよく、各オペレーティングシステムには複数バージョンのカーネルが含まれる。このとき、上記指令は、ターゲットカーネルの名称およびバージョン番号を更に含んでもよい。上記電子機器は、ターゲットカーネルの名称およびバージョン番号に従ってターゲットカーネルを選択することができる。
【００４４】
次に、図３を参照し、図３は、本実施形態に係るカーネルモジュールロード方法の応用シナリオを示す概略図である。図３の応用シナリオにおいて、ユーザは、先ず端末を介してバージョン２．６のＬｉｎｕｘカーネルにロード対象のカーネルモジュールＬＫＭ（その名称が「Ａ」という）をロードするための指令を発する（参照番号３０１で示す）。その後、サーバは、その指令を検出した後（参照番号３０２で示す）、ロード対象のカーネルモジュール（すなわち、上記ＬＫＭ「Ａ」）をデータベースサーバから取得することができる（参照番号３０３で示す）。そこで特別な名称のデータセグメント「＿ａｔｔｒｉｂｕｔｅ＿（（ｓｅｃｔｉｏｎ  （「ｂａｒ」）））」を見つけ、ＬＫＭ「Ａ」に識別情報が存在していることが確定される（参照番号３０４で示す）。次に、上記サーバは「ｉｎｓｍｏｄ」指令を立ち上げ、「ｉｎｉｔ＿ｍｏｄｕｌｅ」関数を呼び出してＬＫＭ「Ａ」）をバージョン２．６のＬｉｎｕｘカーネルにロードする（参照番号３０５で示す）。
【００４５】
本発明の上記実施形態によって提供される方法は、ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するとともに、識別情報が存在するロード対象のカーネルモジュールをターゲットカーネルにロードすることによって、ロード検証をせずにロード対象のカーネルモジュールをターゲットカーネルにロードするプロセスが実現される。ターゲットカーネルのバージョン数が多くてロード対象のカーネルモジュールが繰り返してコンパイルまたは修正されることが低減された。同じオペレーティングシステムの異なるバージョンのターゲットカーネルへのロード対象のカーネルモジュールの適用範囲が拡大され、メンテナンスコストの削減に役立つ。
【００４６】
更に、カーネルモジュールロード方法のもう一つの実施形態のフロー４００を示す図４を参照する。当該方法のフロー４００は、次のステップを含む。
【００４７】
ステップ４０１において、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出する。
【００４８】
本実施形態において、カーネルモジュールロード方法が実行される電子機器（例えば、図１に示すサーバ１０５）は、ユーザにより端末装置を介して送信された、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出することができる。
【００４９】
ステップ４０２において、指令の検出に応じて、ロード対象のカーネルモジュール内に識別情報が存在するか否かを判定する。
【００５０】
本実施形態において、上記電子機器は、上記指令を検出した後、ロード対象のカーネルモジュールの情報を取得し、その中に識別情報が存在しているか否かを判定することができる。ここで、識別情報は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを示すために使用される。ロード対象のカーネルモジュールに識別情報が存在すれば、ステップ４０３ａを実行する。ロード対象のカーネルモジュールに識別情報が存在しなければ、ステップ４０３ｂを実行する。
【００５１】
ステップ４０３ａにおいて、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、識別情報に対してセキュリティ検証を行う。
【００５２】
本実施形態において、上記電子機器は、ロード対象のカーネルモジュール内に識別情報が存在していると判定された後、当該識別情報に対してセキュリティ検証を実行することができる。例えば、アンチウィルスソフトウェアを起動して、識別情報に対してウィルスの検出および殺処分を行う。識別情報にウイルスが含まれていなければ、当該識別情報がセキュリティ検証を通過したと考えられる。また、識別情報は、識別情報のソースを示す情報を更に含んでいてもよい。例えば、識別情報を編集する機関、部門、または個人の名前（姓名）または番号などが挙げられる。このとき、電子機器は、識別情報のソースと、予め記憶されているソース情報の集合におけるソース情報とをマッチすることができる。マッチした場合、当該識別情報がセキュリティ検証を通過したと考えられる。識別情報がセキュリティ検証を通過した場合、ステップ４０４を実行する。
【００５３】
ステップ４０３ｂにおいて、ロード対象のカーネルモジュールに識別情報が存在していないと判定されたことに応じて、ロード対象のカーネルモジュールに対してロード検証を行う。
【００５４】
本実施形態において、上記電子機器は、ロード対象のカーネルモジュールに識別情報が存在していないと判定された後、ロード検証プログラムを起動して、ロード対象のカーネルモジュールに対してロード検証することができる。ロード検証の情報は、ロード対象のカーネルモジュールのカーネルバージョン、ＣＲＣなどを含むが、これらに限定されない。ここでのロード検証は、従来技術におけるカーネルモジュールのロード検証メカニズムと同じであり、ここではこれ以上述べない。ロード対象のカーネルモジュールがロード検証を通過した場合、ステップ４０４を実行する。ロード対象のカーネルモジュールがロード検証を通過しなかった場合、ステップ４０５を実行する。
【００５５】
ステップ４０４において、ロード対象のカーネルモジュールをターゲットカーネルにロードする。
【００５６】
本実施形態において、上記電子機器は、ロード対象のカーネルモジュールをターゲットカーネルにロードして、ターゲットカーネルにロード対象のカーネルモジュール内のプログラムを実行させることができる。これは、従来技術におけるカーネルモジュールのロードプロセスと同じであるので、ここではこれ以上述べない。
【００５７】
ステップ４０５において、ロード結果に従ってプロンプト情報を送信する。
【００５８】
本実施形態において、ロード対象のカーネルモジュールのロード結果に従って、上記電子機器は、有線接続または無線接続によって、ユーザの使用する端末にプロンプト情報を送信することができる。ロード対象のカーネルモジュールが既にターゲットカーネルにロードされた場合、ロードに成功したことを示すプロンプト情報を送信する。ロード対象のカーネルモジュールがロード検証を通過しなかった場合、ロードに失敗したことを示すプロンプト情報を送信する。
【００５９】
図４から分かるように、図２に対応する実施形態と比較して、本実施形態におけるカーネルモジュールロード方法のフロー４００は、識別情報に対してセキュリティ検証を行うことと、ロード対象のカーネルモジュールに識別情報が存在しない場合にロード検証を行うことと、を強調する。したがって、本実施形態で説明した解決策は、より包括的で完全なカーネルモジュールのロードプロセスを実現することができ、カーネルモジュールの適用性を高める一方で、システムのメンテナンスコストを低減することに役たち、カーネルモジュールのロードプロセスにおけるセキュリティの向上にも有益である。
【００６０】
更に、カーネルモジュールにおける識別情報生成ステップの一実施形態のフロー５００を示す図５を参照する。当該ステップは、次のステップを含む。
【００６１】
ステップ５０１において、カーネルモジュールを取得し、カーネルモジュールが事前設定条件を満たすか否かを判定する。
【００６２】
本実施形態において、上記電子機器（図１に示すサーバ１０５など）は、先ず、ローカルまたはデータベースサーバ１０７からカーネルモジュールを取得することができる。次に、当該カーネルモジュールが事前設定条件を満たしているか否かを判定する。ここで、事前設定条件は、当該カーネルモジュールとロード対象のカーネルモジュールのカーネルとが互換性を有することを含んでもよい。一例として、カーネルモジュールＡには、カーネルＢがサポートしていない関数およびデータ構造などが存在しなければ、カーネルモジュールＡが事前設定条件を満たしていると判定することができる。
【００６３】
ステップ５０２において、カーネルモジュールが事前設定条件を満たすと判定されたことに応じて、事前設定方法によってカーネルモジュール内で識別情報を生成する。
【００６４】
本実施形態において、カーネルモジュールが事前設定条件を満たしていると判定されたことに応じて、上記電子機器は、事前設定方法によってカーネルモジュール内で識別情報を生成することができる。例えば、識別情報を生成するために、コンパイル指令によって情報をカーネルモジュールに追加する。または、書き込みツールを使用してカーネルモジュール内の情報を修正して、識別情報を生成する。
【００６５】
本実施形態において、毎回生成された識別情報は同一でも異なっていてもよい。一例として、識別情報は、カーネルモジュールが適用されるオペレーティングシステムに対応することができる。例えば、Ｗｉｎｄｏｗｓオペレーティングシステムに適応するカーネルモジュールに対応する識別情報は１であり、Ｌｉｎｕｘオペレーティングシステムに適応するカーネルモジュールに対応する識別情報は２である。これにより、カーネルモジュールを分類および管理しやすくなる。
【００６６】
図５に示す実施形態において、カーネルモジュールをフィルタリングすることによって、事前設定条件を満たすカーネルモジュールが選択され、任意のカーネルモジュールに対して識別情報を生成するステップが不要である。同時に、事前設定条件を満たすカーネルモジュール内で識別情報を生成することによって、カーネルモジュールを一度コンパイルまたは修正するだけで、同じオペレーティングシステムの異なるバージョンのカーネルにロードすることが可能になり、カーネルモジュールに対するコンパイルまたは修正の回数が低減され、カーネルモジュールの適用範囲を拡大するために更に有益である。
【００６７】
更に図６を参照すると、上記の図面に示された方法の実施態様として、本発明は、カーネルモジュールロード装置の一実施形態を提供し、当該装置の実施形態は、図２に示す方法の実施形態に対応し、当該装置は、具体的に様々な電子機器に適用することができる。
【００６８】
図６に示すように、本実施形態のカーネルモジュールロード装置６００は、検出ユニット６０１、識別情報判定ユニット６０２、および第１のロードユニット６０３を備える。検出ユニット６０１は、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するように配置される。識別情報判定ユニット６０２は、指令が検出されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを示すための識別情報が、ロード対象のカーネルモジュールに存在しているか否かを判定するように配置される。第１のロードユニット６０３は、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードするように配置される。
【００６９】
本実施形態において、検出ユニット６０１、識別情報判定ユニット６０２、および第１のロードユニット６０３の具体的な実施プロセスおよび有益な効果については、図２の実施形態における対応するステップ２０１、ステップ２０２、およびステップ２０３の関連する説明を参照することができ、ここではこれ以上述べない。
【００７０】
本実施形態のいくつかの選択的な実施態様において、第１のロードユニット６０３は、更に、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、識別情報に対してセキュリティ検証を行い、識別情報がセキュリティ検証を通過した場合、ロード対象のカーネルモジュールをターゲットカーネルにロードするように配置される。
【００７１】
本実施形態のいくつかの選択的な実施態様において、当該装置６００は、カーネルモジュールを取得し、カーネルモジュールが事前設定条件を満たすか否かを判定するように配置される取得ユニット（図示せず）と、カーネルモジュールが事前設定条件を満たしていると判定されたことに応じて、事前設定方法によってカーネルモジュール内で識別情報を生成するように配置される生成ユニット（図示せず）と、を更に備える。
【００７２】
本実施形態のいくつかの選択的な実施態様において、事前設定条件は、カーネルモジュールとロード対象のカーネルモジュールのカーネルとが互換性を有することを含む。
【００７３】
本実施形態のいくつかの選択的な実施態様において、当該装置６００は、ロード対象のカーネルモジュールに識別情報が存在していないと判定されたことに応じて、ロード対象のカーネルモジュールに対してロード検証を行うように配置される検証ユニット（図示せず）と、ロード対象のカーネルモジュールがロード検証を通過した場合、ロード対象のカーネルモジュールをターゲットカーネルにロードするように配置される第２のロードユニット（図示せず）と、を更に備える。
【００７４】
以下、本発明の実施形態を実現するためのサーバに適用されるコンピュータシステム７００を示す構造概略図である図７を参照する。図７に示すサーバは、一例に過ぎず、本発明の実施形態の機能および使用範囲を限定するものではない。
【００７５】
図７に示すように、コンピュータシステム７００は、読み出し専用メモリ（ＲＯＭ）７０２に記憶されているプログラムまたは記憶部７０８からランダムアクセスメモリ（ＲＡＭ）７０３にロードされたプログラムによって様々な適当な動作および処理を実行することができる中央処理装置（ＣＰＵ）７０１を備える。ＲＡＭ７０３には、システム７００の動作に必要な様々なプログラムおよびデータが更に記憶されている。ＣＰＵ７０１、ＲＯＭ７０２およびＲＡＭ７０３は、バス７０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース７０５もバス７０４に接続されている。
【００７６】
キーボード、マウスなどを含む入力部７０６、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、およびスピーカなどを含む出力部７０７、ハードディスクなどを含む記憶部７０８、並びにＬＡＮカード、モデムなどを含むネットワークインターフェースカードの通信部７０９は、Ｉ／Ｏインターフェース７０５に接続されている。通信部７０９は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライブ７１０は、必要に応じてＩ／Ｏインターフェース７０５に接続される。リムーバブルメディア７１１は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライブ７１０に取り付けられ、したがって、リムーバブルメディア７１１から読み出されたコンピュータプログラムが必要に応じて記憶部７０８にインストールされる。
【００７７】
特に、本発明の実施形態によれば、上記のフローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施形態は、コンピュータ可読媒体に具現化されるコンピュータプログラムを含むコンピュータプログラム製品を備え、該コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施形態において、該コンピュータプログラムは、通信部７０９を介してネットワークからダウンロードされてインストールされてもよく、および／またはリムーバブルメディア７１１からインストールされてもよい。該コンピュータプログラムが中央処理装置（ＣＰＵ）７０１によって実行されると、本発明の方法で限定された上記の機能を実行する。注意すべきなのは、本発明の上記コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体、またはこれら両者の任意の組み合わせであってもよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、または半導体システム、装置もしくはデバイス、またはこれらの任意の組み合わせであることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例としては、１本以上の導線を有する電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュメモリ）、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光メモリ、磁気メモリ、またはこれらの任意の適切な組み合わせを含むことができるが、これらに限定されない。本発明において、コンピュータ可読記憶媒体は、指令実行システム、装置もしくはデバイスによって使用可能な、またはそれらに組み込まれて使用可能なプログラムを包含または記憶する任意の有形の媒体であってもよい。本発明において、コンピュータ可読信号媒体は、ベースバンド内で、またはキャリアの一部として伝搬される、コンピュータ可読プログラムコードが担持されたデータ信号を含んでもよい。このような伝搬されたデータ信号は、様々な形態をとることができ、電磁信号、光信号、またはこれらの任意の適切な組み合わせを含むことができるが、これらに限定されない。コンピュータ可読信号媒体は、更にコンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよい。該コンピュータ可読媒体は、指令実行システム、装置もしくはデバイスによって使用されるか、またはそれらに組み込まれて使用されるプログラムを、送信、伝搬または転送することができる。コンピュータ可読媒体に含まれるプログラムコードは任意の適切な媒体で送信することができ、無線、有線、光ケーブル、ＲＦなど、またはこれらの任意の適切な組み合わせを含むが、これらに限定されない。
【００７８】
図面におけるフローチャートおよびブロック図は、本発明の各実施形態に係る方法、装置およびコンピュータプログラム製品により実現可能なアーキテクチャ、機能および動作を示している。ここで、フローチャートまたはブロック図における各ブロックは、１つのモジュール、プログラムセグメントもしくはコードの一部を表してもよく、該モジュール、プログラムセグメントもしくはコードの一部は、規定されたロジック機能を達成するための１つ以上の実行可能な指令を含む。なお、いくつかの代替実施態様において、ブロック内に示された機能は、図面に示された順番とは異なるもので実行されてもよい。例えば、連続して示された２つのブロックは、実際には関連する機能に応じて、ほぼ並行に実行されてもよく、逆の順番で実行されてもよい。なお、ブロック図および／またはフローチャートにおける各ブロック、並びに、ブロック図および／またはフローチャートにおけるブロックの組み合わせは、規定された機能もしくは動作を実行する、ハードウェアに基づく専用システムで実現されてもよく、または、専用ハードウェアとコンピュータ指令との組み合わせで実行されてもよい。
【００７９】
本発明の実施形態に記載されたユニットは、ソフトウェアで実現されてもよく、ハードウェアで実現されてもよい。記載されたユニットは、プロセッサに設けられてもよく、例えば、「プロセッサは、検出ユニットと、標識情報判定ユニットと、第１のロードユニットとを備える」ように記載されてもよい。その中でも、これらのユニットの名称は、ある場合において当該ユニット自体を限定するものではなく、例えば、検出ユニットは、「ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するユニット」として記載されてもよい。
【００８０】
一方、本発明は、コンピュータ可読媒体を更に提供し、該コンピュータ可読媒体は、上記実施形態に記載されたサーバに含まれるものであってもよく、独立に存在して該サーバに組み立てられていないものであってもよい。上記コンピュータ可読媒体には、１つまたは複数のプログラムが記憶されており、上記１つまたは複数のプログラムが当該サーバによって実行されると、該サーバは、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するステップと、指令が検出されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードすることを示すための識別情報が、ロード対象のカーネルモジュールに存在しているか否かを判定するステップと、ロード対象のカーネルモジュールに識別情報が存在していると判定されたことに応じて、ロード対象のカーネルモジュールをターゲットカーネルにロードするステップと、を実行する。
【００８１】
以上の記載は、本発明の好ましい実施形態、および使用された技術的原理の説明に過ぎない。本発明に係る発明の範囲が、上記の技術的特徴の特定な組み合わせからなる技術案に限定されるものではなく、上記の本発明の趣旨を逸脱しない範囲で、上記の技術的特徴またはそれらの同等の特徴を任意に組み合わせたものからなる他の技術案も含むべきであることを、当業者は理解すべきである。例えば、上記の特徴と、本発明に開示された（これらに限定されていない）類似の機能を持っている技術的特徴とを互いに置き換えてなる技術案が挙げられる。
【図１】
2019532414.tif 000003
【図２】
2019532414.tif 000004
【図３】
2019532414.tif 000005
【図４】
2019532414.tif 000006
【図５】
2019532414.tif 000007
【図６】
2019532414.tif 000008
【図７】
2019532414.tif 000009
【手続補正書】
【提出日】平成31年4月23日(2019.4.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
カーネルモジュールロード方法であって、
ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するステップと、
前記指令が検出されたことに応じて、前記ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するステップであって、前記識別情報は、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードすることを示すためのものである、ステップと、
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするステップと、を含む、
ことを特徴とするカーネルモジュールロード方法。
【請求項２】
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするステップは、
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記識別情報に対してセキュリティ検証を行うことと、
前記識別情報がセキュリティ検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードすることと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記方法は、カーネルモジュール内で識別情報を生成するステップを更に含み、前記生成するステップは、
カーネルモジュールを取得し、前記カーネルモジュールが事前設定条件を満たすか否かを判定することと、
前記カーネルモジュールが前記事前設定条件を満たすと判定されたことに応じて、事前設定方法によって前記カーネルモジュール内で識別情報を生成することと、
を含むことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記事前設定条件は、前記カーネルモジュールとロード対象の前記カーネルモジュールのカーネルとが互換性を有することを含む、
ことを特徴とする請求項３に記載の方法。
【請求項５】
前記方法は、
前記ロード対象のカーネルモジュールに前記識別情報が存在していないと判定されたことに応じて、前記ロード対象のカーネルモジュールに対してロード検証を行うステップと、
前記ロード対象のカーネルモジュールがロード検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするステップと、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項６】
カーネルモジュールロード装置であって、
ロード対象のカーネルモジュールをターゲットカーネルにロードすることを指示するための指令を検出するように配置される検出ユニットと、
前記指令が検出されたことに応じて、前記ロード対象のカーネルモジュールに識別情報が存在するか否かを判定するように配置される識別情報判定ユニットであって、前記識別情報は、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードすることを示すためのものである、識別情報判定ユニットと、
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするように配置される第１のロードユニットと、
を備えることを特徴とするカーネルモジュールロード装置。
【請求項７】
前記第１のロードユニットは、更に
前記ロード対象のカーネルモジュールに前記識別情報が存在していると判定されたことに応じて、前記識別情報に対してセキュリティ検証を行い、
前記識別情報がセキュリティ検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードする、ように配置されることを特徴とする請求項６に記載の装置。
【請求項８】
前記装置は、
カーネルモジュールを取得し、前記カーネルモジュールが事前設定条件を満たすか否かを判定するように配置される取得ユニットと、
前記カーネルモジュールが前記事前設定条件を満たすと判定されたことに応じて、事前設定方法によって前記カーネルモジュール内で識別情報を生成するように配置される生成ユニットと、
を更に備えることを特徴とする請求項６または７に記載の装置。
【請求項９】
前記事前設定条件は、前記カーネルモジュールとロード対象の前記カーネルモジュールのカーネルとが互換性を有することを含む、
ことを特徴とする請求項８に記載の装置。
【請求項１０】
前記装置は、
前記ロード対象のカーネルモジュールに前記識別情報が存在していないと判定されたことに応じて、前記ロード対象のカーネルモジュールに対してロード検証を行うように配置される検証ユニットと、
前記ロード対象のカーネルモジュールがロード検証を通過した場合、前記ロード対象のカーネルモジュールを前記ターゲットカーネルにロードするように配置される第２のロードユニットと、
を更に備えることを特徴とする請求項６に記載の装置。
【請求項１１】
サーバであって、
１つ以上のプロセッサと、
１つ以上のプログラムを記憶するための記憶装置と、を備え、
前記１つ以上のプログラムが前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに請求項１〜５のいずれか一項に記載の方法を実現させる、
ことを特徴とするサーバ。
【請求項１２】
コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、
前記コンピュータプログラムがプロセッサによって実行されると、請求項１〜５のいずれか１項に記載の方法を実行させる、
ことを特徴とするコンピュータ可読記憶媒体。
【請求項１３】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１〜５のいずれか１項に記載の方法を実現させるコンピュータプログラム。
【国際調査報告】
2019532414.tif 000010
2019532414.tif 000011
2019532414.tif 000012
2019532414.tif 000013