(57)【特許請求の範囲】
【請求項１】
プロセッサと、
プロセッサに結合され、プロセッサにより実行可能なソフトウェア画像を記憶する記憶装置と、
プロセッサに結合された第１の媒体駆動装置と、
プロセッサに結合された第２の媒体駆動装置と、
ソフトウェア転送パッケージとを具備し、
前記ソフトウェア転送パッケージは、第１の媒体駆動装置へロード可能でありソフトウェア画像を記憶するソフトウェア転送媒体と第２の媒体駆動装置へロード可能でありダウンロードプログラムを記憶するソフトウェアダウンロード媒体を具備し、
ソフトウェア画像はただ１つの識別されたコンピュータだけにダウンロードされ実行されるように構成され、コンピュータは全ての他のコンピュータからそのコンピュータを弁別する識別子でエンコードされ、前記コンピュータを弁別する識別子はコンピュータのメモリに書き込まれ、
ソフトウェア転送媒体は前記識別子を含んでいる識別キーと、ランダムに生成された番号を含んでいるランダムな番号キーを有する第１の識別ファイルを含んでおり、
ダウンロードプログラムは前記コンピュータを実行させて、記憶装置へのソフトウェア画像のダウンロードを制御し、ソフトウェアダウンロード媒体は前記識別子を含んでいる識別キーと、ランダムに生成された番号を含んでいるランダムな番号キーを有する第２の識別ファイルを含んでおり、
ソフトウェア転送媒体とソフトウェアダウンロード媒体とコンピュータは、ソフトウェア画像がただ１つの識別されたコンピュータの記憶装置だけにダウンロード可能であり、他へはダウンロードが可能でないように構成されており、
ダウンロードプログラムはさらに、プロセッサによって実行可能なルーチンを含んでおり、
前記ルーチンは、前記コンピュータを実行させて、
第１と第２の識別ファイルをアクセスし、
コンピュータのメモリに書き込まれている前記識別子をアクセスし、
第１の識別ファイルのランダムに生成された番号キーを第２の識別ファイルのランダムに生成された番号キーと比較し、
前記識別子を第１および第２の識別ファイルの識別キーと比較し、
第１の識別ファイルのランダムに生成された番号キーが第２の識別ファイルのランダムに生成された番号キーに対応し、前記識別子が第１および第２の識別ファイルの識別キーに対応する場合にのみ、ソフトウェア画像をソフトウェア転送媒体からコンピュータの記憶装置へ転送する、コンピュータ。
【請求項２】
コンピュータのメモリに記憶されている識別子を有する権限を与えられたコンピュータの記憶装置のみにソフトウェアがダウンロードされることを許容するソフトウェア秘密保護システムにおいて、
コンピュータの読取り可能な複数の媒体を具備し、
このコンピュータの読取り可能な複数の媒体は、
権限を与えられたコンピュータのハードウェア−ソフトウェア構成に適するように作成されたソフトウェア画像と、
権限を与えられたコンピュータの前記識別子を含んでいる識別タグを有するタグ識別ファイルと、
前記コンピュータで実行可能なファイルとが記録されており、
前記コンピュータで実行可能なファイルはルーチンを含んでおり、
そのルーチンは、
コンピュータのメモリに記憶されている前記識別子にアクセスし、
前記識別子と識別タグとを比較し、
前記識別子が識別タグに対応したときのみ、コンピュータの読取り可能な複数の媒体から記憶装置へソフトウェア画像を転送し、
コンピュータの読取り可能な複数の媒体は、
ソフトウェア画像と、権限を与えられたコンピュータの前記識別子を含んでいる識別タグを有する第１のタグ識別ファイルとが記録された第１の媒体と、
権限を与えられたコンピュータの前記識別子を含んでいる識別タグと第１のタグ識別ファイルを識別する識別情報とを有する第２のタグ識別ファイルと、前記コンピュータで実行可能なファイルとが記録された第２の媒体とを含んでいるおり、
前記コンピュータで実行可能なファイルはルーチンを含んでおり、
そのルーチンは、
第２のタグ識別ファイルの識別情報に基づいて第１のタグ識別ファイルをアクセスし、
コンピュータのメモリに記憶されている前記識別子をアクセスし、
前記識別子を第１および第２のタグ識別ファイルの識別タグと比較し、
前記識別子が第１および第２のタグ識別ファイルの識別タグに対応する場合にのみ、ソフトウェア画像をコンピュータの読取り可能な複数の媒体から記憶装置へ転送する、ソフトウェア秘密保護システム。
【請求項３】
コンピュータのメモリに記憶されている識別子を有する権限を与えられたコンピュータの記憶装置のみにソフトウェアがダウンロードされることを許容するソフトウェア秘密保護システムにおいて、
コンピュータの読取り可能な複数の媒体を具備し、
このコンピュータの読取り可能な複数の媒体は、
権限を与えられたコンピュータのハードウェア−ソフトウェア構成に適するように作成されたソフトウェア画像と、
権限を与えられたコンピュータの前記識別子を含んでいる識別タグを有するタグ識別ファイルと、
前記コンピュータで実行可能なファイルとが記録されており、
前記コンピュータで実行可能なファイルはルーチンを含んでおり、
そのルーチンは、前記コンピュータを実行させて、
コンピュータのメモリに記憶されている前記識別子にアクセスし、
前記識別子と識別タグとを比較し、
前記識別子が識別タグにマッチしたときのみ、コンピュータの読取り可能な複数の媒体から記憶装置へソフトウェア画像を転送し、
コンピュータの読取り可能な複数の媒体は、
ソフトウェア画像と、権限を与えられたコンピュータの前記識別子を含んでいる識別タグを有する第１のタグ識別ファイルとが記録された第１の媒体と、
権限を与えられたコンピュータの前記識別子を含んでいる識別タグと第１のタグ識別ファイルを識別する識別情報とを有する第２のタグ識別ファイルと、前記コンピュータで実行可能なファイルとが記録された第２の媒体とを含んでいるおり、
前記コンピュータで実行可能なファイルはルーチンを含んでおり、
そのルーチンは、前記コンピュータを実行させて、
第２のタグ識別ファイルの識別情報に基づいて第１のタグ識別ファイルをアクセスし、
コンピュータのメモリに記憶されている前記識別子をアクセスし、
前記識別子を第１および第２のタグ識別ファイルの識別タグと比較し、
前記識別子が第１および第２のタグ識別ファイルの識別タグにマッチする場合にのみ、ソフトウェア画像をコンピュータの読取り可能な複数の媒体から記憶装置へ転送する、ソフトウェア秘密保護システム。
【請求項４】
実行可能なファイルルーチンはＸＢＩＯＳ呼を使用して前記識別子をアクセスする請求項３記載のソフトウェア秘密保護システム。
【請求項５】
実行可能なファイルルーチンはデスクトップ管理インターフェイス（ＤＭＩ）呼を使用して前記識別子をアクセスする請求項３記載のソフトウェア秘密保護システム。
【請求項６】
実行可能なファイルルーチンはＣＭＯＳ  ＲＯＭ読取りの技術を使用して識別子をアクセスする請求項３記載のソフトウェア秘密保護システム。
【請求項７】
実行可能なファイルルーチンが、
ソフトウェア画像をコンピュータの読取り可能な複数の媒体から記憶装置へ転送する前に記憶装置をクリアするサブルーチンを含んでいる請求項３記載のソフトウェア秘密保護システム。
【請求項８】
実行可能なファイルルーチンが、
警告メッセージを表示し、
記憶装置をクリアする前に割込みを待機するサブルーチンを含んでいる請求項７記載のフトウェア秘密保護システム。
【請求項９】
実行可能なファイルルーチンが、
ソフトウェア画像をコンピュータの読取り可能な複数の媒体から記憶装置へ転送する前に記憶装置を再フォーマットするサブルーチンを含んでいる請求項３記載のソフトウェア秘密保護システム。
【請求項１０】
実行可能なファイルルーチンが、
警告メッセージを表示し、
記憶装置を再フォーマットする前に割込みを待機するサブルーチンを含んでいる請求項９記載のソフトウェア秘密保護システム。
【請求項１１】
第１の媒体はカスタムプログラムされたコンパクトディスク（ＣＤ）ＲＯＭ媒体を含み、
第２の媒体はブート可能なフレキシブルディスケットを含み、
記憶装置はハードディスク駆動装置を含んでいる請求項３記載のソフトウェア秘密保護システム。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータシステムは典型的にハードウェアとソフトウェアの結合されたシステムとして購入され供給されている。過去において、ソフトウェアは、購入者により手動でディスケット単位でディスケット駆動装置に負荷され、ダウンロードされるフレキシブルな（フロッピー（登録商標））ディスケットにより与えられる。メモリおよびディスク駆動装置の容量は拡張され、ソフトウェア画像の寸法が大きくなるにつれて、フレキシブルなディスケットによるソフトウェアの負荷は非常に厄介になる。例えば、典型的なソフトウェアシステム画像の寸法は２〜６００メガバイトの範囲へ拡張され、将来的に拡張し続けることが予測されている。一般的には５０程度の多数のフレキシブルなディスケットがソフトウェアシステム画像の転送に使用されている。
【背景技術】
【０００２】
多数のコンピュータシステム供給業者はフレキシブルなディスケットをソフトウェア画像の供給用の高容量のコンパクトディスク（ＣＤ）ＲＯＭに置換している。ＣＤ  ＲＯＭにソフトウェアを供給するコンピュータシステム供給業者は、より少数（例えば２または３）のソフトウェア構造を利用する限定された数（例えば４または８）のみのハードウェア構造を販売している。ソフトウェアシステムは特定の構造をもつ全てのコンピュータシステムの中で使用するための共通の動作システム、ハードウェア駆動装置、ソフトウェアユーティリティ、アプリケーションプログラムを含んでいる。これらのコンピュータシステム供給業者はソフトウェアディスケットを纏めて、通常は一万〜十万の範囲のバッチでプレスし、それによって同一のソフトウェアシステムが多数のコンピュータシステムへ交換可能に与えられる。
【０００３】
一般的なハードウェアコンピュータシステムは典型的に種々の異なったハードウェアサブシステムを含んでいる。これらの一般的な大量生産のソフトウェアシステムをハードウェアコンピュータシステムへインストールする期間中、いくつかのソフトウェア形態が通常実行される。ダウンロードプロセスは自動的にハードウェアサブシステムの識別値を検出し、検出されたサブシステムに対する適切な駆動装置を構築するルーチンをしばしば含んでいる。
【０００４】
多数の異なったハードウェアの販売者はハードウェアサブシステムを供給し、しばしば多数の異なったソフトウェア供給業者は大量生産されたディスケットに与えられるソフトウェアモジュールを供給する。大量生産されたソフトウェアを用いてソフトウェアをコンピュータシステムへ供給する一般的な技術に関する共通の問題は、種々のハードウェアサブシステムとソフトウェアモジュールの中でしばしば生じる種々の不一致である。最初に、特定のハードウェア−ソフトウェアシステム構造が結合されるのは、システムが工場から出荷されてから長時間後に顧客がシステムを起動しようとするときである。典型的に顧客は特定のハードウェア構造でソフトウェアを最適に実行するためのハードウェアおよびソフトウェアの種々の構成可能な特性を正確に設定した経験がない。それ故、システムの起動はしばしばコンピュータシステム顧客と、販売業者の顧客補助サービスを頻繁に使用する顧客をもつ販売業者との両者にとって困難であり、時間を浪費する。
【０００５】
デルコンピュータ社（商標名）は注文に応じて各コンピュータシステムを“カスタム化”することによりソフトウェア−ハードウェアシステムを一体化する難点を克服している。顧客はコンピュータを注文し、特定のハードウェアサブシステムとソフトウェアパッケージを特定化する。コンピュータに全て固有のモードをインストールされるハードウェア用の特定の駆動装置をインストールすることを含んでいるソフトウェア−ハードウェアの一体化は、結合されたシステムが工場から出荷する前に、デルコンピュータ社（商標名）により工場で行われ、試験され、適合性を確証される。ソフトウェアはしたがって特定の注文されたハードウェアシステムで動作することを確認され、または特定の駆動装置および動作システムと共に動作することも確認される。
【０００６】
注文によって製造されたビジネスモデルの１つの結果は、各ソフトウェア負荷が潜在的に特有であることである。それ故、ソフトウェアは大量生産されたディスケットにより供給されることができない。デル社（商標名）はそれ故、工場で特定化されたハードウェアでソフトウェアを起動し、ソフトウェア負荷が適切に動作することを確証し、ソフトウェア画像がコンピュータシステムのハードディスク駆動装置にロードされているソフトウェア画像を有するコンピュータシステムを出荷する。
【０００７】
ハードディスク駆動装置は多少揮発性を有する媒体であり、それ故、ハードディスク駆動装置の画像は意図的にまたは非意図的に変化されることができる。ソフトウェア画像がハードディスク駆動装置に与えられるので、ソフトウェア画像における不適切な変化は容易に補正されない。顧客が正確なデータをハードディスクに書込むことによって補正される問題を有し、顧客がバックアップ媒体を作っていないとき、デル社は供給されたオリジナルなソフトウェア画像を含んでいる交換用ハードディスクを与えることによって補正する。典型的に、第３者のメンテナンス員が顧客位置に派遣され、壊れたハード駆動装置を交換用ハード駆動装置と交換し、インストレーションプロセスを行う。デル社はハード駆動装置の難点がシステム故障によるものか、または顧客が許可なくまたは禁止された動作を行うことにより生じるものであると交換を行う。例えば、顧客は異なったハードウェアサブシステムをインストールし、ハードウェアサブシステムを制御するためのソフトウェア駆動装置を不適当にインストールし、それによってハード駆動装置を故障させる。
【０００８】
交換用ハードディスク駆動装置は多数の問題を補正するためソフトウェアをフィールドへ送るための主要な方法として使用される。問題は例えば顧客またはウィルスによるファイルの故障、工場によって供給していないハードウェアサブシステムのインストレーションによる難点、顧客による動作システム変更の決定、不適当な工場のソフトウェアのダウンロード、ハード駆動装置の故障等を含んでいる。
【０００９】
残念ながら、ハード駆動装置の交換は高価であり、多くは顧客にとって不便である。ハード駆動装置の交換が高価であるのはハード駆動装置の価格によるだけでなく、第３者のメンテナンス員を呼ぶのに同等の多額の費用がかかり、返却されたハード駆動装置の広範囲にわたる管理および試験のためである。
【００１０】
“注文による製造”のソフトウェア画像をコンピュータシステムに与えて、価格を低下させ便宜性を改良するシステムおよび技術が必要である。
【発明の開示】
【発明の概要】
【００１１】
ソフトウェア画像をコンピュータシステムへ供給する方法およびシステムは、特定の個々のコンピュータシステムのために構成され、特定化された個々のコンピュータシステムのみにダウンロードされ動作可能であるように制限されているカスタムプログラムされたコンパクトディスク（ＣＤ）ＲＯＭを利用する。この方法およびシステムはさらに、コンピュータが初期的な構成およびダウンロードされた後に工場から出荷された時点のソフトウェア状態へ、特定化されたコンピュータシステムを回復するためのインストレーション手順を利用する。カスタムプログラムＣＤ  ＲＯＭは、ブート可能なフレキシブルディスケットと、コンピュータシステムを“工場から出荷したて”のソフトウェア状態に回復するために顧客が使用するための教育用の技術指導シートと共に顧客へ発送される。
【００１２】
手動で特有のキーを入力されるコンピュータシステム、カスタムプログラムＣＤ  ＲＯＭ、ブート可能なフレキシブルディスケットを含む３つの構成要素を使用して、秘密保護技術が限定され、それによって全ての３つの構成要素が組み合わせられて使用されるときのみにソフトウェア画像のロードが可能である。したがって同一のキー入力を有するカスタムプログラムＣＤ  ＲＯＭおよび特定のブート可能なフレキシブルディスケットは同一のキー入力を有する特定のコンピュータシステムハードウェアにソフトウェアをダウンロードすることのみに使用される。秘密保護技術は、ソフトウェアを受信するようにキー入力をされたコンピュータハードウェア以外のコンピュータハードウェアにソフトウェア画像がロードされる可能性を除去する。秘密保護技術は、タグＩＤをカスタムプログラムＣＤ  ＲＯＭとブート可能なフレキシブルディスケットに書込むことを含む全ての３つのキー項目上の相互参照タグ識別（ＩＤ）番号と、コンピュータハードウェアの特有のサービスタグ番号とを使用する。特有の相互キー入力されたカスタムプログラムＣＤ  ＲＯＭと、特定の関連するブート可能なフレキシブルディスケットと、特有のキー入力をされたコンピュータハードウェアとの組合わせが整合して共に使用されることによって、カスタムプログラムＣＤ  ＲＯＭに含まれるソフトウェア画像の再ロードが可能にされる。
【００１３】
秘密保護技術の第１の動作は、特有のキー入力をされたカスタムプログラムＣＤ  ＲＯＭとブート可能なフレキシブルディスケットの組合わせを生成することである。オリジナルの顧客注文が処理され、特定の顧客が決定されたソフトウェア画像のロードがオリジナルの顧客注文にしたがってコンパイルされる。ソフトウェア画像は通常工場でコンピュータシステムハードウェアにダウンロードされ、その後顧客へ出荷される。顧客が決定したソフトウェア負荷は、特定化されたコンピュータシステムハードェアのハードディスク駆動装置へ書込むために特別に構成されたソフトウェア画像である。ソフトウェア画像と組合わせられて、タグ識別（ＩＤ）ファイルは、ソフトウェア画像を受信する権限をもつ特定されたコンピュータシステムハードウェアのサービスタグ番号を含んだカスタムプログラムＣＤ  ＲＯＭに書込まれる。ソフトウェア画像と識別ファイルの組合わせはＣＤ  ＲＯＭ媒体プラッタへ焼き付けられる。特定されたブート可能なフレキシブルディスケットは、カスタムプログラムＣＤ  ＲＯＭのＩＤ番号を含んでいる書込まれた対応する識別（ＩＤ）ファイルと、カスタムプログラムＣＤ  ＲＯＭに対するタグ情報を含んでいるカスタムプログラムＣＤ  ＲＯＭ上の識別ファイルの名称を有する。ブート可能なフレキシブルディスケットはまた、ソフトウェア画像をコンピュータシステムへ回復するプロセスを制御するＣＤプログラムと実行可能なファイルを記憶する。関連するカスタムプログラムＣＤ  ＲＯＭとブート可能なフレキシブルディスケットはサービスキット技術指導シートと共に顧客へ発送される。顧客はオリジナルの注文して構成されたコンピュータシステムハードウェアを有する。
【００１４】
顧客が受取ったとき、サービスキット技術指導シートは、ブート可能なフレキシブルディスケットをコンピュータシステムのフレキシブルディスク駆動装置のスロットへ挿入し、カスタムプログラムＣＤ  ＲＯＭをコンピュータシステムのＣＤ  ＲＯＭスロットに挿入し、コンピュータシステムを再度ブートするように指令する。ブート可能なフレキシブルディスケットはコンピュータシステムのブート負荷のときに付勢されるＣＤ回復プログラムを記憶する。ＣＤ回復プログラムは最初にＣＤ画像に含まれているタグＩＤファイルをカスタムプログラムＣＤ  ＲＯＭからダウンロードし、開く。カスタムプログラムＣＤ  ＲＯＭ上のタグＩＤファイルを開くことに加えて、ＣＤ回復プログラムはブート可能なフレキシブルディスケットからＩＤファイルを開き、ＩＤファイルのタグ情報がカスタムプログラムＣＤ  ＲＯＭおよびブート可能なフレキシブルディスケットと整合することを確認する。
【００１５】
ＣＤ回復プログラムは、インストレーションプログラムを実行するコンピュータからサービスタグ番号を獲得するインストレーションプログラムを含んでいる。このコンピュータサービスタグ番号は、カスタムプログラムＣＤ  ＲＯＭに記憶されているＩＤファイルを含んだタグ情報と比較される。コンピュータハードウェアサービスタグがカスタムプログラムＣＤ  ＲＯＭのタグＩＤと整合したならば、回復プログラムは、ハード駆動装置の情報をクリアし、カスタムプログラムＣＤ  ＲＯＭからのソフトウェア画像をハードディスク駆動装置へダウンロードすることによりハード駆動装置の回復プログラムを完了する。サービスタグ番号が整合しないならば、コンピュータハードウェアからアクセスされたサービスタグ番号は顧客に対する付加的なサービス補助を指令する命令と共に顧客に報告される。
【００１６】
多数の利点が前述のシステムおよび動作方法により実現される。１つの利点は、ソフトウェア転送システムがこの分野でソフトウェアプログラムのトラブルシューティングおよび補正を行う価格を低下することである。ソフトウェア転送システムはハードディスク駆動装置の初期フィールド発生率と、供給業者から最初に発送されたときのコンピュータの信頼性尺度の欠陥を効率的に減少する。ソフトウェア転送システムはハードディスク駆動装置の故障数を減少し、コンピュータシステムの返却の際の試験を繰返すことがない利点を有する。
【００１７】
秘密保護技術は、資格が与えられたソフトウェアの使用を１つの特定のコンピュータに限定する利点を有し、この資格はコンピュータの自由なソフトウェア負荷を可能にする基本的なプロセスとの干渉を避けながら認可される。
【詳細な説明】
【００１８】
優秀であるとされている前述の実施形態の特徴を特許請求の範囲で特別に説明する。しかしながら、構造および動作方法との両者に関する本発明の実施形態は以下の説明と添付図面を参照して最良に理解されるであろう。  
図１を参照すると、概略ブロック図は、パーソナルコンピュータ（ＰＣ）などのコンピュータ104 へソフトウェア画像102 を供給するためのソフトウェア転送システム100 の１実施形態を示している。図示のソフトウェア転送システム100 はデータベース116 およびコンパクトディスク（ＣＤ）ＲＯＭバーナ118 を含んでおり、これらが組合わさって３つのソフトウェア転送構成要素：（１）カスタムプログラムコンパクトディスク（ＣＤ）ＲＯＭ106 と、（２）ブート可能なフレキシブルディスケット108 と、（３）サービスキット技術指導シート110 を生成する。３つの構成要素は組み合わさって、コンピュータ104 を“工場から出荷したて”のソフトウェア状態、即ちコンピュータ104 を最初に構成しダウンロードした後の工場から出たときの状態と同一状態に回復するためのインストレーション処理を規定し、実行する。
【００１９】
３つの構成要素は異なった目的を有する。カスタムプログラムＣＤ  ＲＯＭ106 はソフトウェア画像102 をコンピュータ104 の主実行可能な記憶装置、典型的にはハードディスク駆動装置112 へ転送するためのソフトウェア転送媒体である。ブート可能なフレキシブルディスケット108 はカスタムプログラムＣＤ  ＲＯＭ106 からのダウンロードを制御するためのソフトウェアダウンロード媒体である。サービスキット技術指導シート110 は、ブート可能なフレキシブルディスケット108 を使用して、カスタムプログラムＣＤ  ＲＯＭ106 からソフトウェア画像102 をダウンロードするようにユーザに命令する指令リストである。
【００２０】
データベース116 は大容量記憶装置制御装置120 と、大容量記憶装置122 を含んでおり、大容量記憶装置122 は典型的にハードディスク駆動装置、ＣＤ  ＲＯＭ駆動装置、磁気テープ等を含む多数の大容量記憶装置を含んでいる。大容量記憶装置制御装置120 は大容量記憶装置122 を制御し、それによってソース、オブジェクト、絶対、２進コード、ソフトウェア画像等を含む種々のフォーマットでソフトウェアコードのような情報をアクセスする。大容量記憶装置制御装置120 は、アセンブラ、コンパイラ、リンカ等のソフトウェアコードを処理し、プログラム動作のためのコンピュータのハードディスク駆動装置に典型的にダウンロードされるソフトウェア画像を形成するための種々のプログラムを含んでいる。
【００２１】
図示の実施形態では、大容量記憶装置制御装置120 は大容量記憶装置122 と、ＣＤ  ＲＯＭバーナ118 に接続され、大容量記憶装置122 からＣＤ  ＲＯＭ媒体へソフトウェアコードを転送する。大容量制御装置120 はコンピュータ104 へも接続可能であり、プログラムを大容量記憶装置122 からコンピュータ104 のハードディスク駆動装置112 へダウンロードする。
【００２２】
大容量制御装置120 の１動作は、コンピュータ104 のハードディスク駆動装置112 へダウンロードするためのソフトウェア画像102 を生成し、それに続いて、コンピュータ104 によりプログラムを実行することである。コンピュータ104 のハードウェアおよびソフトウェア構造は大容量記憶装置制御装置120 へ入力され、ソフトウェア画像102 に含まれるソフトウェア構成要素を決定する。大容量記憶装置制御装置120 はソフトウェア画像102 を生成するために種々の処理プログラムを実行する。画像はコンピュータ104 へダウンロードされ、コンピュータ104 を構成するハードウェアおよびソフトウェアパッケージが顧客へ発送される。顧客の注文を入力してソフトウェアをダウンロードするまでのソフトウェア画像を供給するプロセスが自動化されるか半分自動化される。
【００２３】
同一の自動化されたプロセスがカスタムプログラムＣＤ  ＲＯＭ106 を生成するために使用される。カスタムプログラムＣＤ  ＲＯＭ106 はコンピュータシステムに問題が生じた場合に顧客に対して利用可能にされる。あるシステムでは、コンピュータシステムのオリジナルのプログラミング中に生成されたソフトウェア画像102 は大容量記憶装置122 に記憶される。他のシステムでは、必要なときにソフトウェア画像102 はオリジナルの顧客の注文を単に再度入力することにより再生成される。
【００２４】
例えば例示のシステムでは、同一の自動化されたプロセスがハードディスク駆動装置へダウンロードするためのソフトウェア画像を生成し、ＣＤ  ＲＯＭへ焼き付ける画像を生成するために使用される。しかしながら、画像をハード駆動装置へダウンロードする代わりに、ソフトウェア画像は、ソフトウェア画像102 をカスタムプログラムＣＤ  ＲＯＭ106 へ書込むためのＣＤ  ＲＯＭバーナ118 へ転送され、ブート可能なフレキシブルディスケット108 がプログラムされ、ＣＤ  ＲＯＭとディスケットパッケージが顧客へ送られる。自動化されたプロセスは、カスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 を有効な価格で効率的な方法により生成する自動化されたまたは半自動化された技術を使用して組立てられた内部プロセス制御スクリプトを有効に利用する。制御スクリプトは潜在的に複雑であるが、自動化された技術は熟練したオペレータを必要とせずにソフトウェア転送媒体を生成する。
【００２５】
カスタムプログラムされたコンパクトディスク（ＣＤ）ＲＯＭ106 は特定された個々のコンピュータハードウェア用に構成され、実行のため特定された個々のコンピュータへのみダウンロードされるように限定される。ブート可能なフレキシブルディスケット108 は、カスタムプログラムＣＤ  ＲＯＭ106 と特定された個々のコンピュータに整合するように個別にコード化される。カスタムプログラムＣＤ  ＲＯＭ106 に形成されるソフトウェア画像102 はコンピュータハードウェアの構成を各装置、バス、ＢＩＯＳ、装置の駆動装置、動作システム等の詳細なレベルに正確に整合する。ソフトウェア画像102 はハードディスク駆動装置112 へ書込まれ、コンピュータ104 はインストールされたハードウェアを駆動するために正確なソフトウェア構造で直ちに付勢されることが有効である。
【００２６】
ソフトウェア転送システム100 は、相互に特定化されたキー入力をされるコンピュータ104 、カスタムプログラムＣＤ  ＲＯＭ106 、ブート可能なフレキシブルディスケット108 の特別構造によりさらに秘密保護技術を構成し、それによって全ての３つの構成要素が組み合わされて使用されるときのみにソフトウェア画像のロードが可能である。
【００２７】
カスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 は同じ識別キー入力を有する共通のソフトウェア転送システムパッケージを形成し、同じ識別キー入力を有する特定化されたコンピュータハードウェア104 へソフトウェア画像102 をダウンロードすることのみに使用可能である。相互参照タグ識別（ＩＤ）番号はタグＩＤをカスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 へ供給することによりコード化される。コンピュータハードウェア104 はまた１つのコンピュータを特定して識別する特有のサービスタグ識別子を有する。サービスタグは典型的にコンピュータ104 内の記憶装置のセクション中にプログラムされるか“焼付け”される多数の符号の数字文字ストリングである。幾つかのシステムでは、サービスタグはコンピュータ104 の製造プロセス中に非揮発性メモリの隠れたセクションに焼き付けられる。
【００２８】
秘密保護技術はソフトウェア画像102 を受信するためにキー入力をされたコンピュータハードウェア104 以外のコンピュータハードウェアへソフトウェア画像102 をロードすることを禁止する。カスタムプログラムＣＤ  ＲＯＭ106 に含まれるソフトウェア画像102 をコンピュータ104 のハードディスク駆動装置112 へ再ロードすることは、特有の相互キー入力されたカスタムプログラムされたＤ  ＲＯＭ106 と、特定の関連するブート可能なフレキシブルディスケット108 と、特有のキー入力されたコンピュータハードウェア104 が整合した組合わせであるときのみ可能にされる。
【００２９】
図１と共に図２を参照すると、フローチャートはソフトウェア転送システム100 の秘密保護技術200 を適用して実行される動作を示している。秘密保護技術200 は資格が与えられたソフトウェアの使用を１つの特定のコンピュータに効果的に限定し、資格はコンピュータの自由なソフトウェア負荷を可能にする基本的なプロセスの干渉を避けながら認可される。
【００３０】
ソフトウェア画像生成動作202 では、オリジナルの顧客注文が処理され、特定の顧客により決定されたソフトウェア画像102 のロードがオリジナルの顧客注文にしたがってコンパイルされる。顧客が決定した負荷は、特定のコンピュータハードウェア104 のハード駆動装置112 へ書込むために特別に構成されたソフトウェア画像102 である。したがって、ソフトウェア画像102 は、工場でコンピュータシステムハードウェアのハードディスクにダウンロードされ、顧客に発送されたオリジナルのハードディスク画像と同じである。
【００３１】
ソフトウェア画像102 が一度生成されると、秘密保護技術200 はキー入力パッケージ生成動作204 を行い、ここでは特有のキー入力をされたカスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 の組合わせのためにキーコードが形成される。キーは、ソフトウェア画像102 を受信する権限を与えられている特定化されたコンピュータハードウェア104 のサービスタグ番号をステップ206 でアクセスし、サービスタグ番号を含むタグ識別（ＩＤ）ファイルをステップ208 で形成することにより生成される。サービスタグに基づくキーに加えて、動作208 を形成するタグＩＤはランダムな番号符号を生成する動作を含んでいる。例示の実施形態では、コンピュータ104 からのサービスタグとランダム番号はカスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 との両者に書込まれるキーとして使用され、それによって、資格が与えられたソフトウェアを有するコンピュータ104 以外のコンピュータで資格を有するソフトウェアを使用することを防止する基本的な識別子の役目を行う。
【００３２】
ＣＤ  ＲＯＭ書き込み動作210 は組み合わされたソフトウェア画像102 とタグＩＤファイルをカスタムプログラムＣＤ  ＲＯＭ媒体へ焼き付ける。
【００３３】
キー入力されたパッケージ生成動作204 の他の動作はブート可能なフレキシブルディスケット108 を処理することである。フレキシブルディスケットＩＤファイル生成動作212 は、サービスタグとランダム番号タグのコード化を含むカスタムプログラムＣＤ  ＲＯＭ106 のタグ情報と、カスタムプログラムＣＤ  ＲＯＭ106 のタグＩＤファイルの名称とを含んでいるＩＤタグファイルを形成する。フレキシブルディスケットＩＤファイル生成動作212 はその後、ブート可能なフレキシブルディスケット108 へＩＤタグファイルを書込む。回復プログラム生成動作214 はブート可能なフレキシブルディスケット108 へＣＤ回復プログラムを記憶する。ＣＤ回復プログラムはソフトウェア画像102 をコンピュータ104 のハードディスク駆動装置112 へ回復するために顧客等のユーザにより動作される実行可能なファイルである。幾つかの実施形態では，ＣＤ回復プログラムはユーザの割込みなく自動的に動作する。幾つかの実施形態では、ＣＤ回復プログラムは、警告メッセージの表示と、ユーザが警告メッセージに応答することを可能にする待ち時間の割込みのみで自動的に動作する。
【００３４】
ソフトウェア転送パッケージ送付動作216 では、カスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 とサービスキット技術指導シート110 を含むパッケージがユーザまたは顧客へ送付される。ユーザはオリジナルの注文し構成したコンピュータシステムハードウェア104 を所有することを想定される。サービスキット技術指導シート110 は、カスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 とを使用してハードディスク駆動装置112 を、工場から最初に発送したときのコンピュータ104 の正確なソフトウェア状態に回復する指令をユーザに与える。オリジナルの発送後に、コンピュータ104 にインストールされたソフトウェアまたはハードディスク駆動装置112 へ負荷されたデータは除去され、それによって全てのデータ値およびプロセッサ状態は初期化される。
【００３５】
ユーザはソフトウェア転送パッケージを受取り、サービスキット技術指導シート110 は、カスタムプログラムＣＤ  ＲＯＭ106 をコンピュータシステムＣＤ  ＲＯＭ読取り装置へ設置し、コンピュータシステムのフレキシブルディスク駆動装置のスロットにブート可能なフレキシブルディスケット108 を挿入し、コンピュータ104 を再ブートすることにより回復プログラム218 を実行するようにユーザに指令する。コンピュータ104 を再ブートする１つの技術は、コンピュータのパワーを落とし、約３０秒待機し、パワーをコンピュータ104 へ与える。ブート可能なフレキシブルディスケット108 はコンピュータ104 のブートストラップ負荷のときに付勢される回復プログラムを記憶する。ブート可能なフレキシブルディスク108 はコンピュータ104 のブートストラップロードを付勢する回復プログラムを記憶する。回復プログラム実行動作218 はハードディスク駆動装置112 のマスターブート記録を特別な回復動作システムを発動するように変更することによって製造プロセスのソフトウェアダウンロード部分をシミュレートする。ＥＸＥ、ＢＡＴ、ＣＯＦＩＧ．ＳＹＳファイルを含んでいる特別な動作システムファイルはＣＤ  ＲＯＭ駆動装置を負荷するように付勢され、ＣＤ  ＲＯＭ上のソフトウェア画像102 を発見する。
【００３６】
ＩＤタグチェック動作220 では、回復プログラムは最初に、カスタムプログラムＣＤ  ＲＯＭ106 からＣＤ画像に含まれているタグＩＤファイルをダウンロードして開く。カスタムプログラムＣＤ  ＲＯＭ106 上のタグＩＤファイルを開くことに加えて、回復プログラムはブート可能なフレキシブルディスケット108 からＩＤファイルを開き、ＩＤファイル中のタグ情報がカスタムプログラムＣＤ  ＲＯＭ106 とブート可能なフレキシブルディスケット108 で整合することを確認する。
【００３７】
インストレーションプログラム実行動作222 では、インストレーションプログラムはインストレーションプログラムを実行しているコンピュータ104 からサービスタグ番号を得る。インストレーションプログラムは典型的にブート可能なフレキシブルディスケット108 に記憶されるが、他の実施形態ではカスタムプログラムＣＤ  ＲＯＭ106 のような他の記憶装置に記憶されてもよい。
【００３８】
インストレーションプログラムはいくつかのアクセス技術のうちの１つによりコンピュータ104 中のサービスタグをアクセスする。例示的に、インストレーションプログラムはコンピュータ104 のプロセッサ中の選択された記憶位置を読取るＸＢＩＯＳ呼を使用してサービスタグ番号をアクセスする。他の構造では、その他の技術または技術の組合わせがサービスタグ番号のアクセスに使用されてもよい。例えば、多数のタイプのコンピュータシステムに適用可能な秘密保護技術はサービスタグをアクセスするための多数の技術を使用することができる。１つの構造では、コンピュータシステムＩＤコードは実行するコンピュータのハードウェアおよびソフトウェアプラットフォームを決定するためインストレーションプログラムによりアクセスされ、それによってサービスタグをアクセスするための適切な技術を示す。第１のタイプのコンピュータでは、ＸＢＩＯＳ呼はサービスタグのアクセスに使用される。第２のタイプのコンピュータはＣＭＯＳ  ＲＯＭと、バッテリー支持の非揮発性メモリまたは記憶装置を読取るための所有技術によりアクセスされるサービスタグを有する。第３のタイプのコンピュータはデスクトップ管理インターフェイス（ＤＭＩ）呼を使用してアクセスされるサービスタグを有する。
【００３９】
システムＩＤコードは一般的なタイプのコンピュータを示している。サービスタグのアクセスの仕方を決定するためにコンピュータのシステムＩＤコードを使用することは、ソフトウェア転送システム100 が多数のタイプと世代のコンピュータを支持することを可能にする利点がある。サービスタグをアクセスするために異なった技術を使用することもソフトウェア転送システム100 が種々の動作システムを作動するコンピュータを支持することを可能にする利点がある。例えば、内部記憶位置へのアクセスはウィンドウズ９５（登録商標）とウィンドウズＮＴ  （登録商標）動作システムを作動するコンピュータでは異なっている。
【００４０】
ハードウェアキー確認動作224 はコンピュータ104 のサービスタグ番号を、カスタムプログラムＣＤ  ＲＯＭ106 に記憶されたＩＤファイルに含まれているタグＩＤ情報と比較する。コンピュータ104 のサービスタグがカスタムプログラムＣＤ  ＲＯＭ106 上のタグＩＤと整合したならば、回復プログラムは警告メッセージを表示し、ユーザが回復プログラムを中止できるように待機し、ハードディスク駆動装置の回復プロセスを完了する。警告メッセージはハード駆動装置は消去されていることをユーザに通知し、回復プロセスを中止するためのボタンアイコンを与える。したがって、ハードディスクから重要なデータを消去する前にユーザは動作を中止し、データを転送することを可能にされる。
【００４１】
ハード駆動装置の回復プロセスは、ステップ226 でハード駆動装置112 上の情報をクリアし、ステップ228 でソフトウェア画像102 をカスタムプログラムＣＤ  ＲＯＭ106 からハードディスク駆動装置112 へダウンロードすることにより完了される。回復プログラムはハード駆動装置112 をフォーマットすることによってハードディスク駆動装置をクリアし、それによって破壊されている可能性があるデータを消去し、駆動装置の適切な動作を確実にし、駆動装置112 に感染しているウィルスを除去する。回復プログラムは、オリジナルな注文されカスタムプログラムＣＤ  ＲＯＭ106 から構成された全てのソフトウェアを正確な順序でハードディスク駆動装置112 へコピーすることによってソフトウェア画像102 をダウンロードする。ファイルがハードディスク駆動装置112 へコピーされるとき、ファイル属性はソフトウェア画像102 の動作のために正確に割当てられまたはリセットされる。コピープロセスはかなり時間がかかり、典型的に１０〜２５分間継続する。ファイルのコピーに続いて、ソフトウェア転送チェック動作230 はソフトウェア−ハードウェアキー入力とソフトウェアダウンロードが正確に行われ実行されたことを確認するルーチンを実行する。ユーザに読取り装置からＣＤ  ＲＯＭを除去するように要求するメッセージをコンピュータ上に表示し、駆動装置からブート可能なフレキシブルディスケット108 を除去し、コンピュータ104 を再ブートすることによって回復プログラムはステップ232 で終了する。第２の再ブート動作に続いて、コンピュータ104 は、ユーザまたは顧客と工場の代表者との間の契約によってオリジナルのソフトウェア注文に応じて変形されたことから起こりうる相違点を除いて、コンピュータ104 は最初に発送したときのコンピュータと同一状態である。
【００４２】
種々の実施形態において、付加的な秘密保護技術が実行されてもよい。例えば幾つかのシステムでは、カスタムプログラムＣＤ  ＲＯＭ106 のファイルからのデータはカスタムプログラムＣＤ  ＲＯＭ106 のプログラミングに先立って限定された方法で変更されてもよい。回復プログラムはソフトウェア画像102 がハードディスク駆動装置112 に書込まれたとき、限定された変更を逆にする。付加的な秘密保護技術は、カスタムプログラムＣＤ  ＲＯＭ106 からデータを権限を持たずに読取り、ユーティリィティプログラムを使用してディスクへデータを書込むことを防止する。
【００４３】
コンピュータ104 のサービスタグがカスタムプログラムＣＤ  ＲＯＭ106 のタグＩＤと整合しないならば、回復プログラムは234 でエラー状況信号を発生する。回復プログラムは、コンピュータハードウェア104 からアクセスされたサービスタグ番号を含んでいる診断情報を与え、ユーザが付加的なサービス補助をするように指導する命令を与える。
【００４４】
図３、４を参照すると、フローチャートはソフトウェア転送パッケージを製造するために行われる動作を含むプロセスの１例を示している。ソフトウェア転送パッケージは、顧客へ発送するためのカスタムプログラムＣＤ  ＲＯＭ106 と、ブート可能なフレキシブルディスケット108 と、サービスキット技術指導シート110 とを含んでいる。
【００４５】
ソフトウェア転送パッケージプロセス300 は、ステップ302 において発送者が注文番号を自動化またはコンピュータ化されたシステムへ入力して顧客の注文記録を検索するときに開始する。顧客注文記録は部品番号により顧客が注文したソフトウェアを特定化する。発送者はステップ304 で顧客の注文でリクエストされたソフトウェアの部品番号を入力する。発送者はその後、ステップ306 で購入注文（ＰＯ）フィールドと発送方法と、タイ（tie ）番号を含んでいる短い注文として発送発行状態を入力する。発送者はステップ308 で発送アドレスが正確であることを確認する。発送者はステップ310 で交換注文番号を生成し、ステップ312 で発送を発送コメントログへ記録する。
【００４６】
記録された注文はステップ314 で自動的にフィールドサービスに印刷される。フィールドサービスは、ステップ316 で負荷されている顧客が特定したソフトウェアを含んだハード駆動装置を組立ててＣＤ  ＲＯＭ焼付けステーションへ発送する。
【００４７】
ＣＤ  ＲＯＭ焼付けステーションプロセスがステップ318 で開始され、ＣＤ  ＲＯＭ焼付けステーションのフィールドサービス員はステップ320 でハード駆動装置をＣＤ焼付けステーションへ接続する。フィールドサービス員はステップ322 で発送者からの顧客サービスタグを検索する。フィールドサービス員はステップ324 でＰＲＥＰ ＢＡＴルーチンを作動し、このＰＲＥＰ ＢＡＴルーチンはソフトウェア画像をコピーするためハードディスク駆動装置を処理し、ファイルをハードディスク駆動装置からフレキシブルディスケットにコピーし、相互に関連するコンピュータＣＤ  ＲＯＭとブート可能なフレキシブルディスケットについて先に説明した識別タグとを作るＭＡＫＥＴＡＧ ＥＸＥルーチンを行う。ＰＲＥＰ ＢＡＴルーチンはサービスタグの入力を行う。
【００４８】
フィールドサービス員はステップ326 でカスタムプログラムＣＤ  ＲＯＭ106 を焼付けるＣＤＢＵＲＮ ＦＬＵを行う。フィールドサービス員はステップ328 でサービスタグを焼付けステーションソフトウェアへ入力し、ステップ330 でカスタムプログラムＣＤ  ＲＯＭ106 に顧客による注文のソフトウェア画像を焼付ける。ステップ332 でフィールドサービス員は在庫品（ストック）からサービスキット技術指導シート110 を引出し、ステップ334 でカスタムプログラムＣＤ  ＲＯＭ106 と、ブート可能なフレキシブルディスケット108 と、サービスキット技術指導シート110 を出荷カートンへ積込む。ステップ336 でフィールドサービス員はその後、出荷カートンを発送し、顧客へ発送する。
【００４９】
図５を参照すると、ユーティリィティプログラムを実行するための環境と独立して動作システムを生成するためのシステムを動作するコンピュータシステム400 が示されている。コンピュータシステム400 、典型的にはパーソナルコンピュータは、プロセッサ410 と、システムランダムアクセスメモリ（ＲＡＭ）420 と、システムＲＯＭ422 と、ハードディスク駆動装置430 と、種々の他の入力／出力装置440 とを含んでいる。これらのシステム構成要素は、データ、アドレス、制御ラインを含んでいるバス450 によって通信する。バス450 を介してプロセッサ410 へ接続されているＣＭＯＳクロック非揮発性ＲＡＭ460 は典型的にコンピュータシステム400 へのパワーが遮断されたときでさえも情報を記憶するために使用される。環境と独立した動作システムを生成するシステムを作り上げるプログラム命令はプロセッサ410 に接続されているハードディスク駆動装置430 またはシステムＲＯＭ422 等の記憶装置に記憶される。プロセッサ410 、例えば486,586 のようなｘ８６プロセッサまたはペンティアム（登録商標）プロセッサはコンピュータシステム400 の計算動作を実行する。
【００５０】
図６を参照すると、コンピュータシステムのメモリマップ500 は、００００Ｈの開始アドレスを有するプログラムメモリ510 と、０Ａ０００Ｈの開始アドレスを有するビデオメモリ512 と、アドレス０Ｆ０００Ｈ〜０ＦＦＦＦＨに位置されるＢＩＯＳメモリ514 とを示している。基本的な入力出力システム（ＢＩＯＳ）は動作システムを特定のコンピュータへカスタム化する動作システムの一部である。ＢＩＯＳは例えばシステムクロック、ハードディスク、ディスプレイ等の共通の装置に対する最低レベルのインターフェイスを形成する。ＢＩＯＳメモリ514 は拡張基本入力出力システムＸＢＩＯＳ520 へインターフェイスするための情報を含んでいる。
【００５１】
ＸＢＩＯＳ520 はコンピュータシステムのＢＩＯＳ機能を拡張する。特に種々のコンピュータシステム積分器は拡張された特性を標準的なＢＩＯＳ機能に与えるためＸＢＩＯＳメモリ520 を含んでいる。これらのうち幾つかの特性はコンピュータユーザのプログラムの使用を容易にするために含まれている。特に、本発明にしたがった１実施形態により実現される機能に関しては、ＢＩＯＳ機能は制御ブロックのアドレスをシステム管理モード（ＳＭＭ）に送るために使用され、システム管理モード（ＳＭＭ）は制御ブロックにより指示される動作を行う。１つのこのような動作は秘密保護される区画表の更新である。別の動作はディスク駆動装置上の特定の物理的セクタ位置の識別である。ＢＩＯＳにより典型的に行われる他の特性は、再充電可能なバッテリーの残りのバッテリー寿命を表示し、パワー管理パラメータを設定する制御パネルを動作するバッテリーアイコンの管理を含んでいる。この特性はまたＷｉｎＣＰＬも含んでおり、このアプリケーションはシステムのセットアップ動作を発動せずにパワー管理機能の実行を可能にする。ＷｉｎＣＰＬはパスワードの設定、スピーカ音量の制御、シミュレートされたキークリックの許容、輝度およびコントラスト等のディスプレイパラメータの変更のような種々の秘密保護動作を制御する。この特性はさらにアセットタグユーティリィティを含んでおり、これはコンピュータユーザが特定のコンピュータシステムを識別するためのアセットタグを割当て、割当てられたアセットタグを読取ることを可能にする。アセットタグは会計目的等でコンピュータシステムを識別し目録記入するのに便利である。さらに別の特性はビデオバイアス、モニタ再生速度等のビデオモニタパラメータを制御するモニタｅｘｅ実行可能なファイルである。
【００５２】
ＸＢＩＯＳ520 はＸＢＩＯＳ表522 のエントリを指示する複数のポインタを記憶する。ＸＢＩＯＳ表522 は種々の割当てられたアプリケーションプログラム機能524 のメモリアドレスに対する複数のポインタを含んでいる。各個々のＸＢＩＯＳプログラム機能524 はＸＢＩＯＳ表522 の別々のエントリと、ＸＢＩＯＳ表522 に記憶されている別々のエントリポイントを有する。
【００５３】
１つの動作モードでは、ＸＢＩＯＳ520 のプログラムコードは動作識別子とパラメータをＣＭＯＳメモリ460 を転送し、ＳＭＩ＃信号を呼出す入力／出力命令を実行する。ＳＭＩ＃信号はシステム管理モード（ＳＭＭ）が動作するように付勢する信号である。プロセッサ410 が命令境界でＳＭＩ＃信号を認識するとき、プロセッサ410 は全ての記憶動作が終了するまで待機する。プロセッサ410 はその後、プロセッサレジスタの状態をシステム管理ＲＡＭ（ＳＭＲＡＭ）スペースと呼ばれるメモリ領域に保存し、ＳＭＭハンドラルーチンの実行を開始する。ＳＭＩ＃割込みはデバック例外および外部割込みよりも優先順位が高く、それによってＳＭＭプロセスはデバックおよび外部割込み状態に代って動作する。それに続くＳＭＩ＃とマスク可能ではない割込み（ＮＭＩ）リクエストは、プロセッサがシステム管理モードで動作中には承認されない。
【００５４】
システム管理モード（ＳＭＭ）プロセスは一般的にソフトウェアルーチンが限定されたパターンまたはコードを特定の限定されたＳＭＩ入力／出力Ｉ／Ｏ位置に書込む技術により行われる。パターンは適切に複雑であるように定められているので、不正確で不適切なパターンは不適切に設定されない。通常、パターンは十分な量の動作情報をエンコードするので、この複雑性のレベルは容易に実現される。パターンコード化は発動される正確なＸＢＩＯＳ動作に対して十分に特定されるが、安全保護された動作システムの秘密保護は妥協されない利点があるが有用な機能が動作することを可能にされており、これは他の場合には動作システムにより禁止されている。ＳＭＩ  Ｉ／Ｏ位置へこのパターンを書込むことによりＳＭＩ＃信号が発生し、システム管理モードの割込みを呼出す。
【００５５】
図７を参照すると、全ＸＢＩＯＳ機能を与えるソフトウェアシステム600 の動作を示したブロック図が示されている。ソフトウェアシステム600 はシステム管理モード（ＳＭＭ）動作用のインターフェイスを提供する。このインターフェイスでは、アプリケーションプログラム610 はＳＭ＃割込みを直接的に発動しようとするのではなく、代わりにアプリケーションプログラム610 はＳＭＭ動作620 をリクエストするためにＸＢＩＯＳ614 を呼出す。ＳＭＭ動作620 は動作システム602 の動作と制御とは無関係に独立して付勢される。
【００５６】
ソフトウェアシステム600 においては、アプリケーションソフトウェアプログラム610 はウィンドウズＮＴ（登録商標）、ウィンドウズ９５（登録商標）、ＯＳ／２（登録商標）などのターゲット動作システム602 の動的リンク能力を使用して実行するように処理されており、それによって動的リンク環境は動作システム602 により支配されるリンクステップおよびプログラム負荷ステップを含んでいる。リンカ（linker）は１組の動的リンクライブラリ（ＤＬＬ）604 を走査する。幾つかのライブラリは実行可能なファイル612 に連結されているラン時間支持コードを含んでいる。インポートライブラリと呼ばれる他のライブラリは、動作システム602 が実行のためプログラム実行可能ファイル612 をロードするまで十分に分析されない機能の参照を含んでいる。動作システム602 のリンカはインポートライブラリを走査し、ターゲットモジュール名と数字のエントリポイントを実行可能なファイル612 へ組込む。動作システム602 が実行のために実行可能なファイル612 をロードしたとき、動作システム602 はこれらの参照を、機能呼で使用するのに有効なアドレスと置換する。動的リンクライブラリ（ＤＬＬ）は動的リンクによりこれらの参照を満足するモジュールである。ＤＬＬは外部参照を満足する１組のエントリポイントを通告する。
【００５７】
動的リンクライブラリ（ＤＬＬ）604 の種々のライブラリはＸＢＩＯＳリクエスト604 に通知するＸＢＩＯＳ呼を行うための動作コードを含んでおり、それによってＸＢＩＯＳルーチン608 を開始する。種々の低レベルの機能のための１以上のＸＢＩＯＳ呼を使用するアプリケーションプログラム610 は、データを処理するためのデータ記憶素子を割当てる。典型的に、メモリ中の既知の位置は、実行される特定のシステム管理機能を示す情報を記憶することによって、信号614 を通知するアプリケーションプログラム610 により割当てられる。しかしながら、ウィンドウズＮＴ（登録商標）等の幾つかの秘密保護動作システムはメモリの特定の既知の位置のアクセスまたは割当てを可能にしない。それ故、ソフトウェアシステム600 では、プロセッサ410 の一般的な目的のレジスタは、信号614 を通知し、リクエストされた特定のシステム管理機能を指定する情報を記憶し、ＳＭＭ動作620 とＸＢＩＯＳルーチン608 によりサービスされるときにＳＭＭ／ＸＢＩＯＳ処理の応答を記憶するために割当てられる。幾つかの実施形態では、ソフトウェアシステム600 は、ＳＭＭ動作620 とＸＢＩＯＳルーチン608 を呼出すパターンを記憶するためのＡＸ、ＢＸ、ＣＸ、ＤＸのような１６ビットの一般的な目的のレジスタを割当てる。他の実施形態では、ＥＡＸ、ＥＢＸ、ＥＣＸ、ＥＤＸのような３２ビットレジスタは付勢パターンを記憶することに使用される。
【００５８】
本発明を種々の実施形態を参照して説明したが、これらの実施形態は例示であり、本発明の技術的範囲を限定するものではないことが理解されよう。説明した実施形態における多数の変形、変更、付加、改良が可能である。例えば、当業者はここで説明した構造および方法を行うために必要なステップを容易に実行し、プロセスパラメータ、材料、寸法が例示のためにのみ与えられたものであり、本発明の技術的範囲内で所望の構造および変形を実現するように変形されることが可能であることを理解するであろう。ここで説明した実施形態の変化および変形が特許請求の範囲内に限定されている本発明の技術的範囲を逸脱することなくここでの説明に基づいて行われてもよい。
【００５９】
例えば、実施形態はウィンドウズＮＴ（登録商標）とウィンドウズ９５（登録商標）動作システムの保護および秘密保護特性を与えるシステムとして説明される。本発明は例えばＯＳ／２（登録商標）等の類似の秘密保護手段として使用されるその他の動作システムに関して応用可能である。さらに、説明した実施形態はポーリング信号を通信するための一般目的のレジスタの使用を論述している。他の実施形態では、その他の種々のタイプの一時的な記憶セルが動作システムにより重ね書きされない限り応用可能である。
【図面の簡単な説明】
【００６０】
【図１】パーソナルコンピュータなどのコンピュータへソフトウェア画像を供給するためのソフトウェア転送システムの１実施形態を示した概略ブロック図。
【図２】ソフトウェア転送システムの保護技術を適用して実行される動作のフローチャート。
【図３】ソフトウェア転送パッケージを製造する動作のフローチャート。
【図４】ソフトウェア転送パッケージを製造する動作のフローチャート。
【図５】基本的なユーティリィティにより行われる動作の動作システム秘密保護性を避けるため、動作システム独立方法を実行しているコンピュータシステムハードウェアのブロック図。
【図６】図５で示されているコンピュータシステムにおけるメモリのメモリマップの概略図。
【図７】動作システムの秘密保護性を失わずに全ＸＢＩＯＳ機能を与えるソフトウェアシステムの種々の機能ブロックのブロック図。
【図１】
0004404940.tif 000002
【図２】
0004404940.tif 000003
【図３】
0004404940.tif 000004
【図４】
0004404940.tif 000005
【図５】
0004404940.tif 000006
【図６】
0004404940.tif 000007
【図７】
0004404940.tif 000008