JP2005523516A - 複数のカーネルバージョン上でランするカーネルモジュールを修正する装置及び方法 - Google Patents

複数のカーネルバージョン上でランするカーネルモジュールを修正する装置及び方法 Download PDF

Info

Publication number
JP2005523516A
JP2005523516A JP2003586753A JP2003586753A JP2005523516A JP 2005523516 A JP2005523516 A JP 2005523516A JP 2003586753 A JP2003586753 A JP 2003586753A JP 2003586753 A JP2003586753 A JP 2003586753A JP 2005523516 A JP2005523516 A JP 2005523516A
Authority
JP
Japan
Prior art keywords
kernel
module
target system
symbol
compiled
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003586753A
Other languages
English (en)
Inventor
トーマス ハンデイル,
Original Assignee
コンピュータ アソシエイツ シンク,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コンピュータ アソシエイツ シンク,インコーポレイテッド filed Critical コンピュータ アソシエイツ シンク,インコーポレイテッド
Publication of JP2005523516A publication Critical patent/JP2005523516A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

ターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させる方法及び装置が提供される。カーネルアナライザーがターゲットシステム上のカーネルからエラーチェック測度とカーネルバージョン識別とを抽出する。モジュール適用コンポーネントが、コンパイルしたカーネルモジュール内に、ターゲットシステム上のカーネルからカーネルアナライザーにより抽出されたエラーチェック測度を挿入し、且つコンパイルしたカーネルモジュールにおけるバージョン識別をターゲットシステム上のカーネルからカーネルアナライザーにより抽出されたカーネルバージョン識別で置換させる。

Description

本発明はコンピュータオペレーティングシステムに関するものである。特に、本発明は、ターゲットシステムのオペレーティングシステムカーネルに対してカーネルモジュールを適用させることに関するものである。
オペレーティングシステムはオペレーティングコンピュータハードウエアを使用可能なものとさせる1個又はそれ以上のコンピュータプログラムである(例えば、1個又はそれ以上のタスクをコンピュータが実施するために案内を行うコンピュータ命令の集まり)。DOS、Windows、Mac、UNIX、Palmはオペレーティングシステムの幾つかのファミリィである。
オペレーティングシステムの主要な機能はコンピュータのリソースの管理である。これらのリソースは、例えば、プロセッサ、格納装置(例えば、メモリ、ハードディスク等)、入力/出力装置(例えば、プリンタ、モニタディスプレイ等)、及び通信装置(例えば、モデム、ネットワークインターフェース等)を包含することが可能である。リソース管理タスクは、例えば、複数のユーザによるデータ及びその他のリソースの共有を与えること、ハンドシェーキング及びその他のネットワーク通信タスクを取り扱うこと等を包含している。
リソース管理等のオペレーティングシステム機能は、典型的に、平均的なコンピュータユーザに対してトランスペアレント即ち透明であるような態様で実施される。例えば、殆どのユーザはそのことに気が付いていないが、オペレーティングシステムは、一方においてのコンピュータリソースと、他方においての、ユーザが使用することが可能なアプリケーションプログラム(例えばワードプロセッサ、スプレッドシート、ウエブブラウザー等)との間のインターフェースとして作用する。オペレーティングシステムは、又、ユーザインターフェースを提供すること、権限のないユーザに対してのアクセス及びデータを保護すること、システムエラーから回復すること等のその他の機能を有している。
オペレーティングシステムカーネルはオペレーティングシステムの核即ちコアコンポーネントである。カーネルの機能は、プロセス管理、プロセス間通信、インタラプト処理、格納割当て/割当て解除に対するサポート、入力/出力アクティビティに対するサポート、システムセキュリティ手段等を包含することが可能である。これらの機能の各々は多数のタスクを包含している。例えば、セキュリティタスクはアクセス制御、ロギング及びモニタリング、格納及びファイルシステム管理、及びネットワーク及びモデム通信モニタリング等を包含する場合がある。
リナックスはUNIXオペレーティングシステムのファミリィの一員であり、且つx86プロセッサを具備するパソコンを包含する多様なコンピュータプラットフォーム上でランさせることが可能である。リナックスはUNIXの無償開放式実現例である。特に、リナックスカーネルに対するソースコードは公衆にとって広く入手可能であり、且つ継続して改良され、且つそうでなければ修正される。改良及び/又はその他のリナックスカーネルに対する変更が行われ且つ一般的に公衆によって採用されると、新たなリナックスバージョンがレリーズされる。公にレリーズされたリナックスカーネルバージョンは対応して割当てられたカーネルバージョン識別により識別することが可能である。
その他のオペレーティングシステムカーネルと同様に、リナックスカーネルは、典型的に、複数個のカーネルモジュールから構成されている。カーネルモジュールは1個又はそれ以上の対応するカーネルタスクを実施するプログラムである。カーネルバージョンは、そのカーネルバージョンがインストールされるべき特定のシステムに従って選択されるカーネルモジュールの組合わせとすることが可能である。2つのカーネルバージョンは、(a)一方のバージョンが他方のバージョンには存在しない付加的なモジュールを有しており、及び/又は(b)夫々のバージョンの2個のモジュールが異なる態様で(然しながら、多分、同じく満足の行くように)同一のタスクを実施するという点において異なる場合がある。
新たなカーネルモジュールがオペレーティングシステムカーネルへ付加される場合(又は既存のモジュールと置換)、新たなモジュールを具備するカーネルは再コンパイルされることを必要とする場合がある。カーネルのコンパイルは時間がかかるタスクである。複数のカーネルバージョンが積極的に使用されるリナックスのようなオペレーティングシステムの場合には、新たな(例えば、ファイアウォール)カーネルモジュールがその新たなモジュールを付加することが可能な複数の(カスタム又は公にレリーズされた)カーネルバージョンに対応して複数のカーネルコンパイルが行われる場合がある。
リナックスはロード可能なカーネルモジュールのダイナミックリンキング即ち動的結合を与える。1個のカーネルが動的結合可能なカーネルモジュールを使用する場合であっても、各動的結合可能なカーネルモジュールはロード可能なモジュール内にコンパイルされる。新たな動的結合可能なカーネルモジュールをロードすることが可能な1個のカーネルが再コンパイルされることが必要でない場合があるが、該新たな動的結合可能なカーネルモジュールは、典型的に、複数回コンパイルされ(ある場合には、数百回)、各コンパイルは夫々の(レリーズされたか又はカスタムの)カーネルバージョンを動的に結合することが可能な対応するロード可能なモジュールを提供する。この複数のコンパイルは時間がかかり且つかなりの不必要な格納部の消費を発生する。
本発明はターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させるカーネルモジュール修正装置を提供する。
1実施例においては、本装置は、カーネルアナライザーとモジュール適用コンポーネントとを包含している。カーネルアナライザーは、ターゲットシステム上のカーネルからエラーチェック測度及びカーネルバージョン識別を抽出する。モジュール適用コンポーネントは、コンパイルしたカーネルモジュール内に、ターゲットシステム上のカーネルからカーネルアナライザーにより抽出されたエラーチェック測度に対応するエラーチェックパラメータを挿入し、且つコンパイルしたカーネルモジュール内のバージョン識別をターゲットシステム上のカーネルからカーネルアナライザーにより抽出されたカーネルバージョン識別と置換する。
本発明は、又、ターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させる方法を提供する。本方法は、1実施例によれば、ターゲットシステム上のカーネルからエラーチェック測度及びカーネルバージョン識別を抽出し、コンパイルしたカーネルモジュール内にターゲットシステム上のカーネルから抽出したエラーチェック測度に対応するエラーチェックパラメータを挿入し、且つコンパイルしたカーネルモジュール内のバージョン識別をターゲットシステム上のカーネルから抽出したカーネルバージョン識別と置換させることを包含している。エラーチェックパラメータが挿入されるコンパイルしたカーネルモジュールは、ロード可能なリナックスカーネルモジュール及び/又はバイナリーとすることが可能である。その中にエラーチェックパラメータが挿入されており且つターゲットシステム上のカーネルから抽出したカーネルバージョン識別を担持している修正されコンパイルしたカーネルモジュールはターゲットシステム上のカーネル内にロード可能である。
別の実施例によれば、該エラーチェック測度は、ターゲットシステム上のカーネルから抽出した1個又はそれ以上のチェックサムを包含することが可能である。本方法は、更に、コンパイルしたカーネルモジュール内に記号テーブルを位置決めさせ、且つ、記号テーブル内の各記号名に対して、該記号名の解析を実施することを包含することが可能である。記号名解析は、記号名をターゲットシステム上のカーネル内の記号と比較することを包含することが可能である。その記号名がターゲットシステム上のカーネル内の1個の記号と一致する場合には、その一致した記号と関連するチェックサムを抽出し且つコンパイルしたカーネルモジュールの記号テーブル内の記号名へアペンド即ち付属させることが可能である。本方法は、又、該記号名を解析した後に、記号テーブルの1個又はそれ以上のオフセットを調節することを包含することが可能である。
本発明は、複数のカーネルバージョン上でランするカーネルモジュールを修正するツールを提供している(方法及び装置の形態において)。該ツールは、コンピュータにより読取可能な媒体上に格納されるソフトウエアユーティリティ(例えば、1個又はそれ以上のコンピュータプログラム)で実現することが可能であり及び/又はコンピュータネットワーク又はその他の伝送媒体を介して送信することが可能である。ソフトウエアユーティリティが実行されるコンピュータ又はコンピュータシステムはターゲットシステムとすることが可能である。
図1に示した1実施例に基づくカーネルモジュール修正装置10は、ターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させる。装置10は、カーネルアナライザー11及びモジュール適用コンポーネント12を包含している。カーネルアナライザー及びモジュール適用コンポーネントはソフトウエアユーティリティにおけるモジュール又はコードセクションとすることが可能である。
1実施例に基づいて、ターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させる方法を図1及び2を参照して説明する。カーネルアナライザーコンポーネント11がターゲットシステムカーネル5からエラーチェック測度5a及びカーネルバージョン識別5bを抽出する(ステップS21)。モジュール適用コンポーネント12が、コンパイルしたカーネルモジュール20内に、ターゲットシステム上のカーネルからカーネルアナライザーにより抽出されたエラーチェック測度に対応するエラーチェックパラメータを挿入し(ステップS22)、且つコンパイルしたカーネルモジュール20内のバージョン識別をターゲットシステム上のカーネルからカーネルアナライザーにより抽出されたカーネルバージョン識別と置換させる(ステップS23)。
エラーチェックパラメータをその中に挿入するコンパイルしたカーネルモジュールはロード可能なリナックスカーネルモジュール及び/又はバイナリーとすることが可能である。その中にエラーチェックパラメータを挿入しており且つターゲットシステム上のカーネルから抽出したカーネルバージョン識別を担持するコンパイルしたカーネルモジュールはターゲットシステム上のカーネル内にロードすることが可能である。
ターゲットシステムカーネルから抽出したバージョン識別は、バージョン番号又は別のバージョン識別(例えば1個又はそれ以上の記号)とすることが可能である。
ターゲットシステムカーネルから抽出したエラーチェック測度は1個又はそれ以上のチェックサムとすることが可能である。エラーチェック測度がチェックサムである場合には、コンパイルしたカーネルモジュール内に挿入されるエラーチェックパラメータはエラーチェック測度と同一又は相補的なものとすることが可能であり、又、そうでない場合には、それから派生することが可能である。チェックサム方法は当該技術において公知である。説明の便宜上、この開示はこのような方法の詳細な説明を提供するものではない。いずれの場合においても、ターゲットシステムカーネルから抽出したエラーチェック測度に基づいて得られたエラーチェックパラメータを具備する修正したカーネルモジュールは、カーネルのエラーチェック基準を満足すべきである。
リナックスカーネルに対する例示的な実施例を以下に説明する。然しながら、理解すべきことであるが、本発明の要旨は、その他のタイプのオペレーティングシステムカーネルへ適用することが可能である。
カーネルモジュール修正装置は、あるカーネルバージョンのコンパイルしたリナックスカーネルモジュールを修正し且つターゲットシステム上の異なるカーネルバージョン内へローディングすべく適用されている修正したカーネルモジュールを発生するソフトウエアユーティリティとすることが可能である。該修正は、カーネルモジュールの記号テーブルヘッダーにおける記号テーブル及びカーネルモジュールのモジュール情報セクションにおけるバージョン識別に対する変化を包含している。
リナックスカーネルモジュールは、エグゼキュータブルアンドリンカブルフォーマット(ELF)と呼ばれるフォーマットへコンパイルすることが可能である。このELFフォーマットはモジュール/実行可能物に対して適切な実行及びリンケージ(結合)情報を記述する多数のセクション及びヘッダーを有している。該セクションは記号テーブル及びモジュール情報セクションを包含している。
コンパイルしたカーネルモジュールにおける記号テーブルはカーネルモジュールにおいて使用される識別子(即ち、記号、例えば、名称、ラベル等)、そのモジュールにおける識別子の位置、識別子属性のリストである。リナックスカーネルモジュールの記号テーブルにおいては、チェックサムが各記号名の終わりにアペンド即ち付属されている。チェックサム値は、モジュールがターゲットカーネル内に挿入される場合に、カーネルモジュールが同一の記号プロトタイプ、プロセッサオプコード等を使用することを検証するために使用することが可能である。これらの値が異なる場合には、カーネルは、未解決の記号が存在することを決定し且つカーネルモジュールをローディングするプロセスをアボートする。この問題を回避するために、チェックサムをカーネルモジュール内の記号から除去し且つターゲットカーネル内に格納されるチェックサムで置換させることが可能である。チェックサム置換は、未解決の記号エラーなしでモジュールをロードさせることを可能とする。
別のリナックスカーネルバージョンに対応するコンパイルしたリナックスカーネルモジュールをターゲットシステム上のリナックスカーネルに対して適用させる方法について図3及び4を参照して以下に説明する。
ELFフォーマットカーネルモジュールのセクションヘッダーを読取り且つユーティリティにより構文解析する(ステップS31)。セクションヘッダー情報に基づいて、ユーティリティがカーネルモジュール内の記号テーブルのオフセットを見つけ出し、且つそのオフセットを使用してカーネルモジュール内の記号テーブルを探し出す(ステップS32)。次いで、該記号テーブルを読取り且つユーティリティにより構文解析する(ステップS33)。「ストリングテーブル」と呼ばれるモジュール内に格納される記号名に対するオフセットが記号テーブル情報から決定される(ステップS34)。次いで、該記号名を読取り且つストリングテーブルから一度に1つづつ解析される(ステップS35)。
ストリングテーブル内の記号名の解析は以下の態様で実施される(図4)。ストリングテーブル内の1個の記号名が選択される(ステップS351)。選択された記号名をチェックしてチェックサムが取り付けられているか否かを決定する(ステップS352)。チェックサムが見つからない場合には(ステップS352)、その記号名をスキップし且つ次の記号名を選択する。その記号名が取り付けられているチェックサムを包含している場合には(ステップS352)、そのチェックサムを剥ぎ取り(ステップS353)且つ次いで残りの名前をターゲットシステム上のカーネル内の記号と比較する(ステップS354)。一致が見つかると(ステップS354)、ターゲットシステムカーネル内の一致した記号にアペンドされているチェックサムを抽出し且つカーネルモジュールのストリングテーブル内の選択した記号名へアペンドさせる(ステップS355)。一致が見つからない場合には(ステップS354)、エラーメッセージを発生し、未解決の記号が存在することを表わし(ステップS356)、且つ記号名解析手順が進行することはない。そうでない場合には、本プロセスは、記号名の全てがチェックされ且つ修正されるまで継続して行われる(ステップS357)。ストリングテーブルに対する修正が行われると(ステップS358)、ストリングテーブルの寸法が変化している場合がある。従って、ELFフォーマットヘッダーのオフセットはストリングテーブル寸法における変化を反映するために調節されることを必要とする場合がある(ステップS359)。
以下の擬似コードはこのプロセスを記述している。
Figure 2005523516
次に、モジュール情報セクションが修正される。モジュール修正セクションは、それに対してカーネルモジュールがコンパイルされたカーネルバージョンを識別する情報を保持している。モジュール情報内にバージョン識別が埋め込まれており、それはターゲットシステム上のカーネルのカーネルバージョン識別により置換される。バージョン識別の修正は、カーネルバージョン不一致エラーメッセージなしでカーネルモジュールをターゲットシステム上のカーネル内へロードさせることを可能とする。
上述したELFフォーマット構文解析(ステップS31)は、又、該モジュールのモジュール情報セクションに対するオフセットを発生する(ステップS32)。モジュール情報セクションが読み取られ且つ構文解析されて(ステップS36)モジュール情報セクションと関連するストリングテーブル(記号名ストリングテーブルとは異なる)に対するオフセットを見つけ出す(ステップS37)。モジュール情報ストリングテーブルが読み取られ且つ構文解析される(ステップS38)。次いで、ストリングテーブルがバージョン識別に対してサーチされる。例えば、コンパイルしたリナックスカーネルモジュールにおいて、バージョン識別はストリング「kernel version=」の後に続く(ステップS39)。このストリングが見つかると、リナックスカーネルモジュールがコンパイルされたカーネルバージョンのバージョン識別が「=」の符号に続く。次に、そのバージョン識別は、例えば、ターゲットシステム上の「uname」システムコールから得ることが可能なターゲットシステムのカーネルバージョン識別で置換される(ステップS40)。このバージョン識別修正はストリングテーブル寸法を変化させる場合がある(ステップS41)。従って、ストリングテーブル寸法は再計算されることが必要な場合があり、且つELFヘッダーオフセットはストリングテーブル寸法における変化を反映するために修正される場合がある(ステップS42)。
修正されたカーネルバージョンストリングは新たなカーネルモジュールとして書き出される(ステップS43)。修正されたカーネルモジュールはターゲットシステム上のカーネル内へロードすることが可能である。
以下のソースコードは例示的なソフトウエアユーティリティに対するものである。
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
Figure 2005523516
上の特定の実施例は例示的なものであり且つ本発明の精神又は特許請求の範囲から逸脱することなしにこれらの実施例に関して多くの変形を導入することが可能である。異なる例示的な実施例の要素及び/又は特徴は、この開示及び特許請求の範囲内において互いに結合させることが可能であり及び/又は互いに置換することが可能である。
例えば、上述した実施例においてはバージョン識別修正が記号テーブル修正に続いているが、モジュール情報修正がエラーチェック調節に先行することが可能である。別の例として、ソフトウエアユーティリティがターゲットシステム上でランすることが可能であるが、カーネルモジュール修正装置は、ターゲットシステムのカーネルバージョン識別が既知であり且つターゲットシステム上のカーネルのエラーチェック測度も使用可能である場合には、ターゲットシステム以外のシステム(少なくともプロセッサとプログラム格納装置とを具備)上でラン即ち稼動すべく適応させることが可能である。
2002年4月17日で出願した米国仮特許出願第60/373,120号を読むことから付加的な変形例は当業者にとって自明なものであり、尚その仮特許出願の全体を引用により本明細書に導入する。
本発明の1実施例に基づくカーネルモジュール修正装置を示したブロック図。 ターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させるための本発明の1実施例に基づく方法のフローチャート。 本発明の1実施例に基づいて別のリナックスカーネルバージョンに対応するコンパイルしたリナックスカーネルモジュールをターゲットシステム上のリナックスカーネルに対して適用させる方法のフローチャート。 本発明の1実施例に基づいて記号名を解析する方法を示したフローチャート。

Claims (21)

  1. ターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させるカーネルモジュール修正装置において、
    前記ターゲットシステム上のカーネルからエラーチェック測度及びカーネルバージョン識別を抽出すべく適応されているカーネルアナライザー、
    前記ターゲットシステム上のカーネルから前記カーネルアナライザーにより抽出された前記エラーチェック測度に対応するエラーチェックパラメータを前記コンパイルしたカーネルモジュール内に挿入し且つ前記コンパイルしたカーネルモジュールにおけるバージョン識別を前記ターゲットシステム上のカーネルから前記カーネルアナライザーにより抽出した前記カーネルバージョン識別で置換させるべく適応されているモジュール適用コンポーネント、
    を有している装置。
  2. 請求項1において、前記エラーチェックパラメータが挿入される前記コンパイルされたカーネルモジュールがバイナリーである装置。
  3. 請求項1において、その中に前記エラーチェックパラメータを挿入しており且つ前記ターゲットシステム上のカーネルから抽出したカーネルバージョン識別を担持する前記修正しコンパイルしたカーネルモジュールが前記ターゲットシステム上のカーネル内へロード可能である装置。
  4. 請求項1において、前記エラーチェック測度が前記ターゲットシステム上のカーネルから前記カーネルアナライザーにより抽出された1個又はそれ以上のチェックサムを包含している装置。
  5. 請求項1において、前記カーネルアナライザーが前記コンパイルしたカーネルモジュール内に記号テーブルを位置決めし、且つ、前記記号テーブル内の各記号名に対して、前記記号名の解析を実施する装置。
  6. 請求項5において、前記カーネルアナライザーにより実施される記号名解析が前記記号名を前記ターゲットシステム上のカーネル内の記号と比較することを包含している装置。
  7. 請求項6において、前記記号名が前記ターゲットシステム上のカーネル内の1つの記号と一致する場合には、前記カーネルアナライザーがその一致した記号と関連するチェックサムを抽出し且つ前記モジュール適応コンポーネントが前記抽出したチェックサムを前記コンパイルしたカーネルモジュールの記号テーブル内の記号名へアペンドさせる装置。
  8. 請求項5において、前記モジュール適応コンポーネントが、前記記号名を解析した後に、前記記号テーブルの1個又はそれ以上のオフセットを調節する装置。
  9. 請求項1において、前記コンパイルしたカーネルモジュールがロード可能なリナックスカーネルモジュールである装置。
  10. ターゲットシステム上のカーネルとは異なる別のカーネルバージョンに対応するコンパイルしたカーネルモジュールをターゲットシステム上のカーネルに対して適用させる方法において、
    前記ターゲットシステム上のカーネルからエラーチェック測度及びカーネルバージョン識別を抽出し、
    前記ターゲットシステム上のカーネルから抽出したエラーチェック測度に対応するエラーチェックパラメータを前記コンパイルしたカーネルモジュール内に挿入し、
    前記コンパイルしたカーネルモジュール内のバージョン識別を前記ターゲットシステム上のカーネルから抽出したカーネルバージョン識別と置換させる、
    ことを包含している方法。
  11. 請求項10において、前記エラーチェックパラメータが挿入されるコンパイルしたカーネルモジュールがバイナリーである方法。
  12. 請求項10において、その中にエラーチェックパラメータを挿入しており且つ前記ターゲットシステム上のカーネルから抽出したカーネルバージョン識別を担持している前記修正しコンパイルしたカーネルモジュールが前記ターゲットシステム上のカーネル内にロード可能である方法。
  13. 請求項10において、前記抽出したエラーチェック測度が前記ターゲットシステム上のカーネルから抽出した1個又はそれ以上のチェックサムを包含している方法。
  14. 請求項10において、更に、前記コンパイルしたカーネルモジュール内に記号テーブルを位置決めし、且つ、前記記号テーブル内の各記号名に対して、前記記号名の解析を実施することを包含している方法。
  15. 請求項14において、前記記号名解析が前記記号名を前記ターゲットシステム上のカーネル内の記号と比較することを包含している方法。
  16. 請求項15において、前記記号名が前記ターゲットシステム上のカーネル内の1個の記号と一致する場合には、前記一致した記号と関連するチェックサムが抽出され、次いで、前記コンパイルしたカーネルモジュールの記号テーブル内の記号名へアペンドされる方法。
  17. 請求項14において、前記記号テーブルのオフセットが、前記記号名が解析された後に調節される方法。
  18. 請求項10において、前記コンパイルしたカーネルモジュールがロード可能なリナックスカーネルモジュールである方法。
  19. システムにおいて、
    プロセッサ、
    本システムにより読取可能であり、請求項10の方法を実施するためにマシンにより実行可能な命令からなるプログラムをタンジブルに実現しているプログラム格納装置、
    を有しているシステム。
  20. マシンにより読取可能なプログラム格納装置において、請求項10の方法を実施するためにマシンにより実行可能な命令からなるプログラムをタンジブルに実現しているプログラム格納装置。
  21. 請求項10の方法を実施するためにコンピュータにより実行可能な命令を実現する伝送媒体において実現されるコンピュータデータ信号。
JP2003586753A 2002-04-17 2003-04-17 複数のカーネルバージョン上でランするカーネルモジュールを修正する装置及び方法 Pending JP2005523516A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37312002P 2002-04-17 2002-04-17
PCT/US2003/012202 WO2003090077A1 (en) 2002-04-17 2003-04-17 Apparatus and method for modifying a kernel module to run on multiple kernel versions

Publications (1)

Publication Number Publication Date
JP2005523516A true JP2005523516A (ja) 2005-08-04

Family

ID=29250968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003586753A Pending JP2005523516A (ja) 2002-04-17 2003-04-17 複数のカーネルバージョン上でランするカーネルモジュールを修正する装置及び方法

Country Status (11)

Country Link
US (1) US7076770B2 (ja)
EP (1) EP1495402B1 (ja)
JP (1) JP2005523516A (ja)
KR (1) KR20040099439A (ja)
CN (1) CN1650264A (ja)
AU (1) AU2003222657A1 (ja)
BR (1) BR0309323A (ja)
CA (1) CA2480441A1 (ja)
DE (1) DE60317654T2 (ja)
IL (1) IL164607A0 (ja)
WO (1) WO2003090077A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019532414A (ja) * 2017-02-22 2019-11-07 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド カーネルモジュールロード方法および装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568188B2 (en) * 2003-03-07 2009-07-28 Microsoft Corporation Method for testing a software shim
US7634770B2 (en) * 2003-05-19 2009-12-15 Hewlett-Packard Development Company, L.P. Kernel module interface dependencies
US7954086B2 (en) * 2003-05-19 2011-05-31 Hewlett-Packard Development Company, L.P. Self-describing kernel modules
US20060015860A1 (en) * 2004-07-15 2006-01-19 Sony Corporation And Sony Electronics, Inc. System and method for storing attributes in a file for processing an operating system
US8042188B2 (en) * 2005-07-15 2011-10-18 Sony Corporation Information processing apparatus, information recording medium manufacturing apparatus, information recording medium, method and computer program
US7581141B2 (en) * 2006-03-01 2009-08-25 Sun Microsystems, Inc. Kernel module compatibility validation
US20090271780A1 (en) * 2008-04-24 2009-10-29 Moschip Semiconductor Technology Limited Automatic complete firmware upgrade
US8689206B2 (en) * 2009-03-05 2014-04-01 International Business Machines Corporation Isolating operating system in-memory modules using error injection
KR101042979B1 (ko) * 2009-10-23 2011-06-21 한국항공대학교산학협력단 임베디드 시스템의 신뢰성 평가를 위한 시뮬레이션 커널을 이용하는 오류주입시험 장치
US8914815B2 (en) * 2013-05-18 2014-12-16 Red Hat, Inc. Automated framework for tracking and maintaining kernel symbol list types
CN103312706B (zh) * 2013-06-04 2017-05-10 百度在线网络技术(北京)有限公司 网络访问控制的方法和装置
CN104679532B (zh) * 2013-11-27 2018-12-11 腾讯科技(深圳)有限公司 内核模块加载方法和装置
CN104021023A (zh) * 2014-06-24 2014-09-03 浪潮电子信息产业股份有限公司 一种突破内核模块版本控制解决方法
CN104375874B (zh) * 2014-12-11 2017-05-17 北京奇虎科技有限公司 加载Linux内核驱动的方法及装置
CN104572235B (zh) * 2014-12-31 2019-02-26 北京奇虎科技有限公司 一种可加载内核模块的编译方法和装置
CN105549965A (zh) * 2015-12-09 2016-05-04 浪潮电子信息产业股份有限公司 一种将驱动集成到不同Linux内核版本的方法
CN105893085A (zh) * 2016-03-30 2016-08-24 百度在线网络技术(北京)有限公司 内核模块加载方法和装置
CN108052327A (zh) * 2017-12-11 2018-05-18 北京奇虎科技有限公司 一种内核模块编译、加载方法及装置
CN109992293B (zh) * 2018-01-02 2023-06-20 深圳市宇通联发科技有限公司 Android系统组件版本信息的组装方法及装置
CN111382063B (zh) * 2018-12-30 2023-09-08 贝壳技术有限公司 一种react兼容的校验方法及装置
CN111752620A (zh) * 2019-03-26 2020-10-09 阿里巴巴集团控股有限公司 内核模块的处理方法和加载方法
CN111767072B (zh) * 2019-04-02 2023-03-14 浙江宇视科技有限公司 客户端制作方法及装置
US20220147636A1 (en) * 2020-11-12 2022-05-12 Crowdstrike, Inc. Zero-touch security sensor updates
CN113220303A (zh) * 2021-04-21 2021-08-06 北京麟卓信息科技有限公司 一种内核模块的编译方法和系统
CN116243971B (zh) * 2023-05-10 2023-07-28 北京麟卓信息科技有限公司 一种基于静态依赖自举的内核无关的模块构建方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359730A (en) * 1992-12-04 1994-10-25 International Business Machines Corporation Method of operating a data processing system having a dynamic software update facility
US6199203B1 (en) * 1998-07-21 2001-03-06 Hewlett-Packard Company Memory management techniques for on-line replaceable software
US6219828B1 (en) * 1998-09-30 2001-04-17 International Business Machines Corporation Method for using two copies of open firmware for self debug capability
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US7287259B2 (en) * 2000-04-24 2007-10-23 Microsoft Corporation Isolating assembly versions for binding to application programs

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019532414A (ja) * 2017-02-22 2019-11-07 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド カーネルモジュールロード方法および装置

Also Published As

Publication number Publication date
DE60317654D1 (de) 2008-01-03
AU2003222657A1 (en) 2003-11-03
EP1495402A1 (en) 2005-01-12
CN1650264A (zh) 2005-08-03
CA2480441A1 (en) 2003-10-30
US7076770B2 (en) 2006-07-11
BR0309323A (pt) 2007-02-21
WO2003090077A1 (en) 2003-10-30
DE60317654T2 (de) 2008-10-30
EP1495402B1 (en) 2007-11-21
IL164607A0 (en) 2005-12-18
US20040221275A1 (en) 2004-11-04
KR20040099439A (ko) 2004-11-26

Similar Documents

Publication Publication Date Title
JP2005523516A (ja) 複数のカーネルバージョン上でランするカーネルモジュールを修正する装置及び方法
US7055146B1 (en) Method and system for dynamically inserting modifications for identified programs
US7124408B1 (en) Binding by hash
US6609248B1 (en) Cross module representation of heterogeneous programs
JP5208350B2 (ja) 自己記述型ソフトウェアイメージ更新コンポーネント
US8701104B2 (en) System and method for user agent code patch management
US20070271617A1 (en) Vulnerability check program, vulnerability check apparatus, and vulnerability check method
US9754104B2 (en) Method for securing Java bytecode
US8141035B2 (en) Method for accessing internal states of objects in object oriented programming
US9116770B2 (en) Recipe-based application conversion
CN112685410B (zh) 业务规则校验方法、装置、计算机设备及存储介质
KR20080018196A (ko) 순응하는 장치와 함께 배포하기 위한 하드웨어 및소프트웨어 라이센스를 식별하기 위한 데이터 구조
CN108595187A (zh) 安卓安装包集成软件开发工具包的法、装置及存储介质
CN112166419A (zh) 检测软件漏洞的电子装置和操作该电子装置的方法
US10409572B2 (en) Compiled file normalization
US20060041873A1 (en) Computer system and method for verifying functional equivalence
US7730451B2 (en) Source server
US7730468B1 (en) System and method providing on-demand generation of specialized executables
US7458063B2 (en) Method and apparatus for supporting functionality documentation
CN110826074A (zh) 一种应用漏洞检测方法、装置和计算机可读存储介质
US7644401B2 (en) Executable file creation
CN115167862A (zh) 补丁方法及相关设备
US20030079049A1 (en) Representation of java data types in virtual machines
Abrath et al. $\Delta $ Δ Breakpad: Diversified Binary Crash Reporting
CN113821829B (zh) 一种数据校验的方法、装置和存储介质