(57)【特許請求の範囲】
【請求項１】
オペレーティング・システムのランニング・イメージを記憶するリムーバブル・オペレーティング・システム・モジュールを製造用コンピュータ・システム（以下、第１コンピュータ・システム）で製造し、当該製造されたリムーバブル・オペレーティング・システム・モジュールに記憶された前記オペレーティング・システムの前記ランニング・イメージをユーザのコンピュータ・システム（以下、第２コンピュータ・システム）上で実行する方法であって、前記リムーバブル・オペレーティング・システム・モジュールが、電源を入れられたコンピュータ・システムに当該リムーバブル・オペレーティング・システム・モジュールを接続するためのインターフェースと、不揮発性メモリ・ユニットとを含み、
前記方法が、
（１）リムーバブル・オペレーティング・システム・モジュールを製造するステップであって、前記第１コンピュータ・システムが、
当該第１コンピュータ・システムにオペレーティング・システムをインストールするステップと、
前記インストールされたオペレーティング・システムを当該第１コンピュータ・システム上で実行するステップと、
前記実行中のオペレーティング・システムのランニング・イメージを記憶するステップと、
前記第１コンピュータ・システムにリムーバブル・オペレーティング・システム・モジュールが挿入されることに応答して、前記記憶されたランニング・イメージを、当該挿入されたリムーバブル・オペレーティング・システム・モジュールに含まれる前記不揮発性メモリ・ユニットに転送するステップであって、前記転送されたランニング・イメージは前記不揮発性メモリ・ユニットに記憶され、そして前記リムーバブル・オペレーティング・システム・モジュールが製造されて、第２コンピュータ・システムのユーザに出荷される、前記転送するステップと
を実行することを含み、
（２）リムーバブル・オペレーティング・システム・モジュールを実行するステップであって、前記第２コンピュータ・システムが、
前記第２コンピュータ・システムに前記出荷されたリムーバブル・オペレーティング・システム・モジュールが挿入されることに応答して、前記リムーバブル・オペレーティング・システム・モジュールの前記挿入を検出するステップと、
前記オペレーティング・システムの前記ランニング・イメージを前記リムーバブル・オペレーティング・システム・モジュールから前記第２コンピュータ・システムに含まれる１つまたは複数のプロセッサからアクセス可能な第２メモリにロードするステップと、
前記プロセッサに前記ロードされたランニング・イメージのオペレーティング・システムを実行させるステップと
を実行することを含む、前記方法。
【請求項２】
前記第２コンピュータ・システムが下記ステップを実行するステップをさらに含み、該ステップが、
前記第２コンピュータ・システムをコンピュータ・ネットワークに接続するステップと、
前記第２コンピュータ・システムから、オペレーティング・システム更新に関する要求を送信するステップと、
前記要求に応答して、前記更新された前記オペレーティング・システムの第２ランニング・イメージを前記第２コンピュータ・システムで受信するステップと、
前記第２ランニング・イメージを使用して、前記不揮発性メモリ・ユニットに記憶された前記オペレーティング・システムの前記ランニング・イメージを更新するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記第２コンピュータ・システムが下記ステップを実行するステップをさらに含み、該ステップが、
前記第２コンピュータ・システムで、前記オペレーティング・システム更新に対応する支払額を受信するステップと、
前記支払額に対応する電子支払を、前記第２コンピュータ・システムから前記コンピュータ・ネットワークを介して送信するステップと
を含む、請求項２に記載の方法。
【請求項４】
前記第２コンピュータ・システムが下記ステップを実行するステップをさらに含み、該ステップが、
前記コンピュータ・ネットワークを介して製造業者のウェブサイトに前記第２コンピュータ・システムを接続するステップであって、前記支払情報が、前記ウェブサイトから受信され、前記電子支払が、前記製造業者のウェブサイトに送信される、前記接続するステップ
を含む、請求項３に記載の方法。
【請求項５】
オペレーティング・システムのランニング・イメージを記憶するリムーバブル・オペレーティング・システム・モジュールを製造用コンピュータ・システム（以下、第１情報処理システム）で製造し、当該製造されたリムーバブル・オペレーティング・システム・モジュールに記憶された前記オペレーティング・システムの前記ランニング・イメージをユーザのコンピュータ・システム（以下、第２情報処理システム）上で実行する情報処理システムであって、前記情報処理システムは、第１情報処理システム、第２情報処理システム及びリムーバブル・オペレーティング・システム・モジュールを含み、
（１）前記第１情報処理システムが、
１つまたは複数の第１プロセッサと、
前記プロセッサに結合された第１メモリ・ユニットと、
前記１つまたは複数の第１プロセッサに結合された第１リムーバブル・オペレーティング・システム・モジュール・インターフェースであって、前記リムーバブル・オペレーティング・システム・モジュールを受け入れる前記第１リムーバブル・オペレーティング・システム・モジュール・インターフェースと
を含み、
前記１つまたは複数の第１プロセッサが、当該第１情報処理システムにオペレーティング・システムをインストールし、当該インストールされたオペレーティング・システムを当該第１情報処理システム上で実行し、当該実行中のオペレーティング・システムのランニング・イメージを記憶し、前記第１リムーバブル・オペレーティング・システム・モジュール・インターフェースにリムーバブル・オペレーティング・システム・モジュールが挿入されることに応答して、前記記憶されたランニング・イメージを、当該挿入されたリムーバブル・オペレーティング・システム・モジュールに含まれる前記不揮発性メモリ・ユニットに転送することを実行し、当該実行によって、当該転送されたランニング・イメージは前記不揮発性メモリ・ユニットに記憶され、そして前記リムーバブル・オペレーティング・システム・モジュールが製造されて、第２情報処理システムのユーザに出荷される、
（２）前記第２情報処理システムが、
１つまたは複数の第２プロセッサと、
前記プロセッサに結合された第２メモリ・ユニットと、
前記１つまたは複数のプロセッサに結合された第２リムーバブル・オペレーティング・システム・モジュール・インターフェースであって、前記リムーバブル・オペレーティング・システム・モジュールを受け入れる前記第２リムーバブル・オペレーティング・システム・モジュール・インターフェースと
を含み、
前記１つまたは複数の第２プロセッサが、前記第２リムーバブル・オペレーティング・システム・モジュール・インターフェースに前記出荷されたリムーバブル・オペレーティング・システム・モジュールが挿入されることに応答して、前記リムーバブル・オペレーティング・システム・モジュールの前記挿入を検出し、前記オペレーティング・システムの前記ランニング・イメージを前記リムーバブル・オペレーティング・システム・モジュールから前記第２メモリ・ユニットにロードし、当該ロードされたランニング・イメージのオペレーティング・システムを実行する、
前記情報処理システム。
【請求項６】
前記１つまたは複数の第２プロセッサがさらに、
前記第２情報処理システムをコンピュータ・ネットワークに接続し、
前記第２情報処理システムから、オペレーティング・システム更新に関する要求の送信し、
前記要求に応答して、前記更新された前記オペレーティング・システムの第２ランニング・イメージを前記第２情報処理システムで受信し、
前記第２ランニング・イメージを使用して、前記第２メモリ・ユニットに記憶された前記オペレーティング・システムの前記ランニング・イメージの更新する、請求項５に記載の情報処理システム。
【請求項７】
前記１つまたは複数の第２プロセッサがさらに、
前記オペレーティング・システム更新のコストに対応する支払額の受信し、
前記支払額に対応する電子支払を、前記第２情報処理システムから前記コンピュータ・ネットワークを介して送信する、請求項６に記載の情報処理システム。
【請求項８】
前記１つまたは複数の第２プロセッサがさらに、
前記コンピュータ・ネットワークを介して製造業者のウェブサイトに前記第２情報処理システムを接続し、
前記支払情報が、前記製造業者のウェブサイトから受信され、前記電子支払が、前記製造業者のウェブサイトに送信される
請求項７に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にリムーバブル・オペレーティング・システム・モジュールの製造および実行のシステムおよび方法に関する。詳細には、本発明は、オペレーティング・システムのランニング・イメージ（running image）を１つまたは複数のリムーバブル・オペレーティング・システム・モジュールにロードするシステムおよび方法に関する。
【背景技術】
【０００２】
多くのコンピュータ・ユーザが、複数のコンピュータ・システムまたは他のコンピューティング・デバイスあるいはその両方を所有する。ユーザは、たとえば、家庭のデスクトップ・コンピュータ、仕事場のデスクトップ・コンピュータ、およびポータブル・ラップトップ・コンピュータを所有する場合がある。さらに、ユーザは、携帯情報端末および携帯電話機などのポケットサイズのコンピューティング・デバイスを所有する場合がある。
【０００３】
あるユーザが所有するコンピュータ・システムおよびデバイスのそれぞれについて、ユーザは、別々のオペレーティング・システム・ライセンスを購入しなければならない。たとえば、ユーザは、デスクトップ・パーソナル・コンピュータのＷｉｎｄｏｗｓ（Ｒ）オペレーティング・システム・ライセンスと、携帯情報端末のＰａｌｍオペレーティング・システムを購入しなければならない。しばしば、オペレーティング・システムのライセンスが、システムの価格に含まれる。ユーザは、同一のオペレーティング・システムを使用できるコンピュータ・システムについても別々のオペレーティング・システムを購入しなければならない。たとえば、ユーザは、デスクトップ機とラップトップ・パーソナル・コンピュータが同時に使用されない場合であっても、この両方のためにＷｉｎｄｏｗｓ（Ｒ）オペレーティング・システムを別々にライセンス契約しなければならない。
【０００４】
複数のオペレーティング・システムの所有に関連するコストのほかに、ユーザは、オペレーティング・システムのそれぞれを別々に保守し、更新しなければならない。たとえば、Ｗｉｎｄｏｗｓ（Ｒ）オペレーティング・システムの更新が使用可能であり、ユーザがデスクトップ機およびラップトップ・パーソナル・コンピュータの両方でＷｉｎｄｏｗｓ（Ｒ）を動作させている場合に、そのユーザは、ラップトップ機とデスクトップ機の両方で別々にＷｉｎｄｏｗｓ（Ｒ）ｕｐｄａｔｅユーティリティを実行しなければならない。ユーザが、特定のＷｉｎｄｏｗｓ（Ｒ）デスクトップ・テーマをインストールすることを望む場合に、そのユーザは、デスクトップ機とラップトップ機の両方にそのデスクトップ・テーマをインストールしなければならない。ユーザが、あるプリンタをインストールし、使用することを望む場合に、そのユーザは、デスクトップ機とラップトップ機の両方にプリンタ・ドライバをインストールしなければならない。ユーザが、お気に入りウェブサイトのリストを記憶することを望む場合に、そのユーザは、デスクトップ機とラップトップ機の両方でそれを行わなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、単一のライセンスを購入し、複数のコンピュータ・システムで単一のオペレーティング・システムを実行する形をユーザに提供できるシステムおよび方法が必要である。このシステムおよび方法は、ユーザが複数のコンピュータ・システムの１つにリムーバブル・モジュールを挿入し、単一のオペレーティング・システムを実行できるように、リムーバブル・モジュール上の単一のオペレーティング・システムだけ更新し、保守する能力をユーザに提供すべきである。
【０００６】
さらに、そのようなモジュールを製造するシステムおよび方法が必要である。最初にモジュールにオペレーティング・システムのランニング・イメージをロードし、そのモジュールをクライアントに出荷するシステムおよび方法が必要である。ユーザが、後で、リムーバブル・モジュール上のオペレーティング・システムのランニング・イメージを更新するシステムおよび方法も必要である。
【課題を解決するための手段】
【０００７】
第１コンピュータを使用してリムーバブル・オペレーティング・システム・モジュールにオペレーティング・システムのランニング・イメージを記憶する方法およびシステムによって、前述の課題に対処できることが判明した。リムーバブル・モジュールに記憶されるオペレーティング・システムは、第２コンピュータ・システムへのリムーバブル・モジュールの挿入時に第２コンピュータ・システムによって実行されるように適合される。
【０００８】
リムーバブル・モジュールは、まず、第１コンピュータ・システムに挿入される。リムーバブル・オペレーティング・システム・モジュールには、リムーバブル・モジュールを電源の入ったコンピュータ・システムに接続するように適合されたインターフェースと、オペレーティング・システムのランニング・イメージを記憶する不揮発性メモリ・ユニットが含まれる。
【０００９】
オペレーティング・システムは、まず、第１コンピュータにインストールされ、オペレーティング・システムの実行が、開始され、オペレーティング・システムのランニング・イメージが、第１コンピュータ・システムに記憶される。その後、オペレーティング・システムのランニング・イメージを、第１コンピュータ・システムから、リムーバブル・オペレーティング・システム・モジュールの不揮発性メモリ・ユニットに転送することができる。
【００１０】
オペレーティング・システムのランニング・イメージをリムーバブル・オペレーティング・システム・モジュールに転送した後に、リムーバブル・オペレーティング・システム・モジュールが、第１コンピュータ・システムから取り外され、第２コンピュータ・システムのユーザに出荷される。ユーザは、リムーバブル・モジュールを受けるように適合された第２コンピュータ・システムの物理インターフェースに、リムーバブル・オペレーティング・システム・モジュールを挿入することができる。第２コンピュータ・システムは、第２コンピュータ・システムの物理インターフェースへのリムーバブル・オペレーティング・システム・モジュールの挿入を検出し、オペレーティング・システムのランニング・イメージを、リムーバブル・モジュールから、第２コンピュータ・システムに含まれる１つまたは複数のプロセッサからアクセス可能な第２メモリにロードすることができる。次に、ロードされたオペレーティング・システムを、プロセッサによって実行することができる。
【００１１】
リムーバブル・オペレーティング・システム・モジュール上のオペレーティング・システムのランニング・イメージは、ユーザが更新することができる。第２コンピュータ・システムを、コンピュータ・ネットワークに接続することができ、オペレーティング・システム更新に関する要求を、第２コンピュータ・システムによって送信することができる。その要求に応答して第２コンピュータ・システムでオペレーティング・システムの第２ランニング・イメージを受け取った後に、リムーバブル・オペレーティング・システム・モジュールの不揮発性メモリ・ユニットに記憶されたオペレーティング・システムのランニング・イメージを、オペレーティング・システムの第２ランニング・イメージを使用して更新することができる。
【００１２】
ユーザは、第２コンピュータ・システムを介して、オペレーティング・システム更新のコストに対応する支払額を送信することによって、更新を購入することができる。支払は、電子形式とすることができるが、第２コンピュータ・システムからコンピュータ・ネットワークを介して製造業者のウェブ・サイトに送信することができ、このウェブサイトで、支払情報が受信される。
【００１３】
別法として、ユーザは、リムーバブル・オペレーティング・システム・モジュールを第２コンピュータ・システムから取り外し、そのモジュールをオペレーティング・システム・サービス・プロバイダに送ることができる。サービス・プロバイダは、リムーバブル・モジュールのオペレーティング・システムのランニング・イメージを更新し、リムーバブル・オペレーティング・システム・モジュールをユーザに送り返すことができる。
【００１４】
前述は、要約であり、したがって、必要により、単純化、一般化、および詳細の省略が含まれる。その結果、当業者は、この要約が例示にすぎず、決して制限するものでないことを理解するであろう。本発明の他の態様、発明的特徴、および長所は、特許請求の範囲のみによって定義され、下記で示す非制限的な詳細な説明で明らかになる。
【００１５】
添付図面を参照することによって、本発明をよりよく理解することができ、その多数の目的、特徴、および利点が、当業者に明らかになる。異なる図面での同一の符号の使用は、類似するか同一の項目を示す。
【発明を実施するための最良の形態】
【００１６】
以下は、本発明の例の詳細な説明を提供することが意図されたものであり、本発明自体の制限と解釈してはならない。そうではなく、多数の変形形態を、特許請求の範囲で定義される発明の範囲に含めることができる。
【００１７】
図１は、２つのコンピュータ・システムの間で交換できるリムーバブル・オペレーティング・システム・モジュールを示すブロック図である。コンピュータ・システム１１０に、オペレーティング・システム・ランニング・イメージのロードの前にコンピュータ・システム１１０の基本入出力を実行するＢＩＯＳ１１５、コンピュータ・システムにインストールされたアプリケーション、ユーザの設定などを記憶する不揮発性ストレージ１２０、およびコンピュータ・システムの動作中に一時ストレージとして使用されるメモリ１２５が含まれる。本明細書で総称するＢＩＯＳに、パワー・オン・セルフ・テスト（ＰＯＳＴ）も含めることができる。コンピュータ・システム１１０に、デバイスのデバイス・ドライバ１３５を含む、追加デバイス１３０（プリンタなど）も含まれる。デバイス・ドライバ１３５は、コンピュータ・システム１１０と追加デバイス１３０の間の通信を実現するためにコンピュータ・システム１１０にインストールされる。追加デバイス１３０によって、追加デバイス１３０がコンピュータ・システム１１０に接続される時にコンピュータ・システム１１０にデバイス・ドライバ１３５を供給することができ、その結果、ユーザが、異なるソースから追加デバイス１３０のデバイス・ドライバを入手する必要がなくなる。
【００１８】
コンピュータ・システム１１０には、リムーバブル・オペレーティング・システム・モジュール・インターフェース１３７も含まれ、リムーバブル・オペレーティング・システム・モジュール・インターフェース１３７は、リムーバブル・オペレーティング・システム・モジュール１８０などのリムーバブル・オペレーティング・システム・モジュールを受けることができる。リムーバブル・オペレーティング・システム・モジュール１８０には、不揮発性メモリ１８５およびオペレーティング・システム・ランニング・イメージ（ＯＳランニング・イメージ）１９０が含まれる。リムーバブル・オペレーティング・システム・モジュール１８０がリムーバブル・オペレーティング・システム・モジュール・インターフェース１３７に挿入される時に、ＢＩＯＳ１１５によって、リムーバブル・オペレーティング・システム・モジュール１８０が検出され、リムーバブル・オペレーティング・システム・モジュール１８０からメモリ・ユニット１２５にオペレーティング・システム・ランニング・イメージがロードされる。次に、ＢＩＯＳ１１５によって、コンピュータ・システム１１０でのオペレーティング・システムの実行が開始される。ロードされたオペレーティング・システムによって、コンピュータ・システム１１０が動作し、制御され、不揮発性ストレージ１２０、メモリ１２５、ＢＩＯＳ１１５、および追加デバイス１３０の間のインターフェースが提供される。
【００１９】
同様に、コンピュータ・システム１４０に、オペレーティング・システム・ランニング・イメージのロードの前にコンピュータ・システム１４０の基本入出力を実行するＢＩＯＳ１４５、コンピュータ・システムにインストールされたアプリケーション、ユーザの設定などを記憶する不揮発性ストレージ１６０、およびコンピュータ・システムの動作中に一時ストレージとして使用されるメモリ１６５が含まれる。コンピュータ・システム１４０に、デバイスのデバイス・ドライバ１７５を含む、追加デバイス１７０（プリンタなど）も含まれる。デバイス・ドライバ１７５は、コンピュータ・システム１４０と追加デバイス１７０の間の通信を実現するためにコンピュータ・システム１４０にインストールされる。追加デバイス１７０によって、追加デバイス１７０がコンピュータ・システム１４０に接続される時にコンピュータ・システム１４０にデバイス・ドライバ１７５を供給することができ、その結果、ユーザが、異なるソースから追加デバイス１７０のデバイス・ドライバを入手する必要がなくなる。コンピュータ・システム１４０には、リムーバブル・オペレーティング・システム・モジュール・インターフェース１７７も含まれ、リムーバブル・オペレーティング・システム・モジュール・インターフェース１７７は、リムーバブル・オペレーティング・システム・モジュール１８０などのリムーバブル・オペレーティング・システム・モジュールを受けることができる。
【００２０】
リムーバブル・オペレーティング・システム・モジュール１８０を、コンピュータ・システム１１０から取り外し、その後、コンピュータ・システム１４０に挿入することができ、モジュール上のオペレーティング・システム・ランニング・イメージは、どちらのコンピュータ・システムでも動作させ、制御することができる。リムーバブル・オペレーティング・システム・モジュール１８０をリムーバブル・オペレーティング・システム・モジュール・インターフェース１７７に挿入する際に、ＢＩＯＳ１４５によって、リムーバブル・オペレーティング・システム・モジュール１８０が検出され、オペレーティング・システム・ランニング・イメージが、リムーバブル・オペレーティング・システム・モジュール１８０からメモリ・ユニット１６５にロードされる。その後、ＢＩＯＳ１４５によって、コンピュータ・システム１１０と非常に似た形で、コンピュータ・システム１４０でのオペレーティング・システムの実行が開始される。ロードされたオペレーティング・システム・ランニング・イメージによって、コンピュータ・システム１４０が動作し、制御され、不揮発性ストレージ１６０、メモリ１６５、ＢＩＯＳ１４５、および追加デバイス１７０の間のインターフェースが提供される。
【００２１】
図２は、オペレーティング・システムのランニング・イメージが記憶される不揮発性ストレージおよびＣＰＵを含むモジュールを受け入れるように適合されたコンピュータ・システムを示すブロック図である。オペレーティング・システムのランニング・イメージは、内部オペレーティング・システム・タスクの実行を含む、初期化され、実行中のオペレーティング・システムを含むメモリのスナップショットである。
【００２２】
コンピュータ・システム２０１に、ＣＰＵ２９４が含まれ、ＣＰＵ２９４は、リムーバブル・モジュール２９０にある。リムーバブル・モジュール２９０には、不揮発性ＲＡＭ２９２も含まれるが、リムーバブル・モジュール２９０を、コンピュータ・システム２０１から取り外し、再挿入することができる。リムーバブル・モジュール２９０は、ホスト・バス２０２に結合され、ホスト・バス２０２によって、リムーバブル・モジュール２９０がコンピュータ・システム２０１に接続される。不揮発性ストレージ２９２には、オペレーティング・システム・ランニング・イメージ（ＯＳランニング・イメージ）２９４’が含まれ、オペレーティング・システム・ランニング・イメージ２９４’は、コンピュータ・システム２０１へのリムーバブル・モジュール２９０の挿入時に、ロードされ、コンピュータ・システム２０１の動作および制御のために実行を開始される。
【００２３】
レベル２（Ｌ２）キャッシュ・メモリ２０４も、ホスト・バス２０２に結合される。ホスト−ＰＣＩブリッジ２０６が、メイン・メモリ２０８に結合され、ホスト−ＰＣＩブリッジ２０６には、キャッシュ・メモリおよびメイン・メモリ制御機能が含まれ、ホスト−ＰＣＩブリッジ２０６によって、ＰＣＩバス２１０、プロセッサ２９４、Ｌ２キャッシュ２０４、メイン・メモリ２０８、およびホスト・バス２０２の間での転送を処理するバス制御が提供される。メイン・メモリ２０８は、ホスト−ＰＣＩブリッジ２０６ならびにホスト・バス２０２に結合される。ＬＡＮカード２３０など、ＣＰＵ２９４だけによって使用されるデバイスは、ＰＣＩバス２１０に結合される。サービス・プロセッサ・インターフェースおよびＩＳＡアクセス・パススルー２１２によって、ＰＣＩバス２１０とＰＣＩバス２１４の間のインターフェースが提供される。この形で、ＰＣＩバス２１４が、ＰＣＩバス２１０から隔離される。フラッシュ・メモリ２１８などのデバイスが、ＰＣＩバス２１４に結合される。一実施形態では、フラッシュ・メモリ２１８に、さまざまな低水準システム機能およびシステム・ブート機能の必要なプロセッサ実行可能コードが組み込まれたＢＩＯＳコードが含まれる。
【００２４】
ＰＣＩバス２１４によって、たとえばフラッシュ・メモリ２１８を含む、ＣＰＵ２９４およびサービス・プロセッサ２１６によって共用されるさまざまなデバイスのインターフェースが提供される。ＰＣＩ−ＩＳＡブリッジ２３５によって、ＰＣＩバス２１４とＩＳＡバス２４０の間の転送を制御するバス制御、universal serial bus（ＵＳＢ）機能２４５、電源管理機能２５５が提供され、ＰＣＩ−ＩＳＡブリッジ２３５に、リアルタイム・クロック（ＲＴＣ）、ＤＭＡ制御、割り込みサポート、およびシステム管理バス・サポートなどの図示されていない他の機能要素を含めることができる。不揮発性ＲＡＭ２２０が、ＩＳＡバス２４０に接続される。サービス・プロセッサ２１６に、初期化ステップ中にＣＰＵ２９４と通信するＪＴＡＧおよびＩ２Ｃバス２２２が含まれる。ＪＴＡＧ／Ｉ２Ｃバス２２２は、Ｌ２キャッシュ２０４、ホスト−ＰＣＩブリッジ２０６、およびメイン・メモリ２０８にも結合され、プロセッサ、サービス・プロセッサ、Ｌ２キャッシュ、ホスト−ＰＣＩブリッジ、およびメイン・メモリの間の通信パスを提供する。サービス・プロセッサ２１６は、情報処理デバイス２０１の電源を切るためにシステム電源リソースへのアクセスも有する。
【００２５】
周辺デバイスおよび入出力デバイスは、さまざまなインターフェース（たとえば、ＩＳＡバス２４０に結合された、パラレル・インターフェース２６２、シリアル・インターフェース２６４、キーボード・インターフェース２６８、およびマウス・インターフェース２７０）に接続することができる。別法では、多数の入出力デバイスに、ＩＳＡバス２４０に接続されたスーパー入出力コントローラ（図示せず）によって対処することができる。
【００２６】
コンピュータ・システム２０１を別のコンピュータ・システムに接続して、ネットワークを介してファイルをコピーするために、ＬＡＮカード２３０が、ＰＣＩバス２１０に結合される。同様に、電話回線接続を使用してインターネットに接続するためにコンピュータ・システム２０１をＩＳＰに接続するために、モデム２７５が、シリアル・ポート２６４およびＰＣＩ−ＩＳＡブリッジ２３５に接続される。
【００２７】
図３は、オペレーティング・システムのランニング・イメージが記憶される不揮発性ストレージを含むモジュールを受け入れるように適合されたコンピュータ・システムを示すブロック図である。コンピュータ・システム３０１に、ホスト・バス３０２に結合されたプロセッサ３００が含まれる。リムーバブル・モジュール３９０に、不揮発性ＲＡＭ３９２が含まれるが、リムーバブル・モジュール３９０を、コンピュータ・システム３０１から取り外し、再挿入することができる。リムーバブル・モジュール３９０は、ホスト・バス３０２に結合され、ホスト・バス３０２によって、リムーバブル・モジュール３９０がコンピュータ・システム３０１に接続される。不揮発性ストレージ３９２には、オペレーティング・システム・ランニング・イメージ（ＯＳランニング・イメージ）３９４が含まれ、オペレーティング・システム・ランニング・イメージ３９４は、コンピュータ・システム３０１へのリムーバブル・モジュール３９０の挿入時に、ロードされ、コンピュータ・システム３０１の動作および制御のために実行を開始される。
【００２８】
レベル２（Ｌ２）キャッシュ・メモリ３０４も、ホスト・バス３０２に結合される。ホスト−ＰＣＩブリッジ３０６が、メイン・メモリ３０８に結合され、ホスト−ＰＣＩブリッジ３０６には、キャッシュ・メモリおよびメイン・メモリ制御機能が含まれ、ホスト−ＰＣＩブリッジ３０６によって、ＰＣＩバス３１０、プロセッサ３００、Ｌ２キャッシュ３０４、メイン・メモリ３０８、およびホスト・バス３０２の間での転送を処理するバス制御が提供される。メイン・メモリ３０８は、ホスト−ＰＣＩブリッジ３０６ならびにホスト・バス３０２に結合される。ＬＡＮカード３３０など、ホスト・プロセッサ３００だけによって使用されるデバイスは、ＰＣＩバス３１０に結合される。サービス・プロセッサ・インターフェースおよびＩＳＡアクセス・パススルー３１２によって、ＰＣＩバス３１０とＰＣＩバス３１４の間のインターフェースが提供される。この形で、ＰＣＩバス３１４が、ＰＣＩバス３１０から隔離される。フラッシュ・メモリ３１８などのデバイスが、ＰＣＩバス３１４に結合される。一実施形態では、フラッシュ・メモリ３１８に、さまざまな低水準システム機能およびシステム・ブート機能の必要なプロセッサ実行可能コードが組み込まれたＢＩＯＳコードが含まれる。
【００２９】
ＰＣＩバス３１４によって、たとえばフラッシュ・メモリ３１８を含む、ホスト・プロセッサ３００およびサービス・プロセッサ３１６によって共用されるさまざまなデバイスのインターフェースが提供される。ＰＣＩ−ＩＳＡブリッジ３３５によって、ＰＣＩバス３１４とＩＳＡバス３４０の間の転送を制御するバス制御、universal serial bus（ＵＳＢ）機能３４５、電源管理機能３５５が提供され、ＰＣＩ−ＩＳＡブリッジ３３５に、リアルタイム・クロック（ＲＴＣ）、ＤＭＡ制御、割り込みサポート、およびシステム管理バス・サポートなどの図示されていない他の機能要素を含めることができる。不揮発性ＲＡＭ３２０が、ＩＳＡバス３４０に接続される。サービス・プロセッサ３１６に、初期化ステップ中にプロセッサ３００と通信するＪＴＡＧおよびＩ２Ｃバス３２２が含まれる。ＪＴＡＧ／Ｉ２Ｃバス３２２は、Ｌ２キャッシュ３０４、ホスト−ＰＣＩブリッジ３０６、およびメイン・メモリ３０８にも結合され、プロセッサ、サービス・プロセッサ、Ｌ２キャッシュ、ホスト−ＰＣＩブリッジ、およびメイン・メモリの間の通信パスを提供する。サービス・プロセッサ３１６は、情報処理デバイス３０１の電源を切るためにシステム電源リソースへのアクセスも有する。
【００３０】
周辺デバイスおよび入出力デバイスは、さまざまなインターフェース（たとえば、ＩＳＡバス３４０に結合された、パラレル・インターフェース３６２、シリアル・インターフェース３６４、キーボード・インターフェース３６８、およびマウス・インターフェース３７０）に接続することができる。別法では、多数の入出力デバイスに、ＩＳＡバス３４０に接続されたスーパー入出力コントローラ（図示せず）によって対処することができる。
【００３１】
コンピュータ・システム３０１を別のコンピュータ・システムに接続して、ネットワークを介してファイルをコピーするために、ＬＡＮカード３３０が、ＰＣＩバス３１０に結合される。同様に、電話回線接続を使用してインターネットに接続するためにコンピュータ・システム３０１をＩＳＰに接続するために、モデム３７５が、シリアル・ポート３６４およびＰＣＩ−ＩＳＡブリッジ３３５に接続される。
【００３２】
図４は、リムーバブル・オペレーティング・システム・モジュールをコンピュータ・システムに挿入された状態およびこれを挿入されない状態のコンピュータ・システムの状態を示すブロック図である。コンピュータ・システム４１０に、オペレーティング・システムの実行の前に基本的な入出力機能を実行するＢＩＯＳ４２８、コンピュータ・システム４１０を動作させ、制御する命令を処理するＣＰＵ４３０、インストールされたアプリケーション、ユーザ設定などが記憶される不揮発性ストレージ４３４、およびコンピュータ・システム４１０が動作している間の一時的ストレージのためのＲＡＭ４１２が含まれる。
【００３３】
さらに、コンピュータ・システム４１０には、リムーバブル・オペレーティング・システム・モジュール・インターフェース４２５が含まれ、リムーバブル・オペレーティング・システム・モジュール・インターフェース４２５は、リムーバブル・オペレーティング・システム・モジュール４２４を受けることができる。リムーバブル・オペレーティング・システム・モジュール４２４には、不揮発性ストレージ内のオペレーティング・システム・ランニング・イメージ４２６が含まれる。
【００３４】
リムーバブル・オペレーティング・システム・モジュール・インターフェース４２５へのリムーバブル・オペレーティング・システム・モジュール４２４の挿入時に、ＢＩＯＳ４２８によって、リムーバブル・オペレーティング・システム・モジュール４２４の不揮発性ストレージからＲＡＭ４１２（オペレーティング・システムＲＡＭ４１４）へ、オペレーティング・システム・ランニング・イメージ４２６がロードされ、オペレーティング・システムの実行が開始される。
【００３５】
その後、オペレーティング・システムによって、不揮発性ストレージ４３４から、コンピュータ・システム４１０に接続された外部デバイスに必要なデバイス・ドライバ（デバイス・ドライバＲＡＭ４１６）、入出力構成（入出力構成ＲＡＭ４１８）、および要求されたアプリケーション（アプリケーションＲＡＭ４２０）がロードされる。
【００３６】
コンピュータ・システム４１０からのリムーバブル・オペレーティング・システム・モジュール４２４の取外しの際には、ロード処理が逆転される。オペレーティング・システムの現在の状態が、リムーバブル・オペレーティング・システム・モジュール４２４上で更新され、アプリケーション情報、入出力構成、およびデバイス・ドライバが、不揮発性ストレージ４３４上で更新される。取外しの際に、リムーバブル・オペレーティング・システム・モジュールを、別の互換コンピュータ・システムに挿入でき、そのモジュールのオペレーティング・システムによって、その別のコンピュータ・システムを制御し、動作させることができる。
【００３７】
図５は、コンピュータ・システムへのリムーバブル・オペレーティング・システム・モジュールの挿入および取外しの処理を示す流れ図である。処理は５００で開始され、ステップ５１０で、ユーザが、リムーバブル・オペレーティング・システム・モジュールを、モジュールを受けるように適合されたコンピュータ・システムに挿入する。リムーバブル・オペレーティング・システム・モジュールには、オペレーティング・システムのランニング・イメージが含まれ、このランニング・イメージは、モジュールの不揮発性ストレージに記憶される。ステップ５１５で、コンピュータ・システムのＢＩＯＳによって、挿入時にリムーバブル・オペレーティング・システム・モジュールが検出され、モジュールの不揮発性ストレージからコンピュータ・システムのＲＡＭへのオペレーティング・システム・ランニング・イメージのロードが開始される。オペレーティング・システム・ランニング・イメージのロードが完了した後に、ＢＩＯＳによって、オペレーティング・システムの実行が開始され、制御がオペレーティング・システムに渡される。図６の流れ図に、ステップ５１５で行われる処理の詳細を示す。
【００３８】
ステップ５２０で、オペレーティング・システムによって、このコンピュータに接続されたローカル・デバイスが発見される。オペレーティング・システムによって、このコンピュータ・システムからのリムーバブル・オペレーティング・システム・モジュールの取外しの前のデバイスを含むリストが、現在発見されているデバイスと比較され、それに従ってデバイスのリストが更新される。図７の流れ図に、ステップ５２０で行われる処理の詳細を示す。
【００３９】
ステップ５２５で、オペレーティング・システムによって、コンピュータ・システムによってまたはユーザが異なるコンピュータ・システムを使用していた時にユーザによってアクセス可能であったリモート・デバイスが発見される。図８の流れ図に、ステップ５２５で行われる処理の詳細を示す。
【００４０】
ステップ５３０で、オペレーティング・システムによって、コンピュータ・システムからのリムーバブル・オペレーティング・システム・モジュールの最後の取外しの前にハイバネートまたは他の形で延期されたアプリケーションが初期化される。図９の流れ図に、ステップ５３０で行われる処理の詳細を示す。
【００４１】
ステップ５３５で、オペレーティング・システムによってコンピュータ・システムが管理される。オペレーティング・システムは、ユーザによってまたは実行中のアプリケーションによって要求されるタスクを実行する。図１０の流れ図に、ステップ５３５で行われる処理の詳細を示す。
【００４２】
判断５４０で、ユーザがリムーバブル・オペレーティング・システム・モジュールの取外しを要求したかどうかに関する判定を行う。ユーザが、リムーバブル・オペレーティング・システム・モジュールの取外しをまだ要求していない場合には、判断５４０が「ｎｏ」分岐５５０に分岐し、ステップ５３５にループ・バックし、オペレーティング・システムが、要求されたタスクの実行を継続する。
【００４３】
ユーザが、リムーバブル・オペレーティング・システム・モジュールの取外しを要求した場合には、判断５４０は、「ｙｅｓ」分岐５４５に分岐し、処理は、ステップ５５５で継続され、オペレーティング・システムの状態が、リムーバブル・オペレーティング・システム・モジュールに記憶される。図１１の流れ図に、ステップ５５５で行われる処理の詳細を示す。
【００４４】
ステップ５６０で、リムーバブル・オペレーティング・システム・モジュールの取外しに関するすべての準備を実行した後に、ユーザは、「モジュールを取り外しても安全です」という通知を受け、ユーザは、ステップ５６５で、リムーバブル・オペレーティング・システム・モジュールを取り外す。処理は、５９９で終了する。
【００４５】
図６は、リムーバブル・オペレーティング・システム・モジュールを検出し、オペレーティング・システム・ランニング・イメージをロードし、オペレーティング・システムに制御を渡す、ＢＩＯＳの処理を示す流れ図である。処理は６００で開始され、ステップ６１０で、ＢＩＯＳによって、挿入されたリムーバブル・オペレーティング・システム・モジュールが検出される。リムーバブル・オペレーティング・システム・モジュールには、たとえば、コンピュータ・システムにモジュールに関する初期情報を供給するために、プラグアンドプレイ・タイプの機能を含めることができる。
【００４６】
ステップ６１５で、ＢＩＯＳによって、オペレーティング・システムのランニング・イメージが、リムーバブル・オペレーティング・システム・モジュールからコンピュータ・システムのＲＡＭにロードされる。オペレーティング・システム・ランニング・イメージをロードする際に、ＢＩＯＳによって、オペレーティング・システムのランニング・イメージをＲＡＭに直接にコピーすることができ、あるいは、ＢＩＯＳによって、モジュールのメモリ・アドレスをＲＡＭアドレスにマッピングしてモジュールからオペレーティング・システムを実行することができ、あるいは、ＢＩＯＳによって、オペレーティング・システムの・ランニングイメージを、モジュール上のハイバネートされた記憶状態からＲＡＭに復元することができ、あるいは、上記の組合せを行うことができる。リムーバブル・オペレーティング・システム・モジュール上のメモリ・アドレスとコンピュータ・システムのＲＡＭの間のマッピングを確立するために、たとえば、挿入時の所定の自動割り当てによって、またはオペレーティング・システム用に予約されたＲＡＭ内の基底アドレスを有することによって、またはハードウェア・ピン検出および再配置を使用することによって、基底アドレスを割り当てることができる。
【００４７】
ステップ６２０で、ＢＩＯＳによって、ユーザに、オペレーティング・システムの実行を再開するか、効果的にシステムをリブートするかモジュールを再初期化することによってオペレーティング・システムを再始動するかのプロンプトを出す。ステップ６２５で、ユーザの入力を受け取る。
【００４８】
判断６２５で、ユーザが、オペレーティング・システムの再始動を選択したかどうかに関する判定を行う。ユーザがシステムの再始動を選択した場合には、判断６２５は、「ｙｅｓ」分岐６３５に分岐し、ステップ６５５で、オペレーティング・システムの再始動エントリ・ポイントをモジュールから得る。オペレーティング・システム再始動ポイントは、モジュールの初期作成中またはコンピュータ・システムからのモジュールの取外しの前にオペレーティング・システムの状態がモジュールに記憶される時のいずれかにモジュールに記憶される。再始動エントリ・ポイントは、リムーバブル・オペレーティング・システム・モジュールの最後の取外しの前のオペレーティング・システムの以前の状況を考慮せずに処理が再開始される点を表す。ステップ６６０で、オペレーティング・システムが、再始動エントリ・ポイントで実行を開始する。その後、処理が６９９で終了する。
【００４９】
ユーザが、システムの再始動を選択したのではなく、オペレーティング・システムの再開を選択した場合には、判断６２５は、「ｎｏ」分岐６４０に分岐し、ステップ６４５で、オペレーティング・システムの再開エントリ・ポイントをモジュールから得る。オペレーティング・システムの再開ポイントは、コンピュータ・システムからのモジュールの最後の取外しの前にモジュールに記憶される。再開エントリ・ポイントは、オペレーティング・システムの状態がリムーバブル・オペレーティング・システム・モジュールに記憶される直前に処理が停止された点を表す。ステップ６５０で、オペレーティング・システムが、再開エントリ・ポイントから実行を開始する。その後、処理が６９９で終了する。
【００５０】
図７は、コンピュータ・システムに接続されたローカル・デバイスを発見する処理を示す流れ図である。処理は７００で開始され、判断７１０で、ローカル・デバイス・ドライバ構成ファイルが、ローカル・コンピュータ・システムの不揮発性ストレージに存在するかどうかに関する判定を行う。デバイス・ドライバ構成ファイルが存在しない場合には、判断７１０は、「ｎｏ」分岐７１４に分岐し、ステップ７３６で、ローカル・デバイス・ドライバ構成ファイルを作成する。その後、処理は判断７３８で継続される。デバイス・ドライバ構成ファイルには、コンピュータが最後にハイバネート、延期、またはシャットダウンされた時の前にコンピュータ・システムに接続されたすべてのローカル・ドライブのリストが含まれる。このリストは、必ずしも現在のデバイスの存在を反映しない場合がある。というのは、コンピュータ・システムが最後に動作した時以降に、新しいデバイスが追加され、古いデバイスが切断された可能性があるからである。
【００５１】
デバイス・ドライバ構成ファイルが存在する場合に、判断７１０は、「ｙｅｓ」分岐７１２に分岐し、デバイス・ドライバ構成ファイルが、ローカル・コンピュータ・システムからロードされる。ステップ７１８で、構成ファイルの最初のデバイスを選択し、判断７２０で、選択されたデバイスがコンピュータ・システムに現在接続されているかどうかを判定する。デバイスが使用可能でない場合には、判断７２０は、「ｎｏ」分岐７２２に分岐し、ステップ７２６で、選択されたデバイスをデバイス・ドライバ構成ファイルから削除する。その後、処理は、判断７２８で継続される。選択されたデバイスが使用可能である場合には、判断７２０は、「ｙｅｓ」分岐７２４に分岐し、削除ステップをスキップする。
【００５２】
判断７２８では、デバイス・ドライバ構成ファイルのリストに、検査を必要とするデバイス・ドライバがまだ存在するかどうかに関する判定を行う。まだデバイス・ドライバが存在する場合には、判断７２８は「ｙｅｓ」分岐７３２に分岐し、ステップ７３４で、次のデバイス・ドライバを選択し、処理は判断７２０にループ・バックする。デバイス・ドライバ構成ファイルにもうデバイス・ドライバがない場合には、判断７２８は「ｎｏ」分岐７３０に分岐し、処理は判断７３８で継続される。
【００５３】
判断７３８では、コンピュータ・システムの電源が最後にオンにされた時以降にコンピュータ・システムに新しいデバイスが接続されたかどうかに関する判定を行う。新しいデバイスが存在しない場合には、判断７３８は「ｎｏ」分岐７４０に分岐し、デバイス・ドライバ構成ファイルは、これ以上更新されず、処理は７９９で終了する。新しいデバイスが存在する場合には、判断７３８は「ｙｅｓ」分岐７４２に分岐し、ステップ７４６で、発見された最初の新しいデバイスを選択する。ステップ７４６で、新たに発見されたデバイスに対応するデバイス・ドライバを判定し、ロードする。オペレーティング・システムのレジストリを、それに応じて更新する。さらに、ローカル・デバイス・ドライバ構成ファイルを更新して、新たに発見されたデバイスを含める。
【００５４】
判断７４８で、登録を必要とする新しいデバイスがまだ存在するかどうかを判定する。新しいデバイスがもう存在しない場合には、判断７４８は「ｎｏ」分岐７５０に分岐し、処理は７９９で終了する。新しいデバイスがまだ存在する場合には、判断７４８は「ｙｅｓ」分岐７５２に分岐し、ステップ７５４で、次の新しいデバイスを選択し、新しいデバイスをセット・アップし、適切なファイルを更新するために、処理は７４６にループ・バックする。
【００５５】
図８は、コンピュータ・システムによってアクセス可能なリモート・デバイスを発見する処理を示す流れ図である。処理は、８００で開始される。判断８１０で、リモート・デバイス・ドライバ構成ファイルがローカル・コンピュータ・システムに存在するかどうかを判定する。リモート・デバイス・ドライバ構成ファイルがコンピュータ・システムに存在しない場合には、判断８１０は「ｎｏ」分岐８１４に分岐して、処理は判断８１８で継続される。
【００５６】
リモート・デバイス・ドライバ構成ファイルがコンピュータ・システムに存在する場合には、判断８１０は「ｙｅｓ」分岐８１２に分岐し、リモート・デバイス・ドライバ構成ファイルをロードして、コンピュータ・システムが最後に電源を入れられた時にコンピュータ・システムが接続されたリモート・デバイスのリストを得る。処理は、判断８１８で継続される。
【００５７】
判断８１８で、リモート・デバイス・ドライバ構成ファイルがリムーバブル・オペレーティング・システム・モジュールに存在するかどうかに関する判定を行う。モジュールのユーザによる好みのリモート・デバイスの別々のリモート・デバイス・ドライバ構成ファイルを、モジュールに保存することができる。リモート・デバイス・ドライバ構成ファイルが存在しない場合には、判断８１８は「ｎｏ」分岐８２０に分岐し、処理はステップ８２６で継続される。リモート・デバイス・ドライバ構成ファイルが存在する場合には、判断８１８は「ｙｅｓ」分岐８２２に分岐し、ステップ８２４で、リモート・デバイス・ドライバ構成ファイルをモジュールからロードする。処理は、ステップ８２６で継続される。
【００５８】
ステップ８２６で、最初のリモート・デバイス・ドライバを選択し、ステップ８２８で、リモート・デバイス・ドライバ・レジストリ・サーバに接続して、リモート・デバイスがまだ使用可能であるかどうかを判定する。判断８３０で、デバイスが使用可能であるかどうかを判定する。デバイスがまだ使用可能でない場合には、判断８３０は「ｎｏ」分岐８３４に分岐し、処理は、判断８３８で継続される。
【００５９】
デバイスがまだ使用可能である場合には、判断８３０は「ｙｅｓ」分岐８３２に分岐し、ステップ８３６で、リモート・デバイス・ドライバ・レジストリ・サーバに連絡して、デバイスをインストールするのに必要な情報を受け取る。図３１の流れ図に、ステップ８３６で行われる処理の詳細を示す。
【００６０】
判断８３８で、検査を必要とするドライバがまだ存在するかどうかを判定する。検査を必要とするドライバがもう存在しない場合には、判断８３８は「ｎｏ」分岐８４０に分岐し、処理は８９９で終了する。検査を必要とするドライバがまだ存在する場合には、判断８３８は「ｙｅｓ」分岐８４２に分岐し、ステップ８４４で、新しいデバイス・ドライバを選択し、処理はステップ８２８にループ・バックして、選択されたドライバを検査する。
【００６１】
図９は、コンピュータ・システム上で実行されるアプリケーションを初期化する処理を示す流れ図である。これは、コンピュータ・システムで実行されていた、リムーバブル・オペレーティング・システム・モジュールがコンピュータ・システムから最後に取り外された時にハイバネートまたは延期されたアプリケーションである。処理は、９００で開始され、ステップ９１０で、オペレーティング・システムによって、リムーバブル・オペレーティング・システム・モジュールからアプリケーション状態データ・ファイルがロードされる。アプリケーション状態データ・ファイルには、ユーザが操作していたファイル、ファイル内の、編集が行われていた位置などの情報が含まれる。
【００６２】
判断９１２で、再開を必要とするアプリケーションがまだ存在するかどうかを判定する。再開を必要とするアプリケーションがない場合には、判断９１２は「ｎｏ」分岐９１６に分岐し、処理は９９９で終了する。再開を必要とするアプリケーションが存在する場合には、判断９１２は「ｙｅｓ」分岐９１４に分岐し、ステップ９１８で、最初のそのようなアプリケーションを選択する。
【００６３】
判断９２０で、選択されたアプリケーションが現在のコンピュータ・システムで使用可能であるかどうかに関する判定を行う。リムーバブル・オペレーティング・システム・モジュールのユーザは、現在のコンピュータ・システムで使用可能でないかインストールされていないアプリケーションを、前のコンピュータ・システムで実行していた場合がある。アプリケーションが、現在のコンピュータ・システムで使用可能でない場合に、判断９２０は「ｎｏ」分岐９２４に分岐し、アプリケーションの状態情報を、アプリケーション状態データ・ファイルに保存する。この情報は、将来のコンピュータ・システムで対応するアプリケーションの可能な回復を可能にするために保存される。その後、処理は判断９２８で継続される。
【００６４】
アプリケーションが、現在のコンピュータ・システムで使用可能である場合には、判断９２０は「ｙｅｓ」分岐９２２に分岐し、アプリケーションの立ち上げが開始される。ステップ９３４で、アプリケーションの立ち上げに適切な量のメモリが、オペレーティング・システムによって予約され、ステップ９３６で、対応する実行可能ファイルが実行されて、アプリケーションが立ち上げられる。ステップ９３８で、オペレーティング・システムによって、アプリケーション状態データ・ファイルからのデータを使用して、アプリケーションが、モジュールのユーザによって前に残された状態に回復される。たとえば、アプリケーションがＭｉｃｒｏｓｏｆｔ  Ｗｏｒｄである場合に、ユーザが最後に編集していたファイルが立ち上げられ、編集位置に最後の編集位置がセットされ、ツールバー構成に最後のツールバー構成がセットされるなどである。その後、処理は判断９２８で継続される。
【００６５】
判断９２８では、再開を必要とするアプリケーションがまだあるかどうかに関する判定を行う。再開を必要とするアプリケーションがもうない場合には、判断９２８は「ｎｏ」分岐９３２に分岐し、処理は９９９で終了する。再開を必要とするアプリケーションがまだある場合には、判断９２８は「ｙｅｓ」分岐９３０に分岐し、ステップ９４０で、次のアプリケーションを選択し、処理は判断９２０にループ・バックして、再開処理が継続される。
【００６６】
図１０は、オペレーティング・システム・ランニング・イメージがロードされた後にオペレーティング・システムを管理する処理を示す流れ図である。処理は、１０００で開始され、ステップ１０１０で、オペレーティング・システムは、ユーザのまたはアプリケーションのタスク要求を待つ。要求されるタスクは、たとえば、印刷、テキスト入力、グラフィックス表示、計算の実行などとすることができる。判断１０１５で、タスクが要求されたかどうかに関する判定を行う。タスクが要求されていない場合には、判断１０１５は「ｎｏ」分岐１０２５に分岐し、処理はステップ１０１０にループ・バックして、オペレーティング・システムが、タスク要求を待ち続ける。
【００６７】
タスクが要求されている場合には、判断１０１５は「ｙｅｓ」分岐１０２０に分岐し、判断１０３０で、タスクの完了に必要な実行可能ファイルおよび他のファイルが既にＲＡＭにロードされているかどうかに関する判定を行う。オペレーティング・システムのいくつかの部分が、ＲＡＭにロードされておらず、リムーバブル・オペレーティング・システム・モジュールの不揮発性ストレージに残されている場合がある。すべての必要なファイルが既にロードされている場合に、判断１０３０は「ｙｅｓ」分岐１０３５に分岐し、処理はステップ１０５０で継続される。
【００６８】
要求されたタスクを実行するのに必要なファイルの一部がロードされていない場合には、判断１０３０は「ｎｏ」分岐１０４０に分岐し、ステップ１０４５で、残りの必要なファイルを、リムーバブル・オペレーティング・システム・モジュールの不揮発性ストレージからロードする。ステップ１０５０で、要求されたタスクが、オペレーティング・システムによって実行される。その後、処理はステップ１０１０にループ・バックし、オペレーティング・システムは、別のタスク要求を待ち続ける。
【００６９】
図１１は、モジュールの取外しの前の、リムーバブル・オペレーティング・システム・モジュールにオペレーティング・システム状態を保存する処理を示す流れ図である。処理は、１１００で開始され、リムーバブル・オペレーティング・システム・モジュール取外しアプリケーションが、オペレーティング・システムによって実行される。次に、判断１１１５で、まだ実行されているアプリケーションまたはプロセスがあるかどうかに関する判定を行う。実行されたままのアプリケーションまたはプロセスがない場合には、判断１１１５は「ｎｏ」分岐１１２５に分岐し、処理はステップ１１５０で継続される。
【００７０】
まだ実行中のアプリケーションまたはプロセスがある場合には、判断１１１５は「ｙｅｓ」分岐１１２０に分岐し、ステップ１１３０で、実行中の次のアプリケーションまたはプロセスを選択する。ステップ１１３５で、オペレーティング・システムによって、プロセスまたはアプリケーションの実行が停止され、ステップ１１４０で、アプリケーションのまたはプロセスの状態情報が、リムーバブル・オペレーティング・システム・モジュールのアプリケーションの状態情報データ・ファイルに記憶される。ファイルが存在しない場合には、新しいファイルを作成する。たとえば、アプリケーションがＷｏｒｄである場合に、最後の編集位置、ツールバー構成などが記憶される。ステップ１１４５で、アプリケーションによって現在アクセスされているすべてのファイルの名前が、リムーバブル・オペレーティング・システム・モジュールに記憶される。モジュールが次にコンピュータ・システムに挿入される時に、適切なファイルが、適切な編集ポイントで適切なアプリケーションを用いてオープンされる。
【００７１】
ステップ１１５０で、オペレーティング・システムの現在の状況を、モジュールに記憶する。この情報は、モジュールが次にコンピュータ・システムに挿入される時にオペレーティング・システムを再始動するのに使用される。オペレーティング・システム状況には、デスクトップ・レイアウト、ショートカット・リスト、カラー・スキーム、および他のユーザ・プリファレンスが含まれる。
【００７２】
ステップ１１５５で、最後のオペレーティング・システム実行ポイントが、判定され、「再開」ポイントとしてリムーバブル・オペレーティング・システム・モジュールに記憶される。「再開」ポイントは、オペレーティング・システム・ランニング・イメージがリムーバブル・オペレーティング・システム・モジュールから再びロードされ、ユーザが、オペレーティング・システムの再始動ではなく、最後の実行ポイントからオペレーティング・システムを再開することを選択する時に、使用することができる。
【００７３】
ステップ１１６０で、リモート・デバイス・ドライバの情報が、モジュールのリモート・デバイス・ドライバ構成ファイルに記憶される。この情報は、リムーバブル・オペレーティング・システム・モジュールがコンピュータ・システムに次に挿入される時に、使用可能なリモート・デバイスに再接続するために使用することができる。ステップ１１６５で、他の非コンピュータ・システム固有データ（すなわち、モジュールだけに関連するデータ）も、リムーバブル・オペレーティング・システム・モジュールに記憶される。
【００７４】
図１２は、オペレーティング・システム／アプリケーション・モジュールがコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。コンピュータ・システム１２１０に、オペレーティング・システムの実行の前に基本的な入出力機能を実行するＢＩＯＳ１２２６、コンピュータ・システム１２１０を動作させ、制御する命令を処理するＣＰＵ１２２８、インストールされたアプリケーション、ユーザ設定などが記憶される不揮発性ストレージ１２３４、コンピュータ・システム１２１０が動作している間の一時的ストレージのためのＲＡＭ１２１２が含まれる。
【００７５】
さらに、コンピュータ・システム１２１０には、リムーバブル・オペレーティング・システム／アプリケーション・モジュール・インターフェース１２３２が含まれ、リムーバブル・オペレーティング・システム／アプリケーション・モジュール・インターフェース１２３２は、リムーバブル・オペレーティング・システム／アプリケーション・モジュール１２２２を受けることができる。リムーバブル・オペレーティング・システム／アプリケーション・モジュール１２２２には、不揮発性ストレージ内のオペレーティング・システム・ランニング・イメージ１２２４ならびに１つまたは複数のアプリケーションのランニング・イメージが含まれる。
【００７６】
リムーバブル・オペレーティング・システム／アプリケーション・モジュール・インターフェース１２３２へのリムーバブル・オペレーティング・システム／アプリケーション・モジュール１２２２の挿入時に、ＢＩＯＳ１２２６によって、リムーバブル・オペレーティング・システム／アプリケーション・モジュール１２２２の不揮発性ストレージからＲＡＭ１２１２（オペレーティング・システムＲＡＭ１２１４およびアプリケーションＲＡＭ１２２０）へ、オペレーティング・システム・ランニング・イメージおよびアプリケーション・ランニング・イメージ１２２４がロードされ、オペレーティング・システムの実行が開始される。その後、実行中のオペレーティング・システムによって、ロードされたアプリケーションの実行が再開される。
【００７７】
その後、オペレーティング・システムによって、不揮発性ストレージ１２３４から、コンピュータ・システム１２１０に接続された外部デバイスに必要なデバイス・ドライバ（デバイス・ドライバＲＡＭ１２１６）、入出力構成（入出力構成ＲＡＭ１２１８）、および要求されたアプリケーション（アプリケーションＲＡＭ１２２０）がロードされる。アプリケーションは、モジュール１２２２上の不揮発性ストレージ１２２４のほかに、不揮発性ストレージ１２３０にも常駐することができる。
【００７８】
コンピュータ・システム１２１０からのリムーバブル・オペレーティング・システム／アプリケーション・モジュール１２２２の取外しの際に、ロード処理が逆転される。オペレーティング・システムおよびモジュール・アプリケーションの現在の状態が、リムーバブル・オペレーティング・システム／アプリケーション・モジュール１２２２で更新され、ローカル・アプリケーション情報、入出力構成、およびデバイス・ドライバが、不揮発性ストレージ１２２４で更新される。取外しの際に、リムーバブル・オペレーティング・システム／アプリケーション・モジュールを、別の互換コンピュータ・システムに挿入することができ、その結果、モジュールのオペレーティング・システム・ランニング・イメージによって、他のコンピュータ・システムを制御し、動作させることができ、モジュールのアプリケーションを、他のコンピュータ・システムで実行することができる。
【００７９】
図１３は、リムーバブル・オペレーティング・システム／アプリケーション・モジュールのコンピュータ・システムへの挿入および取外しの処理を示す流れ図である。処理は、１３００で開始され、ステップ１３１０で、ユーザが、リムーバブル・オペレーティング・システム／アプリケーション・モジュールを、そのモジュールを受けるように適合されたコンピュータ・システムに挿入する。リムーバブル・オペレーティング・システム／アプリケーション・モジュールには、オペレーティング・システムのランニング・イメージならびに１つまたは複数のアプリケーションのランニング・イメージが含まれ、これらのイメージは、モジュールの不揮発性ストレージに記憶される。リムーバブル・オペレーティング・システム／アプリケーション・モジュールのアプリケーションは、異なるコンピュータ・システムにモジュールを用いて持ってゆくことができ、アプリケーション毎モジュール毎に１ライセンスだけを必要とする。さらに、モジュールによって、異なるコンピュータ・システムで同一アプリケーションの複数のコピーを保守するのではなく、アプリケーションの保守の中央ポイントがもたらされる。
【００８０】
ステップ１３１２で、コンピュータ・システムのＢＩＯＳによって、リムーバブル・オペレーティング・システム／アプリケーション・モジュールが、挿入時に検出され、モジュールの不揮発性ストレージからコンピュータ・システムのＲＡＭへのオペレーティング・システムのランニング・イメージのロードが開始される。オペレーティング・システム・ランニング・イメージのロードが完了した後に、ＢＩＯＳによって、オペレーティング・システムの実行が開始され、制御がオペレーティング・システムに渡される。図６の流れ図に、ステップ１３１２で行われる処理の詳細を示す。
【００８１】
ステップ１３１４で、オペレーティング・システムによって、このコンピュータに接続されたローカル・デバイスが発見される。オペレーティング・システムによって、このコンピュータ・システムからのリムーバブル・オペレーティング・システム・モジュールの取外しの前のデバイスを含むリストが、現在発見されているデバイスと比較され、それに応じてデバイスのリストが更新される。図７の流れ図に、ステップ１３１４で行われる処理の詳細を示す。
【００８２】
ステップ１３１６で、オペレーティング・システムによって、ユーザが異なるコンピュータ・システムを使用した時にコンピュータ・システムによってまたはユーザによってアクセス可能であったリモート・デバイスが発見される。図８の流れ図に、ステップ１３１６で行われる処理の詳細を示す。
【００８３】
ステップ１３１８で、オペレーティング・システムによって、コンピュータ・システムからのリムーバブル・オペレーティング・システム・モジュールの最後の取外しの前にハイバネートまたは他の形で延期されたローカル・アプリケーションが初期化される。ローカル・アプリケーションは、リムーバブル・オペレーティング・システム／アプリケーション・モジュールに常駐するモジュール・アプリケーションではなく、コンピュータ・システムに常駐するアプリケーションである。図１４の流れ図に、ステップ１３１８で行われる処理の詳細を示す。
【００８４】
ステップ１３２０で、オペレーティング・システムによって、リムーバブル・オペレーティング・システム／アプリケーション・モジュールに常駐し、現在のコンピュータ・システムで実行できるモジュール・アプリケーションがロードされ、再開される。図１５の流れ図に、ステップ１３２０で行われる処理の詳細を示す。
【００８５】
ステップ１３２２で、オペレーティング・システムによって、コンピュータ・システムが管理される。オペレーティング・システムによって、ユーザまたは実行中のアプリケーションによって要求されるタスクが実行される。図１０の流れ図に、ステップ１３２２で行われる処理の詳細を示す。
【００８６】
判断１３２４で、ユーザが、リムーバブル・オペレーティング・システム・モジュールの取外しを要求したかどうかに関する判定を行う。ユーザが、まだリムーバブル・オペレーティング・システム・モジュールの取外しを要求していない場合には、判断１３２４は「ｎｏ」分岐１３２８に分岐し、ステップ１３２２にループ・バックして、オペレーティング・システムが、要求されたタスクの実行を継続する。
【００８７】
ユーザが、リムーバブル・オペレーティング・システム・モジュールの取外しを要求した場合には、判断１３２４は「ｙｅｓ」分岐１３２６に分岐し、処理はステップ１３３０で継続され、オペレーティング・システムの状態が、リムーバブル・オペレーティング・システム・モジュールに記憶される。図１６の流れ図に、ステップ１３３０で行われる処理の詳細を示す。
【００８８】
ステップ１３３２では、モジュール・アプリケーションの状態を、リムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶する。アプリケーションの状態に対する変更に、アプリケーションのツールバーまたはメニューに対する変更、好ましいファイル位置に対する変更、編集されている現在のファイルおよび編集位置、ならびに他のユーザ固有の設定およびプリファレンスを含めることができる。図１７の流れ図に、ステップ１３３２で行われる処理の詳細を示す。
【００８９】
ステップ１３３４で、リムーバブル・オペレーティング・システム・モジュールの取外しの準備のすべてを実行した後に、ユーザに「モジュールを取り外しても安全です」と通知し、ステップ１３３６で、ユーザが、リムーバブル・オペレーティング・システム・モジュールを取り外す。処理は、１３９９で終了する。
【００９０】
図１４は、コンピュータ・システムで実行されるローカル・アプリケーションを初期化する処理を示す流れ図である。処理は、１４００で開始され、ステップ１４１０で、オペレーティング・システムによって、リムーバブル・オペレーティング・システム／アプリケーション・モジュールからアプリケーション状態データ・ファイルがロードされる。アプリケーション状態データ・ファイルには、ユーザが操作していたファイル、編集が行われていたファイル内の位置などの情報が含まれる。
【００９１】
判断１４１２で、再開を必要とするローカル・アプリケーションがまだ存在するかどうかに関する判定を行う。再開を必要とするローカル・アプリケーションがない場合には、判断１４１２は「ｎｏ」分岐１４１６に分岐し、処理は１４９９で終了する。再開を必要とするローカル・アプリケーションが存在する場合には、判断１４１２は「ｙｅｓ」分岐１４１４に分岐し、ステップ１４１８で、最初のそのようなローカル・アプリケーションを選択する。
【００９２】
判断１４２０で、選択されたローカル・アプリケーションが、現在のコンピュータ・システムで使用可能であるかどうかに関する判定を行う。リムーバブル・オペレーティング・システム・モジュールのユーザは、前のコンピュータ・システムで、現在のコンピュータ・システムで使用不能なまたはインストールされていないローカル・アプリケーションを実行していた場合がある。ローカル・アプリケーションが、現在のコンピュータ・システムで使用可能でない場合には、判断１４２０は「ｎｏ」分岐１４２４に分岐し、ローカル・アプリケーションの状態情報を、ローカル・アプリケーション状態データ・ファイルに保存する。この情報は、ローカル・アプリケーションが使用可能な将来のコンピュータ・システムでの対応するローカル・アプリケーションの回復を可能にするために保存される。処理は、判断１４１２にループ・バックする。
【００９３】
ローカル・アプリケーションが、現在のコンピュータ・システムで使用可能である場合には、判断１４２０は「ｙｅｓ」分岐１４２２に分岐し、ローカル・アプリケーションの立ち上げが開始される。ステップ１４２６で、ローカル・アプリケーションを立ち上げるのに適切な量のメモリが、オペレーティング・システムによって予約され、ステップ１４２８で、対応する実行可能ファイルを実行して、ローカル・アプリケーションを立ち上げる。ステップ１４３０で、オペレーティング・システムによって、ローカル・アプリケーション状態データ・ファイルからのデータを使用して、ローカル・アプリケーションを、モジュールのユーザによって前に残された状態に回復する。たとえば、ローカル・アプリケーションがＷｏｒｄである場合に、ユーザが最後に編集していたファイルが立ち上げられ、編集位置に最後の編集位置がセットされ、ツールバー構成に最後の構成がセットされるなどが行われる。処理は、その後、判断１４１２にループ・バックする。
【００９４】
図１５は、コンピュータ・システムで実行されるモジュール（モジュールに記憶された）アプリケーションを初期化する処理を示す流れ図である。処理は、１５００で開始され、ステップ１５１０で、オペレーティング・システムによって、リムーバブル・オペレーティング・システム／アプリケーション・モジュールからアプリケーション状態データ・ファイルがロードされる。アプリケーション状態データ・ファイルには、ユーザが操作していたファイル、編集が行われていたファイル内の位置などが含まれる。さらに、アプリケーションのランニング・イメージを、アプリケーションのＲＡＭ空間のイメージを記憶することによって記憶することができる。
【００９５】
判断１５１２で、再開を必要とするモジュール・アプリケーションがまだ存在するかどうかに関する判定を行う。再開を必要とするモジュール・アプリケーションがない場合には、判断１５１２は「ｎｏ」分岐１５１６に分岐し、処理は１５９９で終了する。再開を必要とするモジュール・アプリケーションが存在する場合には、判断１５１２は「ｙｅｓ」分岐１５１４に分岐し、ステップ１５１８で、最初のそのようなモジュール・アプリケーションを選択する。
【００９６】
判断１５２０で、選択されたモジュール・アプリケーションを現在のコンピュータ・システムで実行できる（そのシステムとの互換性がある）かどうかに関する判定を行う。モジュール・アプリケーションが、現在のコンピュータ・システムで使用可能でない場合には、判断１５２０は「ｎｏ」分岐１５２４に分岐し、モジュール・アプリケーションの状態情報を、モジュール・アプリケーション状態データ・ファイルに保存する。この情報は、モジュール・アプリケーションが互換性を有する将来のコンピュータ・システムでの対応するモジュール・アプリケーションの回復を可能にするために保存される。処理は、判断１５１２にループ・バックする。
【００９７】
モジュール・アプリケーションが、現在のコンピュータ・システムとの互換性を有する場合に、判断１５２０は「ｙｅｓ」分岐１５２２に分岐し、モジュール・アプリケーションの立ち上げが開始される。ステップ１５２６で、モジュール・アプリケーションを立ち上げるのに適切な量のメモリが、オペレーティング・システムによって予約され、ステップ１５２８で、アプリケーションのランニング・イメージをモジュールからロードする。アプリケーションの実行の最後のポイントなどのアプリケーションの再開に必要な他の状態情報も、モジュールからロードされる。ステップ１５３０で、オペレーティング・システムによって、回復された再開ポイントで実行が開始される。その後、処理は判断１５１２にループ・バックする。
【００９８】
図１６は、モジュールの取外しの前にモジュール・アプリケーションをリムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶する処理を示す流れ図である。処理は１６００で開始され、リムーバブル・オペレーティング・システム／アプリケーション・モジュール取外しアプリケーションが、オペレーティング・システムによって実行される。判断１６１５で、まだ実行中のローカル・アプリケーションまたはプロセスがあるかどうかに関する判定を行う。実行中のままのローカル・アプリケーションまたはプロセスがない場合には、判断１６１５は「ｎｏ」分岐１６２５に分岐し、処理はステップ１６５０で継続される。
【００９９】
まだ実行中のローカル・アプリケーションまたはプロセスがある場合に、判断１６１５は「ｙｅｓ」分岐１６２０に分岐し、ステップ１６３０で、実行中の次のローカル・アプリケーションまたはプロセスを選択する。ステップ１６３５で、オペレーティング・システムによって、プロセスまたはローカル・アプリケーションの実行が停止され、ステップ１６４０で、ローカル・アプリケーションのまたはプロセスの状態情報が、リムーバブル・オペレーティング・システム／アプリケーション・モジュールのローカル・アプリケーションの状態情報データ・ファイルに記憶される。たとえば、ローカル・アプリケーションがＷｏｒｄである場合に、最後の編集位置、ツールバー構成などが記憶される。ファイルが存在しない場合には、新しいファイルが作成される。ステップ１６４５で、ローカル・アプリケーションによって現在アクセスされているすべてのファイルの名前が、リムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶される。モジュールがコンピュータ・システムに次に挿入される時に、適切なファイルが、適切な編集ポイントで適切なローカル・アプリケーションを用いてオープンされる。
【０１００】
ステップ１６５０で、オペレーティング・システムの現在の状況が、モジュールに記憶される。この情報は、モジュールがコンピュータ・システムに次に挿入される時にオペレーティング・システムを再始動するのに使用される。オペレーティング・システム状況には、デスクトップ配置、ショートカット・リスト、カラー・スキーム、および他のユーザ・プリファレンスなどの項目が含まれる。
【０１０１】
ステップ１６５５で、最後のオペレーティング・システム実行ポイントを判定し、「再開」ポイントとしてリムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶する。「再開」ポイントは、オペレーティング・システム・ランニング・イメージがリムーバブル・オペレーティング・システム／アプリケーション・モジュールからロードされ、ユーザが、オペレーティング・システムの再始動ではなく最後の実行ポイントからオペレーティング・システムを再開することを選択する時に、使用することができる。
【０１０２】
ステップ１６６０で、リモート・デバイス・ドライバに関する情報を、モジュールのリモート・デバイス・ドライバ構成ファイルに記憶する。この情報は、リムーバブル・オペレーティング・システム／アプリケーション・モジュールが次にコンピュータ・システムに挿入される時に、使用可能なリモート・デバイスに再接続するために使用することができる。ステップ１６６５で、他の非コンピュータ・システム固有データ（すなわち、モジュールだけに関連するデータ）も、リムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶される。
【０１０３】
図１７は、モジュールの取外しの前にアプリケーション状態をリムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶する処理を示す流れ図である。処理は１７００で開始され、判断１７１０で、リムーバブル・オペレーティング・システム／アプリケーション・モジュールへの状態の記憶を必要とする実行中のモジュール・アプリケーションがまだあるかどうかに関する判定を行う。記憶を必要とするモジュール・アプリケーションがもうない場合には、判断１７１０は「ｎｏ」分岐１７２０に分岐し、その後、１７９９で終了する。
【０１０４】
記憶を必要とするモジュール・アプリケーションがまだある場合には、判断１７１０は「ｙｅｓ」分岐１７１５に分岐し、ステップ１７２３で、次のモジュール・アプリケーションを選択する。ステップ１７２５で、オペレーティング・システムによって、そのモジュール・アプリケーションの実行が停止され、ステップ１７３０で、選択されたモジュール・アプリケーションの現在の状態が、リムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶される。アプリケーションの状態に、現在編集されつつあるファイル、編集位置、ツールバーおよびメニューのレイアウト、および他のユーザのプリファレンスを含めることができる。
【０１０５】
ステップ１７３５で、アプリケーションの最後の実行ポイントを判定する。ステップ１７４０で、最後の実行を「再開」ポイントとしてモジュールに記憶する。この実行ポイントは、実行が停止されたアプリケーションの実行を後に再開するのに使用することができる。
【０１０６】
処理は、判断１７１０にループ・バックして、アプリケーションの状態の保存を必要とするアプリケーションがまだ存在するかどうかが判定される。
【０１０７】
図１８は、ＣＰＵモジュールがコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。コンピュータ・システム１８１０に、オペレーティング・システムの実行の前に基本的な入出力機能を実行するＢＩＯＳ１８５０、インストールされたアプリケーション、インストールされたオペレーティング・システム、ユーザ設定などが記憶される不揮発性ストレージ１８５５、コンピュータ・システム１８１０が動作している間の一時的ストレージのためのＲＡＭ１８１５が含まれる。
【０１０８】
さらに、コンピュータ・システム１８１０には、モジュール・インターフェース１８６０が含まれ、モジュール・インターフェース１８６０は、ＣＰＵモジュール１８４０を受けるように適合される。ＣＰＵモジュール１８４０には、ＣＰＵ１８４５が含まれ、ＣＰＵ１８４５は、コンピュータ・システム１８１０へのＣＰＵモジュール１８４０の接続の後に、オペレーティング・システム命令の実行を開始することができる。
【０１０９】
モジュール・インターフェース１８６０へのリムーバブルＣＰＵモジュール１８４０の挿入時に、ＢＩＯＳ１８５０によって、モジュールが検出され、不揮発性ストレージ１８５５からＲＡＭ１８１５（オペレーティング・システムＲＡＭ１８２０）へのオペレーティング・システム・ランニング・イメージのロードが開始される。オペレーティング・システム・ランニング・イメージをロードした後に、ＢＩＯＳ１８５０によって、ＣＰＵモジュール１８４０のＣＰＵ１８４５を使用するオペレーティング・システムの実行が開始される。
【０１１０】
その後、オペレーティング・システムによって、コンピュータ・システム１８１０に接続された外部デバイスに必要なデバイス・ドライバ（デバイス・ドライバＲＡＭ１８２５）、入出力構成（入出力構成ＲＡＭ１８３０）、および要求されたアプリケーション（アプリケーションＲＡＭ１８３５）が、不揮発性ストレージ１８５５からロードされる。
【０１１１】
コンピュータ・システム１８１０からのＣＰＵモジュール１８４０の取外しの際に、ロード処理が逆転される。オペレーティング・システムの状態が、不揮発性ストレージ１８５５に記憶され、アプリケーション情報、入出力構成、およびデバイス・ドライバが、不揮発性ストレージ１８５５で更新される。取外しの際に、リムーバブルＣＰＵモジュールを、別の互換性のあるコンピュータ・システムに挿入でき、そのモジュールのＣＰＵによって、別のコンピュータ・システムを動作させることができる。
【０１１２】
図１９は、コンピュータ・システムへのリムーバブルＣＰＵモジュールの挿入および取外しの処理を示す流れ図である。処理は１９００で開始され、１９１０で、ユーザが、リムーバブルＣＰＵモジュールを、リムーバブルＣＰＵモジュールを受けるように適合されたコンピュータ・システムに挿入する。
【０１１３】
ステップ１９１５で、ＢＩＯＳによって、リムーバブルＣＰＵモジュールが検出され、ＣＰＵとコンピュータ・システムの間の互換性が判定される。図２０の流れ図に、ステップ１９１５で行われる処理の詳細を示す。
【０１１４】
判断１９２０で、ＣＰＵがコンピュータ・システムと互換性があると判定されたかどうかに関する判定を行う。ＣＰＵがコンピュータ・システムと非互換である場合には、判断１９２０は「ｎｏ」分岐１９３０に分岐し、ステップ１９４５で、ユーザに非互換性について通知し、ステップ１９９９で処理が終了する。
【０１１５】
ＣＰＵがコンピュータ・システムと互換である場合には、判断１９２０は「ｙｅｓ」分岐１９２５に分岐し、ステップ１９３５で、オペレーティング・システム・ランニング・イメージが、ロードされ、リムーバブルＣＰＵモジュール上のＣＰＵを使用して実行が開始される。図２１の流れ図に、ステップ１９３５で行われる処理の詳細を示す。
【０１１６】
ステップ１９５０で、オペレーティング・システムによって、コンピュータ・システムが管理される。オペレーティング・システムは、ユーザまたは実行中のアプリケーションによって要求されるタスクを実行する。図１０の流れ図に、ステップ１９５０で行われる処理の詳細を示す。
【０１１７】
判断１９５５で、ユーザがリムーバブル・オペレーティング・システム・モジュールの取外しを要求したかどうかに関する判定を行う。ユーザが、まだリムーバブル・オペレーティング・システム・モジュールの取外しを要求していない場合には、判断１９５５は「ｎｏ」分岐１９６５に分岐し、ステップ１９５０にループ・バックして、オペレーティング・システムによって、要求されたタスクの実行が継続される。
【０１１８】
ユーザがリムーバブル・オペレーティング・システム・モジュールの取外しを要求した場合には、判断１９５５は「ｙｅｓ」分岐１９６０に分岐し、処理はステップ１９７０で継続され、オペレーティング・システムの状態が、リムーバブル・オペレーティング・システム・モジュールに記憶される。図１１の流れ図に、ステップ１９７０で行われる処理の詳細を示す。
【０１１９】
ステップ１９７５で、リムーバブル・オペレーティング・システム・モジュールの取外しのすべての準備を実行した後に、ユーザに「モジュールを取り外しても安全です」と通知し、ステップ１９８０で、ユーザが、リムーバブル・オペレーティング・システム・モジュールを取り外す。処理は、１９９９で終了する。
【０１２０】
図２０は、リムーバブルＣＰＵモジュールを検出し、モジュール上のＣＰＵとコンピュータ・システムの互換性を判定する、ＢＩＯＳの処理を示す流れ図である。処理は、２０００で開始され、ステップ２０１０で、ＢＩＯＳによって、挿入されたＣＰＵモジュールが検出される。ＣＰＵモジュールは、たとえば、プラグアンドプレイ・タイプのプロトコルを使用して、検出することができる。
【０１２１】
リムーバブルＣＰＵモジュールが、前にこのコンピュータ・システムに挿入されたかどうかに関する判定を行う。リムーバブルＣＰＵモジュールが、前にこのコンピュータ・システムに挿入されたことがない場合には、判断２０１５は「ｎｏ」分岐２０２０に分岐し、処理はステップ２０３５で継続される。リムーバブルＣＰＵモジュールが、前にこのコンピュータ・システムに挿入されたことがある場合には、判断２０１５は「ｙｅｓ」分岐２０２５に分岐し、判断２０２６で、ＣＰＵ情報を含むファイルがコンピュータ・システムの不揮発性ストレージに存在するかどうかに関する判定が行われる。ＣＰＵ情報を含むファイルがコンピュータ・システムに存在する場合に、判断２０２６は「ｙｅｓ」分岐２０２８に分岐し、ステップ２０３０で、ＣＰＵ情報を含むファイルをロードする。ＣＰＵ情報は、ＣＰＵのアクセス・アドレス、ＣＰＵのアドレッシング・モード、およびＣＰＵのデータ転送方法などである。
【０１２２】
ＣＰＵ情報を含むファイルがコンピュータ・システムに存在しない場合には、判断２０２６は「ｎｏ」分岐２０２９に分岐し、ステップ２０３５で、ＣＰＵのアクセス・アドレス、ＣＰＵのアドレッシング・モード、ＣＰＵのデータ転送方法などを供給するようにＣＰＵに問い合わせる。ステップ２０３０’で、ＣＰＵのアクセス・アドレス、ＣＰＵのアドレッシング・モード、ＣＰＵのデータ転送方法などの供給されたデータを、リムーバブルＣＰＵモジュールのこのコンピュータ・システムへの将来の挿入中に使用するために、コンピュータ・システムの不揮発性ストレージのファイルに記憶する。その後、処理は２０９９で終了する。
【０１２３】
図２１は、オペレーティング・システム・ランニング・イメージをロードし、リムーバブルＣＰＵモジュールのＣＰＵを使用するオペレーティング・システムの実行を開始する、ＢＩＯＳの処理を示す流れ図である。処理は、２１００で開始される。ハイバネートされたオペレーティング・システム・ランニング・イメージのイメージが、ローカル不揮発性ストレージで使用可能であるかどうかに関する判定を行う。イメージが使用可能である場合に、判断２１１０は「ｙｅｓ」分岐２１２０に分岐し、ステップ２１２５で、ＢＩＯＳによって、オペレーティング・システム・ランニング・イメージがコンピュータ・システムの不揮発性ストレージからロードされる。オペレーティング・システムのランニング・イメージが使用可能でない場合には、判断２１１０は「ｎｏ」分岐２１１５に分岐し、処理はステップ２１６５で継続される。ステップ２１３０で、ユーザに、ロードしたオペレーティング・システム・ランニング・イメージを再開するか再始動するかに関するプロンプトを出し、ステップ２１３５で、ユーザの入力を受け取る。
【０１２４】
判断２１４０で、ユーザがオペレーティング・システムの再始動を選択したかどうかに関する判定を行う。ユーザが、オペレーティング・システムの再始動を選択した場合には、判断２１４０は「ｙｅｓ」分岐２１４５に分岐し、処理は、やはりステップ２１６５で継続される。ユーザが、オペレーティング・システムの再始動を選択せずに、最後の実行ポイントからオペレーティング・システムを再開することを選択した場合には、判断２１４０は「ｎｏ」分岐２１５０に分岐し、ステップ２１５５で、オペレーティング・システムの再開エントリ・ポイントが、コンピュータ・システムの不揮発性ストレージから入手される。ステップ２１６０で、オペレーティング・システムが、再開エントリ・ポイントから実行を開始する。
【０１２５】
ステップ２１６５では、再始動エントリ・ポイントを、コンピュータ・システムの不揮発性ストレージから入手する。ステップ２１７０で、オペレーティング・システムが、再始動エントリ・ポイントから実行を開始する。
【０１２６】
ステップ２１７５で、オペレーティング・システムは、ＣＰＵアドレス、ＣＰＵアドレッシング・モード、データ転送方法などの、ＣＰＵの前に判定された属性について通知される。その後、処理は２１９９で終了する。
【０１２７】
図２２は、ＣＰＵモジュール（第２ＣＰＵを含む）がコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。コンピュータ・システム２２１０に、オペレーティング・システムの実行の前に基本的な入出力機能を実行するＢＩＯＳ２２４５、コンピュータ・システムを動作させる命令を実行するＣＰＵ２２５０、インストールされたアプリケーション、インストールされたオペレーティング・システム、ユーザ設定などが記憶される不揮発性ストレージ２２５５、コンピュータ・システム２２１０が動作している間の一時的ストレージのためのＲＡＭ２２１５が含まれる。ＲＡＭ２２１５には、オペレーティング・システムＲＡＭ２２２０、デバイス・ドライバＲＡＭ２２２５、入出力構成ＲＡＭ２２３０、およびアプリケーションＲＡＭ２２３５が含まれる。
【０１２８】
さらに、コンピュータ・システム２２１０には、モジュール・インターフェース２２４０が含まれ、モジュール・インターフェース２２４０は、ＣＰＵモジュール２２６０を受けるように適合される。ＣＰＵモジュール２２６０には、ＣＰＵ２２６５が含まれ、ＣＰＵ２２６５は、ＣＰＵモジュール２２６０がコンピュータ・システム２２１０に接続された後に、オンボードのＣＰＵ２２５０と並列にオペレーティング・システム命令の実行を開始することができる。
【０１２９】
モジュール・インターフェース２２４０へのリムーバブルＣＰＵモジュール２２６０の挿入時に、ＢＩＯＳ２２４５によって、モジュールが検出され、追加ＣＰＵの存在についてオペレーティング・システムが通知される。当初は、オペレーティング・システムによって、実行に関する命令がオンボードＣＰＵ２２５０だけに向けられる。ＣＰＵモジュール２２６０の挿入後に、オペレーティング・システムによって、一方のＣＰＵがスレーブＣＰＵとして、他方のＣＰＵがマスタＣＰＵとして指定される。次に、オペレーティング・システムによって、両方のＣＰＵに実行に関する命令が送られ始める。図からわかるように、ＣＰＵ２２５０は、マスタＣＰＵとして指定されており、モジュール上のＣＰＵ２２６５は、スレーブＣＰＵとして指定されている。
【０１３０】
図２３は、組込みＣＰＵを含むコンピュータ・システムへのリムーバブルＣＰＵモジュールの挿入および取外しの処理を示す流れ図である。処理は２３００で開始され、ステップ２３１０で、ユーザが、既存ＣＰＵを有するコンピュータ・システムにリムーバブルＣＰＵモジュールを挿入する。
【０１３１】
ステップ２３１５で、ＢＩＯＳによって、リムーバブルＣＰＵモジュールが検出され、ＣＰＵとコンピュータ・システムの間の互換性が判定される。図２０の流れ図に、ステップ２３１５で行われる処理の詳細を示す。
【０１３２】
ＣＰＵがコンピュータ・システムと互換であると判定されたかどうかに関する判定を行う。このＣＰＵが、コンピュータ・システムと互換でないと判定された場合には、判断２３２０は「ｎｏ」分岐２３３０に分岐し、ステップ２３４５で、ユーザに、このＣＰＵがこのコンピュータ・システムと非互換であることを通知する。処理は２３９９で終了する。
【０１３３】
ＣＰＵがコンピュータ・システムと互換であると判定された場合には、判断２３２０は「ｙｅｓ」分岐２３２５に分岐し、ステップ２３３５で、ＢＩＯＳによって、第２ＣＰＵの存在およびそのＣＰＵの属性についてオペレーティング・システムが通知される。
【０１３４】
ステップ２３４０で、オペレーティング・システムが、ＣＰＵにアクセスし、オペレーティング・システム負荷の一部を副ＣＰＵに分配する。図２４の流れ図に、ステップ２３４０で行われる処理の詳細を示す。その後、処理は２３９９で終了する。
【０１３５】
図２４は、第２ＣＰＵにアクセスし、副ＣＰＵに負荷の一部を分配する、オペレーティング・システムの処理を示す流れ図である。処理は２４００で開始され、ステップ２４１０で、オペレーティング・システムによって、ＣＰＵのアクセス・アドレス、ＣＰＵのアドレッシング・モード、ＣＰＵのデータ転送方法などのＣＰＵの属性がＢＩＯＳから受け取られる。次に、判断２４１５で、現在のＣＰＵ構成に対応する複数ＣＰＵ構成ファイルがコンピュータ・システムに存在するかどうかに関する判定を行う。現在のＣＰＵ構成に対応する複数ＣＰＵ構成ファイルが存在しない場合には、判断２４１５は「ｎｏ」分岐２４２０に進み、処理はステップ２４５０で継続される。現在のＣＰＵ構成に対応する複数ＣＰＵ構成ファイルが存在する場合には、判断２４１５は「ｙｅｓ」分岐２４２５に分岐し、ステップ２４３０で、オペレーティング・システムによって、複数ＣＰＵの構成ファイルに従って、ＣＰＵの命令の一部がローカルＣＰＵに、ＣＰＵの命令の一部がモジュールＣＰＵに分配される。
【０１３６】
判断２４３５で、モジュールＣＰＵがまだ存在するかどうかを判定する。モジュールＣＰＵがもはや存在しない場合には、判断２４３５は「ｎｏ」分岐２４４０に分岐し、その後、処理は２４９９で終了する。モジュールＣＰＵがまだ存在する場合には、判断２４３５は「ｙｅｓ」分岐２４４５に分岐し、処理はステップ２４３０にループ・バックする。
【０１３７】
ステップ２４５０で、オペレーティング・システムによって、どのＣＰＵをマスタとして指定し、どのＣＰＵをスレーブとして指定するかが決定される。一実施形態では、マスタ／スレーブ指定が、ＣＰＵ機能に従って行われる。たとえば、最も強力なＣＰＵを、マスタＣＰＵとして指定することができる。
【０１３８】
ステップ２４５５で、オペレーティング・システムによって、マスタＣＰＵとスレーブＣＰＵの間のＣＰＵ命令の分配が決定される。やはり、分配決定は、ＣＰＵの機能に基づくものとすることができる。たとえば、２つのＣＰＵが存在し、２つのＣＰＵが、計算能力においてほぼ同等である場合には、オペレーティング・システム負荷を、２つのＣＰＵの間で均等に分配することができる。
【０１３９】
異なるＣＰＵの間の負荷の決定された分配を、コンピュータ・システムの複数ＣＰＵ構成ファイルに記憶する。この情報は、後に、このＣＰＵ構成が将来に存在する時に、オペレーティング・システムによって検索することができる。その後、処理は、ステップ２４３０で継続され、ＣＰＵ命令が、決定された分配に従って複数のＣＰＵに分配される。
【０１４０】
図２５は、リムーバブル・オペレーティング・システム／ＣＰＵモジュールがコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。コンピュータ・システム２５１０には、オペレーティング・システムの実行の前に基本的な入出力機能を実行するＢＩＯＳ２５５５、インストールされたアプリケーション、ユーザ設定などが記憶される不揮発性ストレージ２５６０、およびコンピュータ・システム２５１０が動作している間の一時的ストレージのためのＲＡＭ２５１５が含まれる。
【０１４１】
さらに、コンピュータ・システム２５１０には、リムーバブル・オペレーティング・システム／ＣＰＵモジュール・インターフェース２５６５が含まれ、このインターフェースは、リムーバブル・オペレーティング・システム／ＣＰＵモジュール２５４０を受けることができる。リムーバブル・オペレーティング・システム／ＣＰＵモジュール２５４０には、不揮発性ストレージ内のオペレーティング・システム・ランニング・イメージ（ＯＳランニング・イメージ）２５５０ならびにコンピュータ・システム２５１０を動作させるためにオペレーティング・システム命令を実行するＣＰＵ２５４５が含まれる。
【０１４２】
リムーバブル・オペレーティング・システム／ＣＰＵモジュール・インターフェース２５６５へのリムーバブル・オペレーティング・システム／ＣＰＵモジュール２５４０の挿入時に、ＢＩＯＳ２５５５によって、オペレーティング・システム・ランニング・イメージ（ＯＳランニング・イメージ）２５５０が、リムーバブル・オペレーティング・システム／ＣＰＵモジュール２５４０の不揮発性ストレージからＲＡＭ２５１５（オペレーティング・システムＲＡＭ２５２０）にロードされ、ＣＰＵ２５４５を使用するオペレーティング・システムの実行が開始される。
【０１４３】
その後、オペレーティング・システムによって、不揮発性ストレージ２５６０から、コンピュータ・システム２５１０に接続された外部デバイスに必要なデバイス・ドライバ（デバイス・ドライバＲＡＭ２５２５）、入出力構成（入出力構成ＲＡＭ２５３０）、および必要なアプリケーション（アプリケーションＲＡＭ２５３５）がロードされる。
【０１４４】
コンピュータ・システム２５１０からのリムーバブル・オペレーティング・システム／ＣＰＵモジュール２５４０の取外しの際に、ロード処理が逆転される。オペレーティング・システムの現在の状態が、リムーバブル・オペレーティング・システム／ＣＰＵモジュール２５４０上で更新され、アプリケーション情報、入出力構成、およびデバイス・ドライバが、不揮発性ストレージ２５６０上で更新される。取外しの際に、リムーバブル・オペレーティング・システム／ＣＰＵモジュールを、別の互換コンピュータ・システムに挿入でき、ＣＰＵと共に、モジュールのオペレーティング・システム・ランニング・イメージによって、別のコンピュータ・システムを制御し、動作させることができる。
【０１４５】
図２６は、リムーバブル・オペレーティング・システム／ＣＰＵモジュールのコンピュータ・システムへの挿入および取外しの処理を示す流れ図である。処理は２６００で開始され、ステップ２６１０で、ユーザが、リムーバブル・オペレーティング・システム／ＣＰＵモジュールを、モジュールを受けるように適合されたコンピュータ・システムに挿入する。リムーバブル・オペレーティング・システム／ＣＰＵモジュールには、モジュールの不揮発性ストレージに記憶されたオペレーティング・システムのランニング・イメージ、ならびにオペレーティング・システム命令を実行するＣＰＵが含まれる。
【０１４６】
ステップ２６１２で、コンピュータ・システムのＢＩＯＳによって、挿入時にリムーバブル・オペレーティング・システム／ＣＰＵモジュールが検出され、ＣＰＵの属性が判定される。図２７の流れ図に、ステップ２６１２で行われる処理の詳細を示す。
【０１４７】
次に、判断２６１４で、モジュールが現在のコンピュータ・システムと互換であるかどうかに関する判定を行う。モジュールが、コンピュータ・システムと非互換であると判定される場合には、判断２６１４は「ｎｏ」分岐２６１６に分岐し、処理はステップ２６２８で継続される。ステップ２６２８では、モジュールが現在のコンピュータ・システムと非互換であることをユーザに通知する。
【０１４８】
モジュールが互換と判定される場合に、判断２６１４は「ｙｅｓ」分岐２６１８に分岐し、ステップ２６２０で、ＢＩＯＳによって、モジュールからオペレーティング・システム・ランニング・イメージをロードし、オペレーティング・システムに、モジュール上のＣＰＵの存在および属性を通知する。図６の流れ図に、ステップ２６２０で行われる処理の詳細を示す。
【０１４９】
ステップ２６２２で、オペレーティング・システムによって、このコンピュータに接続されたローカル・デバイスが発見される。オペレーティング・システムによって、このコンピュータ・システムからのリムーバブル・オペレーティング・システム／ＣＰＵモジュールの取外しの前のデバイスを含むリストが、現在発見されているデバイスと比較され、それに応じてデバイスのリストが更新される。図７の流れ図に、ステップ２６２２で行われる処理の詳細を示す。
【０１５０】
ステップ２６２４で、オペレーティング・システムによって、ユーザが異なるコンピュータ・システムを使用した時にコンピュータ・システムによってまたはユーザによってアクセス可能であったリモート・デバイスが発見される。図８の流れ図に、ステップ２６２４で行われる処理の詳細を示す。
【０１５１】
ステップ２６２６で、オペレーティング・システムによって、コンピュータ・システムからのリムーバブル・オペレーティング・システム／ＣＰＵモジュールの最後の取外しの前にハイバネートまたは他の形で延期されたアプリケーションが初期化される。図９の流れ図に、ステップ２６２６で行われる処理の詳細を示す。
【０１５２】
ステップ２６３０で、オペレーティング・システムによって、コンピュータ・システムが管理される。オペレーティング・システムは、ユーザまたは実行中のアプリケーションによって要求されるタスクを実行する。図１０の流れ図に、ステップ２６３０で行われる処理の詳細を示す。
【０１５３】
判断２６３２で、ユーザがリムーバブル・オペレーティング・システム／ＣＰＵモジュールの取外しを要求したかどうかに関する判定を行う。ユーザが、まだリムーバブル・オペレーティング・システム／ＣＰＵモジュールの取外しを要求していない場合には、判断２６３２は「ｎｏ」分岐２６３４に分岐し、ステップ２６３０にループ・バックし、オペレーティング・システムが要求されたタスクの実行を継続する。
【０１５４】
ユーザが、リムーバブル・オペレーティング・システム／ＣＰＵモジュールの取外しを要求した場合には、判断２６３２は「ｙｅｓ」分岐２６３６に分岐し、処理はステップ２６３８で継続されて、オペレーティング・システムの状態が、リムーバブル・オペレーティング・システム・モジュールに記憶される。図１１の流れ図に、ステップ２６３８で行われる処理の詳細を示す。
【０１５５】
ステップ２６４０で、リムーバブル・オペレーティング・システム／ＣＰＵモジュールの取外しのすべての準備を実行した後に、ユーザに「モジュールを取り外しても安全です」と通知し、ステッ２６４２で、ユーザが、リムーバブル・オペレーティング・システム・モジュールを取り外す。処理は、２６９９で終了する。
【０１５６】
図２７は、リムーバブル・オペレーティング・システム／ＣＰＵモジュールを検出し、モジュール上のオペレーティング・システムおよびＣＰＵとコンピュータ・システムの互換性を判定する、ＢＩＯＳの処理を示す流れ図である。処理は２７００で開始され、ステップ２７１０で、ＢＩＯＳによって、挿入されたオペレーティング・システム／ＣＰＵモジュールが検出される。
【０１５７】
リムーバブル・オペレーティング・システム／ＣＰＵモジュールが、前にこのコンピュータ・システムに挿入されたことがあるかどうかに関する判定を行う。リムーバブル・オペレーティング・システム／ＣＰＵモジュールが、このコンピュータに前に挿入されたことがない場合には、判断２７１５は「ｎｏ」分岐２７２０に分岐し、処理はステップ２７４０で継続される。リムーバブル・オペレーティング・システム／ＣＰＵモジュールが、このコンピュータに前に挿入されたことがある場合には、判断２７１５は「ｙｅｓ」分岐２７２５に分岐し、判断２７２６で、オペレーティング・システム／ＣＰＵ情報を含むファイルが、コンピュータ・システムの不揮発性ストレージに存在するかどうかに関する判定を行う。ＣＰＵ情報を含むファイルがコンピュータ・システムに存在する場合には、判断２７２６は「ｙｅｓ」分岐２７２８に分岐し、ステップ２７３０で、ＣＰＵ情報を含むファイルをロードする。ＣＰＵ情報は、ＣＰＵのアクセス・アドレス、ＣＰＵのアドレッシング・モード、およびＣＰＵのデータ転送方法などである。
【０１５８】
ＣＰＵ情報を含むファイルがコンピュータ・システムに存在しない場合には、判断２７２６は「ｎｏ」分岐２７２９に分岐し、ステップ２７４０で、ＣＰＵのアクセス・アドレス、ＣＰＵのアドレッシング・モード、ＣＰＵのデータ転送方法などを判定するためにＣＰＵに問い合わせる。ステップ２７４５で、コンピュータ・システムとのオペレーティング・システムの互換性を判定する。その後、処理は２７９９で終了する。
【０１５９】
図２８は、コンピュータ・システムへのデバイスの接続と、デバイス上の不揮発性ストレージからコンピュータ・システムへのデバイス・ドライバの転送を示すブロック図である。
【０１６０】
コンピュータ・システム２８１０に、コンピュータ・システム２８１０を制御するＣＰＵ２８１５、データを記憶する、ＣＰＵ２８１５に結合されたメモリ・ユニット２８２０、およびコンピュータ・システムを他の外部デバイスに接続する、やはりＣＰＵ２８１５に結合された通信インターフェース２８２５が含まれる。
【０１６１】
デバイス２８３０には、デバイス２８３０を制御するプロセッサ２８４５、デバイス２８３０を他のデバイスに接続する、プロセッサ２８４５に結合された通信インターフェース２８４０、データを記憶する、やはりプロセッサ２８４５に結合された不揮発性ストレージ２８３５が含まれる。
【０１６２】
デバイス２８３０は、デバイス２８３０の通信インターフェース２８４０およびコンピュータ・システム２８１０の通信インターフェース２８２５を介してコンピュータ・システム２８１０に接続されるように適合された、プリンタなどの外部デバイスである。通信を実現するために、デバイス・ドライバを、まず、コンピュータ・システムにインストールしなければならない。通常、デバイス・ドライバは、フロッピ・ディスク、ＣＤ−ＲＯＭ、コンピュータ・システムが接続されるネットワークなどを介してコンピュータ・システムに供給される。デバイス・ドライバが使用可能でない場合に、デバイス・ドライバは機能しない。デバイス２８３０に、不揮発性ストレージ２８３５内のデバイス・ドライバ２８５０を記憶することができ、コンピュータ・システム２８１０へのデバイス２８３０の接続時に、デバイス・ドライバ２８５０をコンピュータ・システム２８１０に供給することができる。更新されたデバイス・ドライバが、コンピュータ・システム２８１０で使用可能になる場合に、更新されたデバイス・ドライバを、コンピュータ・システム２８１０からデバイス２８３０に転送して、デバイス・ドライバ２８５０を置換することができる。
【０１６３】
図２９は、コンピュータ・システムにデバイスを接続し、デバイス上の不揮発性ストレージからコンピュータ・システムにデバイス・ドライバを転送する処理を示す流れ図である。処理は２９００で開始され、ステップ２９１０で、新しいデバイスをコンピュータ・システムに接続する。デバイスは、コンピュータ・システムにインストールされなければならないデバイス・ドライバを使用してコンピュータ・システムと通信するように適合される。ステップ２９１５で、コンピュータ・システムによって、新しいデバイスが検出される。一実施形態では、プラグアンドプレイ・タイプの通信が、デバイスとコンピュータ・システムの間で確立される。
【０１６４】
次に、デバイスが、デバイスのファームウェアからデバイス・ドライバを供給できるかどうかに関する判定を行う。デバイスが、適切なデバイス・ドライバを供給できる場合には、判断２９２０は「ｙｅｓ」分岐２９３０に分岐し、ステップ２９３５で、コンピュータ・システムが、新しいデバイスのデバイス・ドライバに関する要求を送り、デバイスからデバイス・ドライバを受け取る。デバイス・ドライバを、標準化されたデバイス・ドライバ通信プロトコルを使用してデバイスから受け取ることができる。その後、処理はステップ２９４５で継続される。
【０１６５】
デバイスが、デバイス・ドライバを供給できない場合には、判断２９２０は「ｎｏ」分岐２９２５に分岐し、ステップ２９４０で、コンピュータ・システムが、ローカル・ストレージ・デバイスまたはコンピュータ・システムが接続されたネットワークあるいはその両方を検索して、接続されたデバイスの互換デバイス・ドライバを入手する。
【０１６６】
ステップ２９４５で、新しいデバイスが、オペレーティング・システムによって登録される。デバイスに関する情報が、たとえばシステム・レジストリに追加され、その結果、オペレーティング・システムが、デバイスの存在およびそのデバイスの適切なデバイス・ドライバのレコードを有するようになる。ステップ２９５０で、デバイスおよびデバイス・ドライバに関する情報を、ローカル・デバイス・ドライバ構成ファイルに追加する。デバイス・ドライバ構成ファイルは、コンピュータ・システムの最後のシャット・ダウン／ハイバネーションの前またはリムーバブル・オペレーティング・システム・モジュールの取外しの時にコンピュータ・システムに接続されていたデバイスのリストを得るために、コンピュータ・システムの再始動または再開の時に使用することができる。ステップ２９５５で、コンピュータ・システムによって、インストールされたデバイス・ドライバを使用して新しいデバイスとの通信が確立される。
【０１６７】
図３０は、サーバに記憶されたデバイスのデバイス・ドライバに関する情報を入手するための、リモート・デバイス・ドライバ・レジストリ・サーバとのコンピュータ・システムのＸＭＬなどのポータブル言語での通信を示すブロック図である。
【０１６８】
コンピュータ・システム３０１０は、コンピュータ・ネットワーク３０３０に接続され、コンピュータ・ネットワーク３０３０には、リモート・デバイス・ドライバ・レジストリ・サーバ３０１５、フォト・プリンタ（ｐｈｏｔｏ  ｐｒｉｎｔｅｒ）３０２０、および高解像度スキャナ３０２５も接続される。コンピュータ・システム３０１０、フォト・プリンタ３０２０、および高解像度スキャナ３０２５の間の通信を確立するために、コンピュータ・システム３０１０は、まず、リモート・デバイス・ドライバ・レジストリ・サーバ３０１５との通信を確立する。コンピュータ・システム３０１０は、広く知られた言語であるＸＭＬなどのポータブル言語を使用して、リモート・デバイス・ドライバ・レジストリ・サーバ３０１５との通信を確立する。リモート・デバイス・ドライバ・レジストリ・サーバ３０１５には、デバイス・ドライバおよび他の情報が記憶されて、コンピュータ・システム３０１０とフォト・プリンタ３０２０および高解像度スキャナ３０２５の間の通信が実現される。
【０１６９】
一実施形態で、リモート・デバイス・ドライバ・レジストリ・サーバ３０１５に、テーブル３０５５およびテーブル３０５０が含まれる。テーブル３０５５には、使用可能なデバイスに関する情報が含まれる。たとえば、ドライバごとに、テーブル３０５５にドライバをダウンロードできるネットワーク位置、デバイスのインターフェース定義、デバイスの使用に関連する料金、および連絡先ネットワーク・アドレスを含めることができる。テーブル３０５０には、たとえば、ユーザごとに、ユーザのユーザ名、ユーザのパスワード、ユーザが第１デバイスにアクセスできるかどうか、ユーザが第２デバイスにアクセスできるかどうか、などを含めることができる。
【０１７０】
リモート・デバイス・ドライバ・レジストリ・サーバ３０１５との通信を確立した後に、コンピュータ・システムは、適切なデバイスに関する情報を受け取る。コンピュータ・システムは、次に、フォト・プリンタ３０２０または高解像度スキャナ３０２５などのデバイスとの通信を確立する。
【０１７１】
図３１は、サーバに記憶されたデバイスのデバイス・ドライバに関する情報を入手するための、リモート・デバイス・ドライバ・レジストリ・サーバとのＸＭＬなどのポータブル言語でのコンピュータ・システム通信の処理を示す流れ図である。処理は３１００で開始され、ステップ３１１０で、ユーザが、高品質印刷用のフォト・プリンタなどのリモート・サービスまたはデバイスへの接続を要求する。
【０１７２】
ステップ３１１５で、サービスまたはデバイスに関する要求が、ＸＭＬなどのポータブル言語を使用してリモート・デバイス・ドライバ・レジストリ・サーバに送信される。リモート・デバイス・ドライバ・レジストリ・サーバは、サービスまたはデバイスを要求するユーザの認証を提供することができ、デバイス・ドライバおよびデバイスに関する情報を提供することができる。リモート・デバイス・ドライバ・レジストリ・サーバは、ドライバの位置、サービスまたはデバイスと通信するためのインターフェース定義、デバイスの使用に関する適用可能な料金、問題の場合の連絡先アドレスなどの情報を提供することができる。
【０１７３】
ステップ３１２０で、リモート・デバイス・ドライバ・レジストリ・サーバは、サービスまたはドライバがユーザによってアクセス可能である場合にどれがそうであるかを判定するために、ユーザに、ユーザ名およびパスワードを供給するように要求する。判断３１２５で、ユーザが、要求されたサービスまたはデバイスへのアクセスの許可を有するかどうかに関する判定を行う。リモート・デバイス・ドライバ・レジストリ・サーバは、入力されたユーザ名およびパスワードを、リモート・デバイス・ドライバ・レジストリ・サーバで維持されるユーザ名およびパスワードならびにアクセス許可のテーブルと比較することによって、許可を判定する。ユーザが、要求されたデバイスまたはサービスへのアクセスの許可を有しない場合には、判断３１３５は「ｎｏ」分岐３１２０に分岐し、ステップ３１４５で処理が継続される。ステップ３１４５では、要求されたデバイスまたはサービスへのアクセスの許可が拒否されたことが、ユーザに通知される。
【０１７４】
ユーザが、要求されたサービスまたはデバイスへのアクセスの許可を有する場合には、判断３１２５は「ｙｅｓ」分岐３１３５に分岐し、ステップ３１４０で、コンピュータ・システムが、選択されたサービスまたはデバイスとの通信を確立する。図３２の流れ図に、ステップ３１４０で行われる処理の詳細を示す。その後、処理は３１９９で終了する。
【０１７５】
図３２は、コンピュータ・システムとリモート・サーバ／デバイスの間の通信を確立する処理を示す流れ図である。処理は３２００で開始され、ステップ３２１０で、リモート・デバイス・ドライバ・レジストリ・サーバが、選択されたデバイス・ドライバの特性を要求元コンピュータ・システムに送信する。リモート・デバイス・ドライバ・レジストリ・サーバとコンピュータ・システムの間の通信は、ＸＭＬなどのポータブル言語で行われる。ステップ３２１５で、リモート・デバイス・ドライバ・レジストリ・サーバが、要求元コンピュータ・システムに、デバイス・ドライバと通信するのに必要なインターフェースを送信する。リモート・デバイス・ドライバ・レジストリ・サーバとコンピュータ・システムの間の通信は、やはりＸＭＬなどのポータブル言語で行われる。
【０１７６】
ステップ３２２０で、要求元コンピュータ・システムが、デバイス・ドライバに関連する受け取った情報を、後の再呼出しのためにデバイス・ドライバ構成ファイルに記憶する。ステップ３２３０で、要求元コンピュータ・システムが、リモート・デバイス・ドライバ・レジストリ・サーバによって要求元コンピュータ・システムに供給されたインターフェースおよび他の情報を使用して、デバイスにアクセスする。その後、処理は３２９９で終了する。
【０１７７】
図３３は、デバイスへの許可されないアクセスを防ぐセキュリティ・デバイスを含むリムーバブル・オペレーティング・システム・モジュールを示すブロック図である。リムーバブル・モジュール３３１０に、モジュールＣＰＵ３３１５、オペレーティング・システム・ランニング・イメージ３３３０、またはモジュール・アプリケーション３３３５あるいはこれらの組合せを含めることができる。
【０１７８】
さらに、リムーバブル・モジュール３３１０には、リムーバブル・モジュールの許可されない使用を防ぐために、リムーバブル・モジュールをロックし、保護する手段が含まれる。リムーバブル・モジュール３３１０には、セキュリティ・データ３３４０が含まれ、セキュリティ・データ３３４０は、たとえば、網膜スキャナ３３４５、指紋スキャナ３３５０、またはキーパッド３３５５あるいはこれらの組合せと組み合わされて、認証を提供する。網膜スキャナ３３４５によって、ユーザの網膜がスキャンされ、スキャンされた画像が、セキュリティ・データ３３４０に記憶された画像と比較されて、ユーザがリムーバブル・モジュール３３１０の使用を許可されるかどうかが決定される。指紋スキャナ３３５０によって、ユーザの指紋がスキャンされ、スキャンされた画像が、セキュリティ・データ３３４０に記憶された画像と比較されて、ユーザがリムーバブル・モジュール３３１０の使用を許可されるかどうかが決定される。キーパッド３３５５によって、ユーザがパスワードを入力する手段が提供され、このパスワードは、セキュリティ・データ３３４０に記憶されたパスワードと比較されて、ユーザがリムーバブル・モジュール３３１０の使用を許可されるかどうかが決定される。
【０１７９】
リムーバブル・モジュール３３１０に、ロック／ロック解除インジケータ３３２５も含まれる。ロック／ロック解除インジケータ３３２５には、たとえば、モジュールがロックされていることを示す赤いＬＥＤと、モジュールがロックされていないことを示す緑のＬＥＤを含めることができる。
【０１８０】
ロック・ボタン３３２０を使用して、リムーバブル・モジュール３３１０がロックされてない時に、いつでも、リムーバブル・モジュール３３１０をロックすることができる。もう１つの実施形態では、リムーバブル・モジュール３３１０は、コンピュータ・システムから取り外される時に、またはある時間の非アクティブ性の後あるいはタイム・スケジュールで、自動的にロックすることができる。
【０１８１】
図３４は、モジュールのセキュリティ・デバイスを使用して、リムーバブル・オペレーティング・システム・モジュールへの許可されないアクセスを防ぐ処理を示す流れ図である。処理は３４００で開始され、ステップ３４１０で、ユーザが、コンピュータ・システムからリムーバブル・モジュールを取り外す。
【０１８２】
判断３４１５で、モジュールが、コンピュータ・システムからの取外し時自動ロックにセットされているかどうかに関する判定を行う。モジュールが、コンピュータ・システムからの取外し時自動ロックにセットされている場合には、判断３４１５は「ｙｅｓ」分岐３４３５に分岐し、ステップ３４４０で、モジュールが自動ロックする。処理は、ステップ３４４５で継続される。モジュールが、コンピュータ・システムからの取外し時自動ロックにセットされていない場合には、判断３４１５は「ｎｏ」分岐３４２０に分岐し、判断３４２５で、モジュールのロック・ボタンが押されたかどうかに関する判定を行う。ロック・ボタンが押された場合には、判断３４２５は「ｙｅｓ」分岐３４３０に分岐し、ステップ３４４５で処理が継続される。ロック・ボタンが押されていない場合には、判断３４２５は「ｎｏ」分岐３４７５に分岐し、ステップ３４８０で、モジュールが、ロック解除され、動作可能であり、コンピュータ・システムへの再挿入の準備ができたままになる。
【０１８３】
ステップ３４４５では、モジュールが、ロックされ、従って動作不能であり、コンピュータ・システムへのアクティブ化の準備ができていない。もう一度使用するためには、まず、モジュールをロック解除しなければならない。モジュールのインジケータによって、モジュールがロックされていることが示される。
【０１８４】
判断３４５０で、ユーザがモジュールのロック解除を試みているかどうかに関する判定を行う。ユーザが、モジュールのロック解除を試みていない場合には、判断３４５０は「ｎｏ」分岐３４５２に分岐し、処理はステップ３４４５にループ・バックして、モジュールが、ユーザがモジュールのロック解除を試みているかどうかを再び判定する。ユーザがモジュールのロック解除を試みている場合には、判断３４５０は「ｙｅｓ」分岐３４５４に分岐し、ステップ３４５５で、モジュールが、ユーザ認証手順を実行して、モジュールのアンロックを試みているユーザが、それを行う権限を有するかどうかを判定する。図３５、３６、および３７の流れ図に、ステップ３４５５で行われる処理の詳細を示す。
【０１８５】
判断３４６０で、ユーザが認証されたかどうかに関する判定を行う。ユーザが認証されなかった場合には、判断３４６０は「ｎｏ」分岐３４６５に分岐し、処理はステップ３４４５にループ・バックして、ユーザによるモジュールのロック解除のもう１つの試みを待つ。ユーザが認証された場合には、判断３４６０は「ｙｅｓ」分岐３４７０に分岐し、ステップ３４８０で、モジュールがロック解除され、動作可能になり、コンピュータ・システムへの挿入の準備ができる。その後、処理は３４９９で終了する。
【０１８６】
図３５は、モジュール上の指紋スキャナを使用してリムーバブル・オペレーティング・システム・モジュールを保護する方法を示す流れ図である。処理は３５００で開始され、ステップ３５１０で、モジュールは、指紋スキャナでの指の存在を待つ。指紋スキャナは、モジュール上に配置されるが、識別および認証のために人の指紋をスキャンすることができるセキュリティ・デバイスである。
【０１８７】
判断３５１５で、指がスキャナに存在するかどうかに関する判定を行う。指が、スキャナに存在しない場合には、判断３５１５は「ｎｏ」分岐３５２０に分岐し、処理はステップ３５１０にループ・バックして、モジュールが、指紋スキャナでの指の存在を待ち続ける。
【０１８８】
指が指紋スキャナに存在する場合には、判断３５１５は「ｙｅｓ」分岐３５２５に分岐し、ステップ３５３０で、指紋スキャナをアクティブ化し、指の指紋の画像を取り込む。ステップ３５３５で、モジュール上の認証された指紋画像のデータベースにアクセスする。このデータベースは、モジュールに記憶されるが、このデータベースには、モジュールの使用を認証されたユーザの指紋の画像が含まれる。
【０１８９】
スキャンされた画像と比較されてない指紋画像がまだあるかどうかに関する判定を行う。比較されていない指紋画像がもう存在しない場合には、判断３５４０は「ｎｏ」分岐３５５０に分岐し、ステップ３５６０で、ユーザが認証されなかったと判定する。処理は、その後、３５９９で終了する。
【０１９０】
比較されていない指紋画像がまだ存在する場合には、判断３５４０は「ｙｅｓ」分岐３５４５に分岐し、ステップ３５５５で、次の指紋画像をデータベースからロードし、スキャンされた画像と比較する。
【０１９１】
判断３５６５で、データベースからの指紋画像がスキャンされた画像と一致するかどうかに関する判定を行う。画像が一致しない場合には、判断３５６５は「ｎｏ」分岐３５７０に分岐し、処理はステップ３５３５に戻って、比較を必要とする画像がデータベースに残っているかどうかを判定する。画像が一致する場合には、判断３５６５は「ｙｅｓ」分岐３５７５に分岐し、ステップ３５８０で、ユーザが認証され、モジュールを互換コンピュータ・システムに挿入でき、使用できることが示される。処理は３５９９で終了する。
【０１９２】
図３６は、モジュール上の網膜スキャナを使用してリムーバブル・オペレーティング・システム・モジュールを保護する方法を示す流れ図である。処理は３６００で開始され、ステップ３６１０で、モジュールは、網膜スキャナの前の目の存在を待つ。網膜スキャナは、モジュール上に配置されるが、識別および認証のために人の網膜をスキャンすることができるセキュリティ・デバイスである。
【０１９３】
判断３６１５で、網膜がスキャナの前に存在するかどうかに関する判定を行う。網膜が、スキャナの前に存在しない場合には、判断３６１５は「ｎｏ」分岐３６２０に分岐し、処理はステップ３６１０にループ・バックして、モジュールが、網膜スキャナの前の網膜の存在を待ち続ける。
【０１９４】
網膜がスキャナに存在する場合には、判断３６１５は「ｙｅｓ」分岐３６２５に分岐し、ステップ３６３０で、網膜スキャナをアクティブ化し、網膜の画像を取り込む。ステップ３６３５で、モジュール上の認証された網膜画像のデータベースにアクセスする。このデータベースは、モジュールに記憶されるが、このデータベースには、モジュールの使用を認証されたユーザの網膜の画像が含まれる。
【０１９５】
スキャンされた画像と比較されてない網膜画像がまだあるかどうかに関する判定を行う。比較されていない網膜画像がもう存在しない場合には、判断３６４０は「ｎｏ」分岐３６５０に分岐し、ステップ３６６０で、ユーザが認証されなかったと判定する。処理は、その後、３６９９で終了する。
【０１９６】
比較されていない網膜画像がまだ存在する場合には、判断３６４０は「ｙｅｓ」分岐３６４５に分岐し、ステップ３６５５で、次の網膜画像をデータベースからロードし、スキャンされた画像と比較する。
【０１９７】
判断３６６５で、データベースからの網膜画像がスキャンされた画像と一致するかどうかに関する判定を行う。画像が一致しない場合には、判断３６６５は「ｎｏ」分岐３６７０に分岐し、処理はステップ３６３５に戻って、比較を必要とする画像がデータベースに残っているかどうかを判定する。画像が一致する場合には、判断３６６５は「ｙｅｓ」分岐３６７５に分岐し、ステップ３６８０で、ユーザが認証され、モジュールを互換コンピュータ・システムに挿入でき、使用できることが示される。処理は３６９９で終了する。
【０１９８】
図３７は、パスワードを入力する、モジュール上のキーボードを使用してリムーバブル・オペレーティング・システム・モジュールを保護する方法を示す流れ図である。処理は３７００で開始され、ステップ３７１０で、モジュールが、パスワードがキーボードで入力されるのを待つ。
【０１９９】
判断３７１５で、パスワードが入力されたかどうかに関する判定を行う。パスワードが入力されていない場合には、判断３７１５は「ｎｏ」分岐３７２５に分岐し、処理はステップ３７１０にループ・バックし、モジュールがパスワードを待ち続ける。
【０２００】
パスワードが入力された場合には、判断３７１５は「ｙｅｓ」分岐３７２０に分岐しステップ３７３０で、入力されたパスワードを受け取る。ステップ３７３５で、モジュール上の認証されたパスワードのデータベースにアクセスする。このデータベースは、モジュールに記憶されるが、このデータベースには、モジュールの使用を認証されたユーザからのパスワードが含まれる。
【０２０１】
入力されたパスワードと比較されていないパスワードがまだ存在するかどうかに関する判定を行う。比較されていないパスワードがもう存在しない場合には、判断３７４０は「ｎｏ」分岐３７５０に分岐し、ステップ３７６０で、ユーザが認証されなかったと判定される。その後、処理は３７９９で終了する。
【０２０２】
比較されていないパスワードがまだ存在する場合には、判断３４５０は「ｙｅｓ」分岐３４５５に分岐し、ステップ３７５５で、データベースから次のパスワードをロードし、入力されたパスワードと比較する。
【０２０３】
判断３７６５で、データベースからのパスワードが、入力されたパスワードと一致するかどうかに関する判定を行う。パスワードが一致しない場合には、判断３７６５は「ｎｏ」分岐３７７０に分岐し、処理はステップ３７３５に戻って、比較を必要とするパスワードがデータベースに残っているかどうかを判定する。パスワードが一致する場合には、判断３７６５は「ｙｅｓ」分岐３７７５に分岐し、ステップ３７８０で、ユーザが認証され、互換コンピュータ・システムにモジュールを挿入でき、使用できることが示される。処理は３７９９で終了する。
【０２０４】
図３８は、コンピュータ・システムを介してユーザによって供給されるセキュリティ・データを使用して、リムーバブル・オペレーティング・システム・モジュールへの許可されないアクセスを防ぐ処理を示す流れ図である。処理は３８００で開始され、ステップ３８１０で、ユーザが、リムーバブル・モジュールをコンピュータ・システムに挿入する。ステップ３８１１で、ＢＩＯＳによって、リムーバブル・モジュールが検出され、モジュールがコンピュータ・システムと互換であるかどうかが判定される。
【０２０５】
判断３８１４で、モジュールがセキュリティ・ロックされているかどうかに関する判定を行う。モジュールが、セキュリティ・ロックされていない場合には、判断３８１４は「ｎｏ」分岐３８１８に分岐し、処理はステップ３８４８で継続される。モジュールがセキュリティ・ロックされている場合には、判断３８１４は「ｙｅｓ」分岐３８１６に分岐し、ユーザに、モジュールをロック解除するためのセキュリティ・データを求めるプロンプトを出す。セキュリティ・データは、たとえば、パスワード、指紋スキャン、網膜スキャンなどとすることができる。
【０２０６】
判断３８２８で、セキュリティ・データが提供されたかどうかに関する判定を行う。セキュリティ・データが供給されていない場合には、判断３８２４は「ｎｏ」分岐３８２８に分岐し、処理はステップ３８２２にループ・バックし、システムは、ユーザからのセキュリティ・データを待つ。
【０２０７】
セキュリティ・データが供給された場合には、判断３８２４は「ｙｅｓ」分岐３８３６に分岐し、ステップ３８３０で、ユーザによって入力されたセキュリティ・データが、システムによって受け取られる。ステップ３８３２で、モジュール上の認証されたセキュリティ・データのデータベースにアクセスする。モジュールに記憶される認証されたセキュリティ・データは、たとえば、パスワード、指紋スキャン、網膜スキャンなどとすることができる。
【０２０８】
図３９は、リムーバブル・モジュールの製造／プログラミングを示すブロック図である。製造用コンピュータ・システム３９１０に、ＣＰＵ３９２０、ＲＡＭ３９２５、および不揮発性ストレージ３９１５が含まれる。不揮発性ストレージ３９１５には、リムーバブル・モジュールにインストールされるオペレーティング・システム・ランニング・イメージのマスタ・コピーが含まれる。
【０２０９】
製造用コンピュータ・システム３９１０には、インターフェースも含まれ、このインターフェースに、リムーバブル・モジュール・スタック３９４７からリムーバブル・モジュール３９３０、３９３５、３９４０、…、３９４５が取り付けられ、コンピュータ・システム３９１０に接続される。コンピュータ・システム３９１０でのオペレーティング・システムのインストールの後に、オペレーティング・システムのランニング・イメージが、ＲＡＭ３９２５からリムーバブル・モジュール３９３０、３９３５、３９４０、…、３９４５のそれぞれに転送される。
【０２１０】
オペレーティング・システム・ランニング・イメージが、リムーバブル・モジュール３９３０、３９３５、３９４０、…、３９４５にインストールされた後に、リムーバブル・モジュールが、コンピュータから取り外され、配布の準備ができる。
【０２１１】
図４０は、リムーバブル・オペレーティング・システム・モジュールの製造およびプログラミングの処理を示す流れ図である。処理は４０００で開始され、ステップ４０１０で、オペレーティング・システムが、製造用コンピュータ・システムにインストールされる。コンピュータ・システムにインストールされるオペレーティング・システムは、リムーバブル・オペレーティング・システム・モジュールにインストールされるオペレーティング・システム・ランニング・イメージに対応する。ステップ４０１５で、オペレーティング・システムを実行して、メモリ内のオペレーティング・システムのランニング・イメージを得る。インストールされるオペレーティング・システム・ランニング・イメージは、リムーバブル・オペレーティング・システム・モジュールに転送され、実行されたオペレーティング・システムが、状態情報、再開ポイント、再始動ポイントなどを得るのに使用される。
【０２１２】
ステップ４０２０で、リムーバブル・オペレーティング・システム・モジュールの製造を開始する。異なる構成要素を相互接続するバス、バスに接続されるＢＩＯＳをインストールするインターフェース、バスに接続されるプロセッサをインストールするインターフェース、バスに接続される不揮発性ストレージをインストールするインターフェース、およびコンピュータ・システムにモジュール・インターフェースを接続する、バスに接続された通信インターフェースを有するマザーボードを入手する。
【０２１３】
ステップ４０３０で、ＢＩＯＳを、ボードのＢＩＯＳインターフェースにインストールする。ＢＩＯＳは、モジュールとコンピュータ・システムのモジュール・インターフェースの間の初期通信を確立する責任を負う。ステップ４０３５で、プロセッサを、ボードのプロセッサ・インターフェースにインストールする。プロセッサは、リムーバブル・オペレーティング・システム・モジュールからコンピュータ・システムへの通信ならびにリムーバブル・オペレーティング・システム・モジュール内の構成要素の間の通信など、リムーバブル・オペレーティング・システム・モジュールの動作を制御する。ステップ４０４０で、不揮発性ストレージを、ボードの不揮発性ストレージ・インターフェースにインストールする。不揮発性ストレージは、一般に、データの記憶ならびにリムーバブル・オペレーティング・システム・モジュールに記憶されるオペレーティング・システムのランニング・イメージの記憶に使用される。
【０２１４】
判断４０４５で、製造すべきモジュールがまだあるかどうかを判定する。製造すべきモジュールがまだある場合には、判断４０４５は「ｙｅｓ」分岐４０５０に分岐し、処理はステップ４０２０に戻って、別のリムーバブル・オペレーティング・システム・モジュールの製造を開始する。製造すべきリムーバブル・オペレーティング・システム・モジュールがもうない場合には、判断４０４５は分岐「ｎｏ」４０５５に分岐し、ステップ４０６０で、製造されたリムーバブル・オペレーティング・システム・モジュールの組を、製造用コンピュータ・システムに挿入する。製造用コンピュータ・システムは、リムーバブル・オペレーティング・システム・モジュールに接続されるように適合された複数のインターフェースを有して、複数のリムーバブル・オペレーティング・システム・モジュールへのオペレーティング・システムの同時ロードを実現することができる。
【０２１５】
ステップ４０７０で、製造用コンピュータ・システムで動作中のオペレーティング・システムのランニング・イメージを、製造用コンピュータ・システムに取り付けられたリムーバブル・オペレーティング・システム・モジュールにロードする。オペレーティング・システム・ランニング・イメージは、リムーバブル・オペレーティング・システム・モジュールの不揮発性ストレージに転送される。
【０２１６】
判断４０８０で、オペレーティング・システム・ランニング・イメージのロードを必要とするモジュールがまだあるかどうかに関する判定を行う。オペレーティング・システム・ランニング・イメージのロードを必要とするリムーバブル・オペレーティング・システム・モジュールがまだ存在する場合には、判断４０８０は「ｙｅｓ」分岐４０８５に分岐し、処理はステップ４０６０にループ・バックし、リムーバブル・オペレーティング・システム・モジュールのもう１つの組を、製造用コンピュータ・システムに挿入する。オペレーティング・システム・ランニング・イメージのロードを必要とするリムーバブル・オペレーティング・システム・モジュールもうない場合には、判断４０８０は「ｎｏ」分岐４０９０に分岐し、処理は４０９９で終了する。
【０２１７】
図４１は、ランニング・オペレーティング・システム・インストール・ファイルを使用してユーザがリムーバブル・オペレーティング・システム・モジュールをプログラムする処理を示す流れ図である。処理は４１００で開始され、ステップ４１１０で、ユーザがコンピュータ・システムをブートする。ステップ４１１５で、ユーザは、コンピュータ・システムを使用して、オペレーティング・システムの製造業者のウェブサイトに接続する。このウェブサイトで、ユーザは、リムーバブル・オペレーティング・システム・モジュールにオペレーティング・システムをインストールするために、ファイルの購入およびダウンロードを要求する。
【０２１８】
ステップ４１２０で、ユーザは、購入ウェブページにナビゲートし、クレジット・カードを使用してオペレーティング・システムを購入する。ステップ４１２５で、ユーザは、購入したオペレーティング・システムを、インストール可能イメージの形でダウンロードし、受け取る。
【０２１９】
判断４１３０で、リムーバブル・オペレーティング・システム・モジュールをコンピュータ・システムに接続するリムーバブル・オペレーティング・システム・モジュール・インターフェースがコンピュータ・システムに含まれるかどうかに関する判定を行う。コンピュータ・システムにリムーバブル・オペレーティング・システム・モジュール・インターフェースが含まれない場合には、判断４１３０は「ｎｏ」分岐４１３４に分岐し、ステップ４１４０で、リムーバブル・オペレーティング・システム・モジュール・インターフェースをコンピュータ・システムに取り付ける。その後、処理はステップ４１５０で継続される。
【０２２０】
コンピュータ・システムにリムーバブル・オペレーティング・システム・モジュール・インターフェースが含まれる場合に、判断４１３０は「ｙｅｓ」分岐４１３２に分岐し、ステップ４１５０で、リムーバブル・オペレーティング・システム・モジュールを、リムーバブル・オペレーティング・システム・モジュール・インターフェースに挿入する。ステップ４１６０で、挿入されたリムーバブル・オペレーティング・システム・モジュールが、コンピュータ・システムによって検出され、インストールされる。
【０２２１】
ステップ４１７０で、ユーザが、ダウンロードしたオペレーティング・システム実行可能ファイルを実行して、購入したオペレーティング・システムのインストールを開始する。プロンプトを出された時に、ユーザは、購入したオペレーティング・システムをインストールする場所として、リムーバブル・オペレーティング・システム・モジュールを選択する。インストールが完了した後に、ステップ４１８０で、ユーザは、コンピュータ・システムを再始動し、新たにインストールされたオペレーティング・システム・イメージを使用してコンピュータ・システムを再始動することを選択する。インストールされたオペレーティング・システム・イメージを、ランニング・イメージとすることができる。
【０２２２】
ステップ４１９０で、ユーザは、オペレーティング・システムおよび実行中のアプリケーションの状況をリムーバブル・オペレーティング・システム・モジュールの不揮発性ストレージに記憶するためにリムーバブル・オペレーティング・システム・モジュール取外しアプリケーションを実行し、その後、リムーバブル・オペレーティング・システム・モジュールをリムーバブル・オペレーティング・システム・モジュール・インターフェースから取り外す。処理は４１９９で終了する。
【０２２３】
図４２は、ランニング・オペレーティング・システム更新インストール・ファイルを使用してユーザがリムーバブル・オペレーティング・システム・モジュールを更新する処理を示す流れ図である。処理は４２００で開始され、ステップ４２１０で、ユーザが、リムーバブル・オペレーティング・システム・モジュールを、リムーバブル・オペレーティング・システム・モジュールを受けるように適合されたリムーバブル・オペレーティング・システム・モジュール・インターフェースを有するコンピュータ・システムに挿入する。ステップ４２１５で、リムーバブル・オペレーティング・システム・モジュールが、コンピュータ・システムのＢＩＯＳによって検出され、オペレーティング・システム・ランニング・イメージが、リムーバブル・オペレーティング・システム・モジュールの不揮発性ストレージからロードされる。
【０２２４】
ステップ４２２０で、ユーザが、オペレーティング・システムの製造業者のウェブサイトに接続し、オペレーティング・システムに対する更新を要求する。判断４２２５で、更新が無料で提供されるかどうかに関する判定を行う。更新が無料で提供されない場合に、判断４２２５は「ｎｏ」分岐４２３０に分岐し、ステップ４２５５で、ユーザが、クレジット・カードを使用して更新を購入する。処理は、ステップ４２４０で継続される。
【０２２５】
更新が無料で提供される場合には、判断４２２５は「ｙｅｓ」分岐４２３５に分岐し、ステップ４２４０で、ユーザが、更新されたオペレーティング・システム・ランニング・イメージを、オペレーティング・システムの製造業者のウェブサイトからダウンロードし、受け取る。ステップ４２４５で、ユーザは、ダウンロードした更新されたオペレーティング・システム・ランニング・イメージを実行し、ステップ４２５０で、リムーバブル・オペレーティング・システム・モジュールのオペレーティング・システム・ランニング・イメージが、更新される。
【０２２６】
ステップ４２６０で、コンピュータをリブートし、ステップ４２６５で、更新されたオペレーティング・システム・ランニング・イメージが、リムーバブル・オペレーティング・システム・モジュールからロードされ、更新された形でのユーザによる使用の準備ができる。処理は４２９９で終了する。
【０２２７】
図４３は、モジュール・インターフェースを有するパーソナル・コンピュータを示すブロック図である。
【０２２８】
コンピュータ・システム４３１０は、当初は、ＢＩＯＳ４３２５、不揮発性ストレージ４３２０、メモリ４３１５、および追加デバイス４３３０を含むものとして製造され、追加デバイス４３３０には、そのデバイスのデバイス・ドライバ４３３５が含まれる。
【０２２９】
リムーバブル・モジュールをコンピュータ・システム４３１０に接続できるようにするために、モジュール・インターフェース４３５０も、コンピュータ・システムに取り付けられる。
【０２３０】
図４４は、モジュール・インターフェースと、モジュール・インターフェースに接続される異なる構成オプションを有するモジュールとを有するパーソナル・コンピュータを製造する処理を示す流れ図である。処理は、４４００で開始され、ステップ４４１０で、コンピュータ・システムの製造が開始される。
【０２３１】
ステップ４４１５で、さまざまな構成要素を相互接続するバス、バスに接続される、ＢＩＯＳをインストールするインターフェース、バスに接続される、ＣＰＵをインストールするインターフェース、バスに接続される、ＲＡＭユニットをインストールするインターフェース、バスに接続される、不揮発性ストレージを取り付けるインターフェース、および、やはりバスに接続される、追加デバイスを取り付けるインターフェースを有するマザーボードを入手する。
【０２３２】
ステップ４４２０で、ＢＩＯＳをマザーボードのＢＩＯＳインターフェースにインストールする。ＢＩＯＳによって、コンピュータ・システムが、オペレーティング・システム・ランニング・イメージのロードの前に基本的な入出力を実行できるようになり、オペレーティング・システムをロードできるようになる。ステップ４４２５で、ＲＡＭユニットをマザーボードのＲＡＭユニット・インターフェースに取り付ける。ＲＡＭユニットは、コンピュータ・システムの動作中に、高速の一時メモリとして働く。ステップ４４３０で、不揮発性ストレージを、マザーボードの不揮発性ストレージ・インターフェースに取り付ける。不揮発性ストレージは、オペレーティング・システム、アプリケーションなどのインストールの永久的ストレージとして働く。
【０２３３】
ステップ４４３５で、モジュール・インターフェースを取り付け、コンピュータ・システムのバスに接続する。モジュール・インターフェースは、リムーバブル・モジュールを受けるように適合され、バスを介してコンピュータ・システムにリムーバブル・モジュールを接続するように適合される。
【０２３４】
ステップ４４４０で、不揮発性ストレージを有し、モジュラーＣＰＵを受けるように適合されるか、不揮発性ストレージに記憶されたモジュラー・アプリケーションを有するか、不揮発性ストレージに記憶された１つまたは複数のモジュラー・オペレーティング・システムを有するか、この組合せを有するモジュールを入手する。モジュールは、モジュールをコンピュータ・システムのモジュール・インターフェースに取り付けることによってコンピュータ・システムに接続されるように適合される。
【０２３５】
ステップ４４４５で、１つまたは複数のオペレーティング・システムを、コンピュータ・システムまたはリムーバブル・モジュールあるいはその両方にインストールする。図４５の流れ図に、ステップ４４４５で行われる処理の詳細を示す。
【０２３６】
ステップ４４６０で、１つまたは複数のアプリケーションを、コンピュータ・システムまたはリムーバブル・モジュールあるいはその両方にインストールする。図４６の流れ図に、ステップ４４６０で行われる処理の詳細を示す。
【０２３７】
ステップ４４６５で、１つまたは複数のＣＰＵを、コンピュータ・システムまたはリムーバブル・モジュールあるいはその両方にインストールする。図４７の流れ図に、ステップ４４６５で行われる処理の詳細を示す。処理は４４９９で終了する。
【０２３８】
図４５は、コンピュータ・システムまたはモジュールあるいはその両方にオペレーティング・システムをインストールする処理を示す流れ図である。処理は４５００で開始され、判断４５１０で、コンピュータ・システムまたはリムーバブル・モジュールのいずれかにインストールすべきオペレーティング・システムがまだあるかどうかに関する判定を行う。インストールすべきオペレーティング・システムがもうない場合には、判断４５１０は「ｎｏ」分岐４５２０に分岐し、４５９９で処理が終了する。
【０２３９】
インストールすべきオペレーティング・システムがまだある場合には、判断４５１０は「ｙｅｓ」分岐４５１５に分岐し、判断４５２５で、次のオペレーティング・システムを、リムーバブル・モジュールの不揮発性ストレージおよびコンピュータ・システムの不揮発性ストレージの両方にインストールするかどうかに関する判定を行う。オペレーティング・システムを、リムーバブル・モジュールの不揮発性ストレージおよびコンピュータ・システムの不揮発性ストレージの両方にインストールする場合には、判断４５２５は「ｙｅｓ」分岐４５３０に分岐し、ステップ４５７０で、オペレーティング・システムを、コンピュータ・システムのマザーボード上の不揮発性ストレージにインストールする。ステップ４５７５で、オペレーティング・システムのランニング・イメージを、モジュールの不揮発性ストレージにインストールする。処理は判断４５１０にループ・バックして、インストールすべきオペレーティング・システムがまだあるかどうかを判定する。
【０２４０】
オペレーティング・システムが、リムーバブル・モジュールの不揮発性ストレージおよびコンピュータ・システムの不揮発性ストレージの両方にインストールされるのではない場合には、判断４５２５が「ｎｏ」分岐４５３５に分岐し、判断４５４０で、オペレーティング・システムをコンピュータ・システムのマザーボードの不揮発性ストレージにインストールするかどうかに関する判定を行う。オペレーティング・システムが、コンピュータ・システムのマザーボードの不揮発性ストレージにインストールされる場合には、判断４５４０は「ｙｅｓ」分岐４５４５に分岐し、ステップ４５８０で、オペレーティング・システムを、コンピュータ・システムの不揮発性ストレージにインストールする。
【０２４１】
オペレーティング・システムが、コンピュータ・システムのマザーボードの不揮発性ストレージにインストールされるのではない場合には、判断４５４０は「ｎｏ」分岐４５５０に分岐し、判断４５５５で、オペレーティング・システムをリムーバブル・モジュールの不揮発性ストレージにインストールするかどうかに関するもう１つの判定を行う。オペレーティング・システムをモジュールの不揮発性ストレージにインストールする場合には、判断４５５５は「ｙｅｓ」分岐４５６０に分岐し、ステップ４５８５で、オペレーティング・システムのランニング・イメージを、リムーバブル・モジュールの不揮発性ストレージにインストールする。
【０２４２】
オペレーティング・システムを、モジュールの不揮発性ストレージにインストールするのではない場合に、判断４５５５は「ｎｏ」分岐４５６５に分岐し、処理は判断４５１０にループ・バックして、コンピュータ・システムまたはリムーバブル・モジュールあるいはこの両方にインストールすべきオペレーティング・システムがまだあるかどうかを判定する。
【０２４３】
図４６は、コンピュータ・システムまたはモジュールあるいはその両方にアプリケーションをインストールする処理を示す流れ図である。処理は４６００で開始され、判断４６１０で、コンピュータ・システムまたはリムーバブル・モジュールのいずれかにインストールすべきアプリケーションがまだあるかどうかに関する判定を行う。インストールすべきアプリケーションがもうない場合には、判断４６１０は「ｎｏ」分岐４６１５に分岐し、４６９９で処理が終了する。
【０２４４】
インストールすべきアプリケーションがまだある場合には、判断４６１０は「ｙｅｓ」分岐４６２０に分岐し、判断４６２５で、次のアプリケーションを、リムーバブル・モジュールの不揮発性ストレージおよびコンピュータ・システムの不揮発性ストレージの両方にインストールするかどうかに関する判定を行う。アプリケーションを、リムーバブル・モジュールの不揮発性ストレージおよびコンピュータ・システムの不揮発性ストレージの両方にインストールする場合には、判断４６２５は「ｙｅｓ」分岐４６３０に分岐し、ステップ４６７０で、アプリケーションを、コンピュータ・システムのマザーボード上の不揮発性ストレージにインストールする。ステップ４６７５で、アプリケーションのランニング・イメージを、モジュールの不揮発性ストレージにインストールする。処理は判断４６１０にループ・バックして、インストールすべきアプリケーションがまだあるかどうかを判定する。
【０２４５】
アプリケーションが、リムーバブル・モジュールの不揮発性ストレージおよびコンピュータ・システムの不揮発性ストレージの両方にインストールされるのではない場合には、判断４６２５が「ｎｏ」分岐４６３５に分岐し、判断４６４０で、アプリケーションをコンピュータ・システムのマザーボードの不揮発性ストレージにインストールするかどうかに関する判定を行う。アプリケーションが、コンピュータ・システムのマザーボードの不揮発性ストレージにインストールされる場合には、判断４６４０は「ｙｅｓ」分岐４６４５に分岐し、ステップ４６８０で、アプリケーションを、コンピュータ・システムの不揮発性ストレージにインストールする。
【０２４６】
アプリケーションが、コンピュータ・システムのマザーボードの不揮発性ストレージにインストールされるのではない場合には、判断４６４０は「ｎｏ」分岐４６５０に分岐し、判断４６５５で、アプリケーションをリムーバブル・モジュールの不揮発性ストレージにインストールするかどうかに関する判定を行う。アプリケーションをモジュールの不揮発性ストレージにインストールする場合には、判断４６５５は「ｙｅｓ」分岐４６６０に分岐し、ステップ４６８５で、アプリケーションのランニング・イメージを、リムーバブル・モジュールの不揮発性ストレージにインストールする。
【０２４７】
アプリケーションを、モジュールの不揮発性ストレージにインストールするのではない場合に、判断４６５５は「ｎｏ」分岐４６６５に分岐し、処理は判断４６１０にループ・バックして、コンピュータ・システムまたはリムーバブル・モジュールあるいはこの両方にインストールすべきアプリケーションがまだあるかどうかを判定する。
【０２４８】
図４７は、コンピュータ・システムまたはモジュールあるいはその両方にＣＰＵをインストールする処理を示す流れ図である。処理は４７００で開始され、判断４７１０で、コンピュータ・システムまたはリムーバブル・モジュールのいずれかにインストールすべきＣＰＵがまだあるかどうかに関する判定を行う。インストールすべきＣＰＵがもうない場合には、判断４７１０は「ｎｏ」分岐４７１５に分岐し、処理は４７９９で終了する。
【０２４９】
インストールすべきＣＰＵがまだある場合には、判断４７１０は「ｙｅｓ」分岐４７２０に分岐し、判断４７２５で、次のＣＰＵをリムーバブル・モジュールとコンピュータ・システムの両方にインストールするかどうかに関する判定を行う。ＣＰＵをリムーバブル・モジュールとコンピュータ・システムの両方にインストールする場合には、判断４７２５は「ｙｅｓ」分岐４７３０に分岐し、ステップ４７７０で、ＣＰＵをコンピュータ・システムのマザーボードにインストールする。ステップ４７７５で、ＣＰＵをモジュールにインストールする。処理は判断４７１０にループ・バックし、インストールすべきＣＰＵがまだあるかどうかを判定する。
【０２５０】
ＣＰＵをリムーバブル・モジュールとコンピュータ・システムの両方にインストールするのではない場合には、判断４７２５は「ｎｏ」分岐４７３５に分岐し、判断４７４０で、ＣＰＵをコンピュータ・システムのマザーボードにインストールするかどうかに関するもう１つの判定を行う。ＣＰＵをコンピュータ・システムのマザーボードにインストールする場合には、判断４７４０は「ｙｅｓ」分岐４７４５に分岐し、ステップ４７８０で、コンピュータ・システムにＣＰＵをインストールする。
【０２５１】
ＣＰＵをコンピュータ・システムのマザーボードにインストールしない場合には、判断４７４０は「ｎｏ」分岐４７５０に分岐し、判断４７５５で、ＣＰＵをリムーバブル・モジュールにインストールするかどうかに関するもう１つの判定を行う。ＣＰＵをモジュールにインストールする場合には、判断４７５５は「ｙｅｓ」分岐４７６０に分岐し、ステップ４７８５で、ＣＰＵをリムーバブル・モジュールにインストールする。
【０２５２】
ＣＰＵをモジュールにインストールしない場合には、判断４７５５は「ｎｏ」分岐４７６５に分岐し、判断４７１０で、コンピュータ・システムまたはリムーバブル・モジュールあるいはその両方にインストールすべきＣＰＵがまだあるかどうかを判定する。
【０２５３】
図４８は、本明細書に記載の動作を実行することができるコンピュータ・システムの単純化された例である情報処理システムを示すブロック図である。
【０２５４】
図４８には、情報処理システム４８０１が示されており、情報処理システム４８０１は、本明細書に記載のコンピューティング動作を実行できるコンピュータ・システムの単純化された例である。コンピュータ・システム４８０１には、ホスト・バス４８０２に結合されたプロセッサ４８００が含まれる。レベル２（Ｌ２）キャッシュ・メモリ４８０４も、ホスト・バス４８０２に結合される。ホスト−ＰＣＩブリッジ４８０６は、メイン・メモリ４８０８に結合され、ホスト−ＰＣＩブリッジ４８０６には、キャッシュ・メモリおよびメイン・メモリ制御機能が含まれ、ホスト−ＰＣＩブリッジ４８０６によって、ＰＣＩバス４８１０、プロセッサ４８００、Ｌ２キャッシュ４８０４、メイン・メモリ４８０８、およびホスト・バス４８０２の間での転送を処理するバス制御が提供される。メイン・メモリ４８０８は、ホスト−ＰＣＩブリッジ４８０６ならびにホスト・バス４８０２に結合される。ＬＡＮカード４８３０など、ホスト・プロセッサ４８００だけによって使用されるデバイスは、ＰＣＩバス４８１０に結合される。サービス・プロセッサ・インターフェースおよびＩＳＡアクセス・パススルー４８１２によって、ＰＣＩバス４８１０とＰＣＩバス４８１４の間のインターフェースが提供される。この形で、ＰＣＩバス４８１４が、ＰＣＩバス４８１０から隔離される。フラッシュ・メモリ４８１８などのデバイスが、ＰＣＩバス４８１４に結合される。一実施形態では、フラッシュ・メモリ４８１８に、さまざまな低水準システム機能およびシステム・ブート機能の必要なプロセッサ実行可能コードが組み込まれたＢＩＯＳコードが含まれる。
【０２５５】
ＰＣＩバス４８１４によって、たとえばフラッシュ・メモリ４８１８を含む、ホスト・プロセッサ４８００およびサービス・プロセッサ４８１６によって共用されるさまざまなデバイスのインターフェースが提供される。ＰＣＩ−ＩＳＡブリッジ４８３５によって、ＰＣＩバス４８１４とＩＳＡバス４８４０の間の転送を制御するバス制御、universal serial bus（ＵＳＢ）機能４８４５、電源管理機能４８５５が提供され、ＰＣＩ−ＩＳＡブリッジ４８３５に、リアルタイム・クロック（ＲＴＣ）、ＤＭＡ制御、割り込みサポート、およびシステム管理バス・サポートなどの図示されていない他の機能要素を含めることができる。不揮発性ＲＡＭ４８２０が、ＩＳＡバス４８４０に接続される。サービス・プロセッサ４８１６に、初期化ステップ中にプロセッサ４８００と通信するＪＴＡＧおよびＩ２Ｃバス４８２２が含まれる。ＪＴＡＧ／Ｉ２Ｃバス４８２２は、Ｌ２キャッシュ４８０４、ホスト−ＰＣＩブリッジ４８０６、およびメイン・メモリ４８０８にも結合され、プロセッサ、サービス・プロセッサ、Ｌ２キャッシュ、ホスト−ＰＣＩブリッジ、およびメイン・メモリの間の通信パスを提供する。サービス・プロセッサ４８１６は、情報処理デバイス４８０１の電源を切るためにシステム電源リソースへのアクセスも有する。
【０２５６】
周辺デバイスおよび入出力デバイスは、さまざまなインターフェース（たとえば、ＩＳＡバス４８４０に結合された、パラレル・インターフェース４８６２、シリアル・インターフェース４８６４、キーボード・インターフェース４８６８、およびマウス・インターフェース４８７０）に接続することができる。別法では、多数の入出力デバイスに、ＩＳＡバス４８４０に接続されたスーパー入出力コントローラ（図示せず）によって対処することができる。
【０２５７】
コンピュータ・システム４８０１を別のコンピュータ・システムに接続して、ネットワークを介してファイルをコピーするために、ＬＡＮカード４８３０が、ＰＣＩバス４８１０に結合される。同様に、電話回線接続を使用してインターネットに接続するためにコンピュータ・システム４８０１をＩＳＰに接続するために、モデム４８７５が、シリアル・ポート４８６４およびＰＣＩ−ＩＳＡブリッジ４８３５に接続される。
【０２５８】
図４８に示されたコンピュータ・システムは、本明細書に記載の処理を実行することができるが、このコンピュータ・システムは、単にコンピュータ・システムの１つの例である。多数の他のコンピュータ・システム設計によって、本明細書に記載の処理を実行できることを、当業者は理解するであろう。
【０２５９】
本発明の好ましい実施形態の１つは、アプリケーションすなわち、たとえばコンピュータのランダム・アクセス・メモリに常駐することができる、コード・モジュール内の命令の組（プログラム・コード）である。コンピュータによって要求されるまで、命令の組を、別のコンピュータ・メモリ、たとえばハード・ディスク・ドライブ、あるいは光ディスク（ＣＤ  ＲＯＭでの最終的な使用のための）またはフロッピ・ディスク（フロッピ・ディスク・ドライブでの最終的な使用のための）などの取外し可能媒体に記憶するか、インターネットまたは他のコンピュータ・ネットワークを介してダウンロードすることができる。したがって、本発明は、コンピュータで使用されるコンピュータ・プログラム製品として実施することができる。さらに、説明したさまざまな方法は、ソフトウェアによって選択的にアクティブ化または再構成される汎用コンピュータで便利に実施されるが、当業者は、そのような方法を、ハードウェアで、ファームウェアで、または必要な方法ステップを実行するように構成されたより特殊化された装置で実行できることを理解するであろう。
【０２６０】
本発明の特定の実施形態を図示し、説明したが、本明細書の教示に基づいて、本発明およびその広義の態様から逸脱せずに変更および修正を行うことができ、したがって、特許請求の範囲には、本発明の趣旨および範囲に含まれるそのような変更および修正のすべてが含まれることは、当業者に明らかである。さらに、本発明が、特許請求の範囲のみによって定義されることを理解されたい。特定の数の導入される請求要素が意図される場合に、そのような意図が、請求項に明示的に列挙され、そのような列挙がない場合に、制限が存在しないことを、当業者は理解するであろう。
【図面の簡単な説明】
【０２６１】
【図１】２つのコンピュータ・システムの間で交換できるリムーバブル・オペレーティング・システム・モジュールを示すブロック図である。
【図２】オペレーティング・システムのランニング・イメージが記憶される不揮発性ストレージおよびＣＰＵを含むモジュールを受け入れるように適合されたコンピュータ・システムを示すブロック図である。
【図３】オペレーティング・システムのランニング・イメージが記憶される不揮発性ストレージを含むモジュールを受け入れるように適合されたコンピュータ・システムを示すブロック図である。
【図４】リムーバブル・オペレーティング・システム・モジュールをコンピュータ・システムに挿入された状態およびこれを挿入されない状態のコンピュータ・システムの状態を示すブロック図である。
【図５】コンピュータ・システムへのリムーバブル・オペレーティング・システム・モジュールの挿入および取外しの処理を示す流れ図である。
【図６】リムーバブル・オペレーティング・システム・モジュールを検出し、オペレーティング・システム・ランニング・イメージをロードし、オペレーティング・システムに制御を渡す、ＢＩＯＳの処理を示す流れ図である。
【図７】コンピュータ・システムに接続されたローカル・デバイスを発見する処理を    示す流れ図である。
【図８】コンピュータ・システムによってアクセス可能なリモート・デバイスを発見する処理を示す流れ図である。
【図９】コンピュータ・システム上で実行されるアプリケーションを初期化する処理    を示す流れ図である。
【図１０】オペレーティング・システム・ランニング・イメージがロードされた後にオペレーティング・システムを管理する処理を示す流れ図である。
【図１１】モジュールの取外しの前の、リムーバブル・オペレーティング・システム・モジュールにオペレーティング・システム状態を保存する処理を示す流れ図である。
【図１２】オペレーティング・システム／アプリケーション・モジュールがコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。
【図１３】リムーバブル・オペレーティング・システム／アプリケーション・モジュールのコンピュータ・システムへの挿入および取外しの処理を示す流れ図である。
【図１４】コンピュータ・システムで実行されるローカル・アプリケーションを初期化する処理を示す流れ図である。
【図１５】コンピュータ・システムで実行されるモジュール（モジュールに記憶された）アプリケーションを初期化する処理を示す流れ図である。
【図１６】モジュールの取外しの前にモジュール・アプリケーションをリムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶する処理を示す流れ図である。
【図１７】モジュールの取外しの前にアプリケーション状態をリムーバブル・オペレーティング・システム／アプリケーション・モジュールに記憶する処理を示す流れ図である。
【図１８】ＣＰＵモジュールがコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。
【図１９】コンピュータ・システムへのリムーバブルＣＰＵモジュールの挿入および取外しの処理を示す流れ図である。
【図２０】リムーバブルＣＰＵモジュールを検出し、モジュール上のＣＰＵとコンピュータ・システムの互換性を判定する、ＢＩＯＳの処理を示す流れ図である。
【図２１】オペレーティング・システム・ランニング・イメージをロードし、ＣＰＵを使用するオペレーティング・システムの実行を開始する、ＢＩＯＳの処理を示す流れ図である。
【図２２】ＣＰＵモジュール（第２ＣＰＵを含む）がコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。
【図２３】組込みＣＰＵを含むコンピュータ・システムへのリムーバブルＣＰＵモジュールの挿入および取外しの処理を示す流れ図である。
【図２４】第２ＣＰＵにアクセスし、副ＣＰＵに負荷の一部を分配する、オペレーティング・システムの処理を示す流れ図である。
【図２５】オペレーティング・システム／ＣＰＵモジュールがコンピュータ・システムに挿入された状態および挿入されない状態のコンピュータ・システムの状態を示すブロック図である。
【図２６】リムーバブル・オペレーティング・システム／ＣＰＵモジュールのコンピュータ・システムへの挿入および取外しの処理を示す流れ図である。
【図２７】リムーバブル・オペレーティング・システム／ＣＰＵモジュールを検出し、モジュール上のオペレーティング・システムおよびＣＰＵとコンピュータ・システムの互換性を判定する、ＢＩＯＳの処理を示す流れ図である。
【図２８】コンピュータ・システムへのデバイスの接続と、デバイス上の不揮発性ストレージからコンピュータ・システムへのデバイス・ドライバの転送を示すブロック図である。
【図２９】コンピュータ・システムにデバイスを接続し、デバイス上の不揮発性ストレージからコンピュータ・システムにデバイス・ドライバを転送する処理を示す流れ図である。
【図３０】サーバに記憶されたデバイスのデバイス・ドライバに関する情報を入手するための、リモート・デバイス・ドライバ・レジストリ・サーバとのコンピュータ・システムのＸＭＬなどのポータブル言語での通信を示すブロック図である。
【図３１】サーバに記憶されたデバイスのデバイス・ドライバに関する情報を入手するための、リモート・デバイス・ドライバ・レジストリ・サーバとのＸＭＬなどのポータブル言語でのコンピュータ・システム通信の処理を示す流れ図である。
【図３２】コンピュータ・システムとリモート・サーバ／デバイスの間の通信を確立する処理を示す流れ図である。
【図３３】デバイスへの許可されないアクセスを防ぐセキュリティ・デバイスを含むリムーバブル・オペレーティング・システム・モジュールを示すブロック図である。
【図３４】モジュールのセキュリティ・デバイスを使用して、リムーバブル・オペレーティング・システム・モジュールへの許可されないアクセスを防ぐ処理を示す流れ図である。
【図３５】モジュール上の指紋スキャナを使用してリムーバブル・オペレーティング・システム・モジュールを保護する方法を示す流れ図である。
【図３６】モジュール上の網膜スキャナを使用してリムーバブル・オペレーティング・システム・モジュールを保護する方法を示す流れ図である。
【図３７】パスワードを入力する、モジュール上のキーパッドを使用してリムーバブル・オペレーティング・システム・モジュールを保護する方法を示す流れ図である。
【図３８】コンピュータ・システムを介してユーザによって供給されるセキュリティ・データを使用して、リムーバブル・オペレーティング・システム・モジュールへの許可されないアクセスを防ぐ処理を示す流れ図である。
【図３９】リムーバブル・モジュールの製造／プログラミングを示すブロック図である。
【図４０】リムーバブル・オペレーティング・システム・モジュールの製造およびプログラミングの処理を示す流れ図である。
【図４１】ランニング・オペレーティング・システム・インストール・ファイルを使用してユーザがリムーバブル・オペレーティング・システム・モジュールをプログラムする処理を示す流れ図である。
【図４２】ランニング・オペレーティング・システム更新インストール・ファイルを使用してユーザがリムーバブル・オペレーティング・システム・モジュールを更新する処理を示す流れ図である。
【図４３】モジュール・インターフェースを有するパーソナル・コンピュータを示すブロック図である。
【図４４】モジュール・インターフェースと、モジュール・インターフェースに接続される異なる構成オプションを有するモジュールとを有するパーソナル・コンピュータを製造する処理を示す流れ図である。
【図４５】コンピュータ・システムまたはモジュールあるいはその両方にオペレーティング・システムをインストールする処理を示す流れ図である。
【図４６】コンピュータ・システムまたはモジュールあるいはその両方にアプリケーションをインストールする処理を示す流れ図である。
【図４７】コンピュータ・システムまたはモジュールあるいはその両方にＣＰＵをインストールする処理を示す流れ図である。
【図４８】本明細書に記載の動作を実行することができるコンピュータ・システムの単純化された例である情報処理システムを示すブロック図である。
【符号の説明】
【０２６２】
２０１  コンピュータ・システム
２０２  ホスト・バス
２０４  レベル２（Ｌ２）キャッシュ・メモリ
２０６  ホスト−ＰＣＩブリッジ
２０８  メイン・メモリ
２１０  ＰＣＩバス
２１２  サービス・プロセッサ・インターフェースおよびＩＳＡアクセス・パススルー
２１４  ＰＣＩバス
２１６  サービス・プロセッサ
２１８  フラッシュ・メモリ
２２０  不揮発性ＲＡＭ
２２２  ＪＴＡＧおよびＩ２Ｃバス
２９０  リムーバブル・モジュール
２９２  不揮発性ＲＡＭ
２９４  ＣＰＵ
２９４’  オペレーティング・システム・ランニング・イメージ
【図１】
0004608265.tif 000002
【図２】
0004608265.tif 000003
【図３】
0004608265.tif 000004
【図４】
0004608265.tif 000005
【図５】
0004608265.tif 000006
【図６】
0004608265.tif 000007
【図７】
0004608265.tif 000008
【図８】
0004608265.tif 000009
【図９】
0004608265.tif 000010
【図１０】
0004608265.tif 000011
【図１１】
0004608265.tif 000012
【図１２】
0004608265.tif 000013
【図１３】
0004608265.tif 000014
【図１４】
0004608265.tif 000015
【図１５】
0004608265.tif 000016
【図１６】
0004608265.tif 000017
【図１７】
0004608265.tif 000018
【図１８】
0004608265.tif 000019
【図１９】
0004608265.tif 000020
【図２０】
0004608265.tif 000021
【図２１】
0004608265.tif 000022
【図２２】
0004608265.tif 000023
【図２３】
0004608265.tif 000024
【図２４】
0004608265.tif 000025
【図２５】
0004608265.tif 000026
【図２６】
0004608265.tif 000027
【図２７】
0004608265.tif 000028
【図２８】
0004608265.tif 000029
【図２９】
0004608265.tif 000030
【図３０】
0004608265.tif 000031
【図３１】
0004608265.tif 000032
【図３２】
0004608265.tif 000033
【図３３】
0004608265.tif 000034
【図３４】
0004608265.tif 000035
【図３５】
0004608265.tif 000036
【図３６】
0004608265.tif 000037
【図３７】
0004608265.tif 000038
【図３８】
0004608265.tif 000039
【図３９】
0004608265.tif 000040
【図４０】
0004608265.tif 000041
【図４１】
0004608265.tif 000042
【図４２】
0004608265.tif 000043
【図４３】
0004608265.tif 000044
【図４４】
0004608265.tif 000045
【図４５】
0004608265.tif 000046
【図４６】
0004608265.tif 000047
【図４７】
0004608265.tif 000048
【図４８】
0004608265.tif 000049