【手続補正書】
【提出日】平成28年8月12日(2016.8.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
オペレーティング・システム・カーネルを検査してバイト・アドレス可能永続的ランダム・アクセス・メモリー（ＢＰＲＡＭ）における事前レイアウトのためにコードおよびデーターを識別するコンピューター実装方法であって、
高速レイアウトを実行するターゲット・オペレーティング・システム・カーネルを識別し、前記ターゲット・オペレーティング・システム・カーネルの高速ブーティング・イメージを作るステップであって、前記ターゲット・オペレーティング・システム・カーネルが、前記高速ブーティング・イメージとはレイアウトが異なる１つ以上のモジュールを含む、格納済みフォーマットを有するステップと、
前記ターゲット・オペレーティング・システム・カーネルに対して静的分析を実行し、前記ターゲット・オペレーティング・システム・カーネルに関連する１つ以上の静的又は動的リンク・モジュールを判定し、前記ターゲット・オペレーティング・システム・カーネルによって使用されるデーターの内、ＢＰＲＡＭにおける格納に適した変化が少ないものを識別するステップと、
前記ターゲット・オペレーティング・システム・カーネルを実行し前記ターゲット・オペレーティング・システム・カーネルの初期化を監視することによって動的分析を実行し、前記ターゲット・オペレーティング・システム・カーネルに関連する追加のモジュールおよびデーターを識別するステップと、
前記高速ブーティング・イメージを格納するのに適したＢＰＲＡＭデバイスを識別するステップと、
静的および動的分析の間に識別され、前記ターゲット・オペレーティング・システム・カーネルの格納済みフォーマットとは異なる前記ターゲット・オペレーティング・システム・カーネルのメモリー内レイアウトに基づいて、前記高速ブーティング・イメージを作るステップであって、前記高速ブーティング・イメージが、実行する準備ができており、前記ターゲット・オペレーティング・システム・カーネルを実行する要求を受ける前に作られる、ステップと、
前記高速ブーティング・イメージを前記識別したＢＰＲＡＭデバイスにコピーするステップと、
を含み、前記ステップが少なくとも１つのプロセッサーによって実行される、方法。
【請求項２】
請求項１記載の方法において、前記ターゲット・オペレーティング・システム・カーネルを識別するステップが、既存のデーター記憶デバイスのブート・レコードまたは他のデーター構造を検査するステップ、コンピューター・システムのブート・アップを監視するステップ、および前記ターゲット・オペレーティング・システム・カーネルを示すモジュール・パスを受けるステップの内少なくとも１つを含む、方法。
【請求項３】
請求項１記載の方法において、前記静的分析を実行するステップが、前記ターゲット・オペレーティング・システム・カーネルに関連する主モジュールをロードし、前記ロードされた主モジュールの実行可能フォーマットを検査して前記モジュールの１つ以上のセクションを識別し、前記識別されたセクションの少なくとも１つ内において識別されたマシン・コードをディスアセンブルするステップを含む、方法。
【請求項４】
請求項１記載の方法において、静的分析を実行するステップが、前記ターゲット・オペレーティング・システム・カーネルによって参照された１つ以上のモジュールをロードし、これらのモジュールに対しても静的分析を実行するステップを含む、方法。
【請求項５】
請求項１記載の方法において、動的分析を実行するステップが、１つ以上の動的に割り当てられ前記ターゲット・オペレーティング・システム・カーネルによって使用されたメモリー構造と、ある条件の下でのみ動的にロードされたモジュールと、特定のハードウェア環境に基づいて異なる前記ターゲット・オペレーティング・システム・カーネルの部分とを識別するステップを含む、方法。
【請求項６】
請求項１記載の方法において、静的および動的分析を実行するステップが、静的および動的な分析の間に識別された前記モジュールの各々を識別するシグネチャー情報を捕らえるステップを含み、前記シグネチャー情報が、前記識別されたモジュールの内１つが変化した場合に再びレイアウト分析をいつ実行すべきか判定するために使用可能である、方法。
【請求項７】
請求項１記載の方法であって、更に、静的および動的分析の間、前記ターゲット・オペレーティング・システム・カーネルに対して外部にあるリソースに影響を及ぼす初期化ステップを、前記ターゲット・オペレーティング・システム・カーネルが前記高速ブーティング・イメージからロードしているときに実行できるように、ハードウェア・デバイスに影響を及ぼすあらゆる初期化を観察し記録するステップを含む、方法。
【請求項８】
請求項１記載の方法において、ＢＰＲＡＭデバイスを識別するステップが、永続的でバイト・アドレス可能であり、前記高速ブーティング・イメージを格納する十分な空き空間を有するメモリー・デバイスを識別するステップを含む、方法。
【請求項９】
請求項１記載の方法であって、更に、前記ＢＰＲＡＭデバイスに関する摩耗ステータス情報を判定するステップを含み、前記ＢＰＲＡＭデバイスを識別するステップが、前記判定した摩耗ステータス情報に基づいて、前記ＢＰＲＡＭデバイス内において、前記高速ブーティング・イメージを格納するための位置を選択するステップを含む、方法。
【請求項１０】
請求項１記載の方法であって、前記高速ブーティング・イメージを作るステップが、１つ以上のモジュール・コード・セクションおよび１つ以上のモジュール・データー・セクションの内容を含む統一レイアウトを作るステップを含む、方法。
【請求項１１】
請求項１記載の方法において、前記高速ブーティング・イメージをコピーするステップが、前記高速ブーティング・イメージから初期化することによって不要とされる１つ以上の初期化ステップを反映するために、前記高速ブーティング・イメージ内における前記ターゲット・オペレーティング・システム・カーネルのエントリー・ポイントを変更するステップを含む、方法。
【請求項１２】
バイト・アドレス可能な永続メモリーを使用するオペレーティング・システムのレイアウトおよび実行のためのコンピューター・システムであって、
以下のコンポーネント内に具体化されたソフトウェア命令を実行するように構成されたプロセッサーおよびメモリーと、
ブート・アップするためにオペレーティング・システム・カーネルによって使用されるカーネル・データーおよびソフトウェア命令を判定し、前記オペレーティング・システム・カーネルがバイト・アドレス可能な永続ランダム・アクセス・メモリー（ＢＰＲＡＭ）からブートすることを可能にする、ＢＰＲＡＭに対して、前記カーネル・データーおよびソフトウェア命令のレイアウトを決定するカーネル・レイアウト・コンポーネントと、
前記オペレーティング・システム・カーネルに関連するソフトウェア・バイナリー、データー・モジュール、または他の格納されたソフトウェア・データーを含むソフトウェアを静的に分析し、前記ソフトウェアがどのように命令およびデーターにアクセスするか決定する静的分析コンポーネントと、
実行中に前記オペレーティング・システム・カーネルを動的に分析し、前記オペレーティング・システム・カーネルの挙動に関する追加情報を収集する動的分析コンポーネントと、
前記静的および動的な分析および前記カーネル・レイアウト・コンポーネントによって決定された前記レイアウトに基づいて、前記オペレーティング・システム・カーネルを初期化するためのイメージをＢＰＲＡＭ内に作り、前記作ったイメージを前記ＢＰＲＡＭに格納するレイアウト作成コンポーネントと、
前記レイアウト作成コンポーネントによって前記ＢＰＲＡＭに格納された前記イメージを使用して、前記オペレーティング・システム・カーネルを初期化するカーネル初期化コンポーネントと、
を含む、システム。
【請求項１３】
請求項１２記載のシステムにおいて、前記カーネル・レイアウト・コンポーネントが、更に、前記オペレーティング・システム・カーネルの前記レイアウトを決定し前記決定したレイアウトを前記ＢＰＲＡＭにコピーするために、前記静的分析コンポーネント、動的分析コンポーネント、およびレイアウト作成コンポーネントを呼び出すように構成される、システム。
【請求項１４】
請求項１２記載のシステムにおいて、前記カーネル・レイアウト・コンポーネントが、更に、前記レイアウト作成コンポーネントによって前記ＢＰＲＡＭに格納された前記イメージから前記コンピューター・システムをブートさせるために、１つ以上のブート・データー構造を変更するように構成される、システム。
【請求項１５】
請求項１２記載のシステムにおいて、前記レイアウト作成コンポーネントが、前記オペレーティング・システム・カーネルを実行するために使用されるメモリー内データーの少なくとも一部を表す前記イメージを作るために、１つ以上の格納されたモジュールからデーター、バイナリー・コード、および他のソフトウェア情報にアクセスする、システム。