JP2009544072A - アプライアンスの仮想化のための方法と装置 - Google Patents

アプライアンスの仮想化のための方法と装置 Download PDF

Info

Publication number
JP2009544072A
JP2009544072A JP2009519592A JP2009519592A JP2009544072A JP 2009544072 A JP2009544072 A JP 2009544072A JP 2009519592 A JP2009519592 A JP 2009519592A JP 2009519592 A JP2009519592 A JP 2009519592A JP 2009544072 A JP2009544072 A JP 2009544072A
Authority
JP
Japan
Prior art keywords
appliance
application
personal computer
server
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009519592A
Other languages
English (en)
Inventor
ベネディクト ティー チョーン
マーク エム リー
フィリップ シュウ
ロバート ピー ハー
トーマス ドゥオン
ビクター イー チン
ウエンチー ファーン
シュイン ファーン
ユイチュン ルゥ
Original Assignee
デバイス ヴィーエム インク
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38924040&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2009544072(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by デバイス ヴィーエム インク filed Critical デバイス ヴィーエム インク
Publication of JP2009544072A publication Critical patent/JP2009544072A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

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

Abstract

アプライアンスの仮想化のための方法と装置は、パーソナル・コンピュータのシステム・ブートROMに含まれる組み込みオペレーティング・システム(OS)を提供する。システムがブートすると、OSは、起動されて、全ての利用可能な仮想アプライアンスを、例えば、次の場所:ローカルUSB、フラッシュ・カード(例えば、SD、xD、CF、CDROM/DVD)、または、他のストレージ・メディア、ローカル・ハードディスク・ストレージ、そして、インターネット(例えば、アプライアンス・サーバ)、から探す。ユーザはOSから使用するアプライアンスを選択し、アプライアンスはロードされ、起動される。選択されたアプライアンスがローカル・ストレージにない場合、例えば、アプライアンス・サーバからインターネットが通じてダウンロードされる。次回の必要時のために、アプライアンス・サーバからダウンロードする必要がないように、ダウンロードされたアプライアンスはローカル・ストレージ・メディアにキャッシュさせてもよい。オペレーティング・システムおよびハードディスクがインストールされている場合、ユーザは、ハードディスクからオペレーティング・システムのブート、または、システムのパワーオフを選ぶことができる。

Description

本発明は仮想化に関する。特に、本発明は、アプライアンスの仮想化のための方法と装置に関する。
先行技術の説明
関連出願
この出願は、アメリカ合衆国暫定特許出願第60/806,915号(出願日:7/10/06)および、第60/890,121号(出願日:2/15/07)の優先権を請求するものであり、その各々は、参照によって完全に本願明細書に組み入れられている。
コンピュータ処理において、仮想化は、コンピュータ・リソースの抽象化を指す幅広い用語である。1つの実用的な定義は、コンピュータ処理のリソースの物理的特性を、そのリソースと相互作用する他のシステム、アプリケーションまたはエンド・ユーザから隠蔽するための技法である。これは、単一の物理リソース(例えば、サーバ、オペレーティング・システム、アプリケーションまたはストレージ・デバイス)を、複数の論理リソースとして機能するように見せかけたり、または、複数の物理リソース、例えばストレージ・デバイスまたはサーバを、単一の論理リソースとして見せかけたりできる。ウィキペディアを参照する。
しかしながら、この用語は、古いものである。仮想化という用語は、1960年代またはそれ以前から広く使われ、コンピュータ・システム全体から個々の機能またはコンポーネントまで、コンピュータ処理の多くの異なる態様および領域に適用されてきた。全ての仮想化技術の共通のテーマは、カプセル化によって、技術的な詳細を隠蔽することである。仮想化は、例えばアクセスを多重化したり、異なる物理的位置でリソースを統合したり、または、制御システムを単純化することによって、根底にある実装を隠蔽する外部インタフェースを生成する。新たな仮想化のプラットホームおよび技術の最近の開発は、この成熟した概念について再び注目を集めるようになってきた。
どのようにして完全なハードウェア・シミュレーションが実装されるのか、下記に挙げる、プラットホーム仮想化へのいくつかのアプローチがある。以下の用語は、それ自体一般的に認識されるものではないが、根底にある概念は、全て文献に見てとれるものである。
エミュレーションまたはシミュレーション:仮想マシンは、完全なハードウェアをシミュレーションするもので、全く異なるCPUのゲストOSを修正することなしに、動作させることができる。このアプローチは、新たなプロセッサが物理的に利用可能になる前に、そのプロセッサ向けのソフトウェアの作成を可能にするために、長い間用いられてきた。具体例としては、Bochs、PearPC、仮想PCのPowerPCバージョン、アクセラレーションのないQEMU、かつ、Herculesエミュレータなどを含む。エミュレーションは、ステートマシンから十分な仮想化プラットホーム上の動的な再コンパイルの使用まで、様々な技法を用いて実装される。
ネイティブ仮想化およびフル仮想化:仮想マシンは、修正されていないゲストOS(すなわち、同じCPUのために設計されたもの)が、分離して動作することを可能にするのに十分なハードウェアをシミュレートする。一般的に、多くのインスタンスは、すぐに動作させることができる。このアプローチは、1966年のCP-40およびCP[-67]/CMS(IBMのVMファミリーの先行するもの)が起源とされる。実施例は、VirtualBox、Virtual Iron、Virtual PC、VMware Workstation、VMware Server(以前は、GSX Server)、VMware ESX Server、QEMU、Paralles Desktop、Adeos、Mac-on-Linux、Win4BSD、Win4Lin Pro、かつ、z/VMを包含する。
アドレス空間の仮想化を含む部分仮想化:仮想マシンは、根底にあるハードウェア環境、特にアドレス空間に、全てではなく、多くの複数のインスタンスをシミュレーションする。このような環境は、資源の共有および処理の分離をサポートするが、ゲスト・オペレーティング・システム・インスタンスを分割することは出来ない。一般に、仮想マシンのカテゴリとして本質的に見なされないが、これは、歴史的に重要なアプローチであって、CTSS、実験的なIBM M44/44Xのようなシステム、おそらくOS/VS1、OS/VS2およびMVSのようなシステムで使用された。多くのより最近のシステム(例えば、Microsoft Windows(登録商標)およびLinux、下記の残りのカテゴリも)は、この基本的なアプローチを使用する。
準仮想化(Paravirtualization):仮想マシンは、ハードウェアを必ずしもシミュレーションするというわけではなくて、代わりに、または、それに加えて、ゲストOSを修正することによって使用することが可能となる特殊なAPIを提供する。ハイパーバイザのこのシステムコールは、Xen、Parallels WorkstationおよびEnomalismのハイパーコール(hypercall)と呼ばれる。IBMのVMのもとにCMSのDIAG(「diagnose」)ハードウェア命令を介して実装され、ハイパーバイザという用語の起源とされる。実施例は、Win4Lin 9x、Sun MicrosystemsのLogical Domains、および、z/VMを包含する。
オペレーティング・システム・レベルの仮想化:オペレーティング・システム・レベルで物理サーバを仮想化し、複数の独立かつ安全な仮想化されたサーバが単一の物理サーバ上で動作することを可能にする。ゲストOS環境は、ホストシステムと同じOSを共有する。すなわち、同じOSカーネルがゲスト環境を実装するために用いられる。所定のゲスト環境で動作しているアプリケーションからは、それがスタンドアロンシステムに見える。実施例は、Linux-VServer、Virtuozzo(Windows(登録商標)またはLinux用の)、OpenVZ、Solaris Containers、および、フFreeBSD Jailsである。
アプリケーションの仮想化:適切な仮想マシン内のローカル・リソースを用いて、ローカルにデスクトップまたはサーバ・アプリケーションを動作させる。これは、従来のローカル・ソフトウェア(すなわち、システム上にインストールされたソフトウェア)としてのアプリケーションを動作させることと対照的である。レジストリ・エントリ、ファイル、環境変数、ユーザ・インタフェース要素およびグローバル・オブジェクトのような、仮想化されたアプリケーションは、実行するために必要なコンポーネントを含んでいる小さい仮想環境で動作する。この仮想環境は、アプリケーションとオペレーティング・システムの間の層としての役割を果たし、アプリケーションのコンフリクトおよびアプリケーション-OSのコンフリクトを取り除く。実施例は、Sun Java(登録商標) Virtual Machine、Softricity、Thinstall、AltirisおよびTrigenceを包含する。
仮想化に対する関心あれば、アプライアンスの仮想化のための方法と装置を提供することは有利であろう。
本発明は、アプライアンスの仮想化のための方法と装置を提供する。好ましい本実施例において、組み込みオペレーティング・システム(OS)は、パーソナル・コンピュータのシステム・ブートROMに含まれる。組み込みOSは、素早くブートし、ネットワーク・アクセスおよび場合によってはグラフィックディスプレイに必要なドライバをインストールする。ブート・プロセスは、インスタント・オンで出現するのに~3秒を要する。そして、組み込みOSは、仮想アプライアンスを検索しかつそれを実行するために、直ちにネットワークにアクセスする、あるいは、BIOS ROMまたは他のストレージ・メディアから仮想アプライアンスを検索してもよい。一般に、仮想アプライアンスのBIOS ROMは、電子プログラミング・ガイド(EPG)である。使用が簡単かつ直観的であるという点で、EPGはセット・トップ・ボックスによって提供されるものと類似している。EPGは、システムがブートするときに、ユーザが見る第一のイメージである。例えば、EPGは、以下の場所:ローカルUSB、フラッシュ・カード(例えば、SD、xD、CF、CDROM/DVDまたは他のストレージ・メディア);ローカル・ハードディスク・ストレージ;インターネット(例えば、アプライアンス・サーバ)、から利用可能な全ての仮想アプライアンスを表示する。本願明細書に開示される組み込みOSについては、ユーザはEPGから使用するアプライアンスを選択し、そこで、アプライアンスはロードされ、実行される。選択されたアプライアンスがローカル・ストレージにない場合には、例えば、アプライアンス・サーバからインターネットを通じて、ダウンロードされる。次回必要なときに、アプライアンス・サーバからダウンロードする必要がないように、ダウンロードされたアプライアンスはローカル・ストレージ・メディアにキャッシュしてもよい。オペレーティング・システムおよびハードディスクがインストールされる場合、ユーザは、ハードディスクからオペレーティング・システムのブート、または、システムのパワーオフを選ぶことができる。
ユーザ待ち時間を減らすために、本発明により仮想アプライアンスをどのようにして部分的にダウンロードしかつ実行するかについてのプロセス・フローを示すフローチャートである。 本発明により、データ/アプリケーションの部分を格納し、キャッシュするためのモデルを示すブロック略図である。 本発明によるシステム・サーバ・バックエンドを示すブロック略図である。 本発明による好適なシステム・アーキテクチャを示すブロック略図である。 本発明により、VMソフトウェア・スタックおよびスタックの部分がどこに存在するかを示すブロック略図である。 本発明により、VMブートローダおよび関連するモジュールを示しているブロック略図である。 エミュレートディスクによりリアルモード操作をするための本発明のメモリスタックの略図である。 固定的なメモリ・アドレスによりリアルモード操作をするための本発明のメモリスタックの略図である。 エミュレートディスクによるリアルモード操作およびラージ・ポスト・ブート・ペイロードのための本発明のメモリスタックの略図である。 固定的なメモリ・アドレスによるリアルモード操作およびラージ・ポスト・ブート・ペイロードのための本発明のメモリスタックの略図である。 本発明により、仮想アプライアンスをダウンロードするためのクライアントとサーバの間のハンド・シェーキングを含む、BIOSポスト後のプロセスを示すフローチャートである。
(用語解説)
次の用語は、本願明細書においては下記で定義されるように使用される:
BIOS:パーソナル・コンピュータの最初のスタートアップ・コード
VA:仮想アプライアンスまたはアプリケーション
ROM:BIOSを含むパーソナル・コンピュータ・マザーボードのデバイス
VoIP:ボイスオーバーIP
P2P:ピア・ツー・ピア
EPG:電子番組ガイド(すなわち、仮想アプライアンスのリストを表示するグラフィカル・ユーザ・インタフェース)
NTF:例えば、Windows(登録商標) XPによって使用されるファイルシステム・フォーマット
MBR:マスター・ブート・レコード、第1番、例えば63、ハード・ドライブのセクタ。第1のセクタは、初期ブート・コードおよびパーティション・テーブルを含む。
(考察)
本発明の一実施例は、アプライアンスを使用するのと同様にパーソナル・コンピュータを使用することを可能にする。仮想アプライアンスをダウンロードして、動作することによって、パーソナル・コンピュータには、アプライアンスに似た機能およびインタフェースが与えられる。パーソナル・コンピュータは、シンプルでかつ使いやすいユーザ・インタフェースを有する専用の機能を果たすデバイスになる。本発明のこの実施例は、パーソナル・コンピュータが、例えば、次のことを行うことを可能にする、アプライアンス構成を提供する:
・ビデオ、映画、TVコンテンツのストリームの再生にテレビジョンアプライアンスをダウンロードする;
・オーディオ・コンテンツのストリームの再生にオーディオプレーヤアプライアンスをダウンロードする;
・ローカル・オーディオ/ビデオ・コンテンツの再生に、CD/VCD/DVDプレーヤアプライアンスをダウンロードする;かつ、
・このようなアプリケーションのための多種多様な、次のようなパーソナル・コンピュータ処理アプライアンスをダウンロードする:
・VoIP(例えば、Skypeなど)。
・ウェブの閲覧
・全般的なオフィス・タスク(例えばワード・プロセッシング、表計算ソフト)
・全般的なプロダクテビティ・タスク(例えば、カレンダー、タスク)
・電子通信(例えば、インスタント・メッセージング、電子メールなど)。
・全般的なパーソナル・コンピュータ・メンテナンスタスク(例えば、BIOSアップデート、診断、システム・バックアップおよびリストア)
・複合コンピュータ・サービス(例えば、リモート・コンプレックス診断、サポート・センターとの接続およびシステムのテクニカル・サポート制御)
・全般的な製品サポート・タスク(例えば、アップデート、トラブルシューティング)
・電子エンターテイメント(例えば、オンライン・ゲーム)
・OSがDVM組み込みOSと並列に動作することができるように、十分に発達したOS(例えば、Windows(登録商標))は、仮想化レイヤーでラップされる
・プライマリOSがバックグラウンドでブートすると共に、インスタント・オン環境の使用が可能になる
・完全にブートされ、ユーザがスイッチすると、プライマリOSがハードウェアへのアクセスに費やされることを可能にする。
これにより、本発明の本実施例は、真のメディア、エンターテイメントおよびプロダクテビティ・センターをデジタルホームに提供する。したがって、ハードディスクまたはインストールされたオペレーティング・システムが存在するか否かに拘わらず、本願明細書に開示される発明の技術によって、(例えば、ブートROMに)プレインストールされている如何なるパーソナル・コンピュータも、アプライアンスとして機能させることができる。
実装/具体化
電子番組ガイド(EPG)は、システム・ブートROMに含ませてもよい。使用が簡単かつ直観的であるという点で、EPGはセット・トップ・ボックスによって提供されるものと類似している。一実施例において、EPGは、ユーザが、EPGにワンクリック・パーソナリティを確立することを可能にする、ドッキング・パネル、アプリケーション起動バー、スクロールバー、ソフトキーまたは物理ボタンのようなスイッチング機構を備える。
システムは、ブート、または、カウントダウンの経過前に、ユーザが、インスタント・オンを選択すると、組み込みOSは起動する。全ての利用可能な仮想アプライアンスを、例えば、次の場所から探し、EPGに表示する:
・ローカルUSB、フラッシュ・カード(例えば、SD、xD、CF、CDROM/DVDまたは他のストレージ・メディア);
・ローカル・ハードディスク・ストレージ
・インターネット(例えば、アプライアンス・サーバ)
典型的なセット・トップ・ボックスのOSにおいて、ユーザは、再生するTVまたは映画コンテンツを選択する。本願明細書におけるEPGについては、ユーザは使用するアプライアンスを選択し、その後そのアプライアンスはロードされ、かつ起動される。選択されたアプライアンスがローカル・ストレージにない場合には、それは、例えば、アプライアンス・サーバからインターネットを通じて、ダウンロードされる。次回の必要時に、アプライアンス・サーバからダウンロードする必要がないように、ダウンロードされたアプライアンスはローカル・ストレージ・メディアにキャッシュさせてもよい。オペレーティング・システムおよびハードディスクがインストールされている場合、ユーザは、ハードディスクからオペレーティング・システムのブート、または、システムのパワーオフを選ぶことができる。
アプライアンスとは何であるか?
アプライアンスまたは仮想アプライアンスは、特定のタスクを遂行するのに必要であるすべてを含む自己内蔵型のバイナリ・パッケージである。例えば、VoIPアプライアンスは、インターネットに接続し、ユーザが他の仲間とトークするのに必要な全てのソフトウェアを含んでいる。このようなアプライアンスは、オペレーティング・システム、ネットワーク・スタック、デバイス・ドライバ、ユーザ・インタフェースおよびVoIPアプリケーションを含んでいてもよい。
ハードウェア依存性
この考察は、異なるハードウェア・プラットフォームをサポートする必要性について述べる。現在、排他的でない2つのソリューションがある。
第1のソリューションは、ブートROMに必要なデバイス・ドライバを格納することである。例えば、ほとんどの典型的なマザーボードは、ビデオ、オーディオおよびネットワークのデバイスを含んでいる。これらのデバイスのデバイス・ドライバは、ブートROMに格納してもよい。アプライアンスが起動され、その根底にあるオペレーティング・システムがデバイス・ドライバを必要とするときは、ブートROMからこれらのデバイス・ドライバをロードする。
第2のソリューションは、仮想マシン内のアプライアンスを動作させることである。全ての仮想マシンは正確な同じ仮想ハードウェアを持つので、全てのアプライアンスは同じ仮想ハードウェアを使用するために開発される。しかしながら、ハイパーバイザ(すなわち、仮想マシンオペレーティング・システム)は、さらに実際のハードウェアに対してトークすることを必要とする。この場合、ハイパーバイザは上記の第1のソリューションを用いてもよく、デバイス・ドライバはブートROMからロードされる。
パーソナライズされた経験
EPGは、パーソナライザーを含んでもよい。これによって、ユーザが好きなアプライアンスを選択するか、さもなければ、共通して使用されるアプライアンスへのアクセスの簡略化を改善することができる。例えば、最も共通して使用されるアプライアンスは、第1のスクリーン上に、または、利用可能なアプライアンスのリストの最上位で現れる。これは、これらのアプライアンスを起動するために、不必要なユーザ・ナビゲーションを回避する。パーソナライザーは、アプライアンスをユーザに知的に示唆してもよい。これは、類似した本または製品を提案するアマゾン・ドット・コム・システムに類似している。
アプリケーションをパーソナライズするために、構成データは、DVMサーバに送信される。サーバは、ユーザのシステムと互換性があるVAだけを選択するために、その情報を使用する。加えて、サーバはVAを最適化、または、診断の場合、適切な構成をセットアップするためにその情報を使用する。
一実施例において、複数のパーソナリティは、パーソナル・コンピュータの複数ユーザにも提供される。これは、根底にあるプラットホームから抽出されるソフトウェア・コンテナで動作することによって、より良好に分離できる。これらのコンテナは、ウイルス/スパムの二次感染、ドライバおよびOSバージョンなど、さまざまなアプリケーションの中のDLLと他のライブラリとの間の不一致を減らす効果がある。パーソナリティのインストールおよびアンインストールは、よりクリーンとなる(ファイルコピー/デリート操作を減少させる)。
どこで消費者がPCにアクセスしても、パーソナリティを使用するユーザの経験は、利用可能な同じ経験を作ることによってさらに強化してもよい。仮想化技術をコンテナのパーソナリティに提供することは、USBポートおよび適切な仮想化サポートをもつどのようなPC上のコンテナも開いて、モバイルアプライアンス(例えば、USBドライブ)上にコンテナを配置することを容易にする。例えば、システムは、主にオンラインからメディア・コンテンツをダウンロードして、さまざまなインタフェースを介してユーザにそれらのメディア・コンテンツを再生するためのパーソナリティを包含してもよい。メディア・コンテンツは、特定の国または文化であってよい。
他の実施例は、予備のスロットおよびリソースをリプレイス・パーソナリティに提供する。この実施例は、自動的にユーザ・プロファイルおよびユーザ・インタレストをコンパイルする。パーソナリティのユーザの選択に基づいて、プロファイルは、消費者(例えば、付加的なパーソナリティ、コンテンツ、製品、など)に他の付加価値サービスの推奨の方へ適用できるように確立される。システムは、自動的に探索し、情報をアップロードし、ユーザ・プロファイルおよび使用に基づいて関連するパーソナリティを提案してもよい。消費者に対するリベート、OEMに対する補助、使用に基づくアプリケーション・プロバイダ・サービスに対する収入(例えば、ボリュームベース、コンテンツごとの支払、サービスまたはソフトウェア・プロバイダ)は、システムに統合させてもよい。
他の実施例は、プロファイルに基づく構成、パーソナリティおよびパーソナリティのパッケージ(すなわち、予め構成されたパッケージ)を備える。本実施例において、特定のプロファイルのための推奨されたカスタマイズは、ブラウザの一組のお気に入りの構成、1つのパーソナリティ(例えば、一組のアプリケーションまたは一群のパーソナリティ)のようにシンプルでもよい。ユーザ・プロファイルは、例えば、次のような他のオンライン企業/コミュニティからの人口統計、関心またはデータに基づいてもよい:
・人口統計:年齢、性別、民族的背景、職業(例えば、学生、主婦など)
・関心ベース:ユーザ指定、または、その他の関心ベースの結びつき
・Netflix、Google、A9、Amazon、Yahoo、MSN、mySpace、del.icio.us、RSS/ブログの購読による結びつき
・パーソナリティのグループまたはシングル・パーソナリティ
・ユーザ・プロファイル、データまたは行動に基づいてショッピング・パーソナリティを提供する。ユーザがショッピング・パーソナリティを包含するパーソナリティのバンドルを選ぶ場合、ショッピング・パーソナリティは顧客に対しての付加価値(例えば、Home Depot/Lowe’sの代わりにPottery Barn/Crate & Barrellへのリンク)をプロファイルに基づいてさらにカスタマイズしてもよい
また、例えば、プロファイルに基づいて予め構成されかつパーソナライズされた、利用者選好、構成、スキンおよびお気に入りに対し、ツールが、提供される。異なるプロファイルに対するパーソナリティは、全く同一のアプリケーションを有するが、例えば、お気に入り、スキン、利用者選好および構成に対し、異なる設定を有してもよい。1つの例は、ティーンエイジャー対大学生プロファイルに対する異なるウェブサイトへの予め構成したリンクを有する、ブラウザ・パーソナリティである。ツールは、設定ファイルの作成およびパーソナリティへの異なる設定の配置を容易にすることが出来る。
本発明は、さらに、ドライバおよび周辺機器統合化キットを考察する。いくつかのパーソナリティは、周辺機器にバンドルしてもよい(例えば、VoIPパーソナリティがバンドルされたブルートゥース・ヘッドセット)。ドライバおよび周辺機器統合化キットは、周辺機器および装置ドライバが仮想マシン内部で適切かつ最適に機能することを可能にするための必要なツールを提供する。ツールは、複数の仮想マシンの間で、ある仮想マシンを適切に整合するようにさせてもよい(例えば、ジョイスティックをプロダクテビティ・パーソナリティにではなく、ゲーム・パーソナリティに対してだけ利用可能とする)。
マルチレイヤーEPG
BIOS ROM容量が極めて少ない場合、EPGには、組み込みOSが包含されない。または、ストレージ・スペースが問題でない場合、単一の完全なEPGを使用することが出来る。
一般に、ブートROMは、ごくわずかな容量しか有していない。したがって、マルチステージEPGが、使用される。システムがオフラインの場合、最初のEPGは、システムに格納される利用可能なVAの全てをインタフェースし、表示してもよい。システムがオンラインの場合には、最初のEPGの起動後、組み込みOSは、より多くのオプションおよびより良好なグラフィクスを有する第2レベルのEPGを検索する。
マルチレイヤーEPGにより良好なインスタント・オン・アピアランスを作成するために、最初のEPGが、オンラインで、アプライアンス・サーバに到達すると、それは、より完全なEPGをダウンロードすることができる。しかしながら、EPGのルック&フィールは、このプロセスの間、変化しないかもしれない。その結果、ユーザは、EPGがアップグレードされたことに気がつかない。
仮想アプライアンスのダウンロード
はじめに
EPGは、ユーザに利用可能な仮想アプライアンス(VA)のリストを示す。ユーザは、使用する仮想アプライアンスを選択する。VAがローカル・ストレージ(例えば、ハードディスクまたはUSBフラッシュドライブ)に予めキャッシュされている場合は、それは、メモリへロードされて、実行される。さもなければ、VAは、アプライアンス・サーバ(DAS)からダウンロードされる。
最適化
起動時間を短くする1つのアプローチは、仮想マシンおよびそのアプリケーションを、少しずつロードすることができるブロックに分割することである。最初、全体の仮想マシンおよびアプリケーションコードではなく、必要とされるブロックだけが、ハード・ドライブからロードされる。
ドライバ最適化は、特定のパーソナリティ要求に使用してもよい。例えば、一実施例は、ドライバ再利用(例えば、既存のドライバ用のラッパー)を考察する。特定のパーソナリティは、標準の仮想化されたI/O手段により、利用可能なより高いI/Oスループットを必要としてもよい。1つの例は、ゲーム・パーソナリティである。そして、それはグラフィックスチップと入出力を行うより高いI/Oスループットを必要とする。ゲーム・パーソナリティは、I/Oサブシステムおよびグラフィックスチップに直接、または、優先してアクセスできる一般的な仮想グラフィクス・ドライバの代わりに、特別なグラフィクス・ドライバを使用してもよい。
他の最適化は、コア・コードを共有することによって、各パーソナリティの必要なディスクスペースを減らすことである。例えば、同じゲストOSを使用しているパーソナリティは、共通のゲストOS以外の付加的なアプリケーションおよびドライバだけを含んでもよい。ゲストOSの1つのコピーだけが、読取り専用として格納され、複数のパーソナリティによって共有される。
最適化されたOSイメージ(例えば、メモリ管理を有していないシングルタスク、ノー・ポストなど)を、使用してもよい。この実施例は、パーソナリティのアプリケーションが機能するために必要とされるサービスだけを含めるために、ゲストOSの余分な機能を取り除く。このことは、パーソナリティをより小さく、より速くする。パーソナリティ開発キットは、パーソナリティ開発者がOSを生成、または、余分な機能を取り除くのを援助するためのツールを含んでもよい。
ネットワーク最適化
発明者に直面したさらなる挑戦は、仮想アプライアンスをダウンロードするために必要な時間である。明らかに、ユーザは、直ちにVAを使用することができることを期待する。ダウンロード時間は、ネットワーク速度およびVAのサイズに依存する。以下の説明は、さまざまなダウンロードに予想される展開および最適化に対処する。ネットワークの最適化に対処する次のような各種実施形態がある:
第1のアプローチは、DVMアプライアンス・サーバ(DAS)がローカルに存在するということである。例えば、ユーザが台湾にいて、DASが合衆国にある場合、ダウンロードは非常に遅い。その結果、EPGは、ローカル、または、国内にあるサーバに、常にリダイレクトされる。EPGは、次に、EPGが動作しているパーソナル・コンピュータのIPアドレスに注目して、発信元の国または領域を決定し、メインDASにアクセスする。すべての言語は、各ローカル・サーバでサポートされる。これにより、ユーザ/ログイン情報を使用して、ユーザがリダイレクトされるローカル・サーバに関係なく、サーバは望ましい言語を表示する。国内、または、ローカル・サーバのIPアドレスを含んでいるリダイレクション・パケットが、ローカル・サーバに接続するためのリダイレクション・パケットに含まれる情報を使用するEPGに送信される。
第2のアプローチは、VAを一つ以上のサーバからダウンロードすることである。
他のアプローチは、ピア・ツー・ピア(P2P)ダウンロードを使用することである。ダウンロードされたVAが、ローカル(例えば、ハードディスクまたはUSBフラッシュドライブ)にキャッシュされると仮定する。人気のあるVAは、多くのパーソナル・コンピュータにキャッシュされる。その結果、所定のパーソナル・コンピュータ上のEPGが特定のVAを必要とするとき、すでにそのVAのキャッシュされたコピーを持つあらゆるパーソナル・コンピュータからVAを得てもよい。異なるパーソナル・コンピュータから並行してVAの異なる部分をとらえることによって、EPGは、ダウンロード時間を減らすことができる。EPGは、パーソナル・コンピュータなどへのホップ数に注目することによって、ダウンロードするパーソナル・コンピュータを知的に選択してもよい。
加えて、最初のEPG画面がユーザからの入力を待つ間、組み込みOSはプリフェッチし、かつRAMにVAをプレロードする。その結果、ユーザが選択をしたあと、データはすでにRAMにあり、すぐに起動する。
仮想アプライアンスダウンロード
並列化
最も基本的な予想される展開において、VAは、ダウンロードされる。次いで、それは、解凍されて、実行される。
1つの最適化アプローチは、VAがダウンロードされる間に、解凍と実行の操作を遂行することによる並列化の改善に関係する。これを行うため、ストリーミングメディアに最適化される圧縮アルゴリズムが、使用される。最上位で、VAは、パーソナル・コンピュータにストリームする。ストリームは、圧縮チャンクで構成される。各チャンクは、他のチャンクの中で独立して解凍させてもよい。各チャンクが異なるピア・パーソナル・コンピュータから到着することができるので、このアプローチは既に考察されたP2Pアプローチによって適切に機能する。
モジュール分割法
並列化アプローチは、各モジュールが、他のモジュールから独立してダウンロード、解凍、実行/初期化することができるように、VAが高度にモジュール化されることを確認することによって、さらに強化させることが出来る。例えば、VAが、オペレーティング・システムに加えてアプリケーションで構成される場合、オペレーティング・システム(OS)は一つのモジュールでもよく、アプリケーションは他のモジュールでもよい。インテリジェント・ダウンロード・メカニズムは、OSモジュールを、先ず、ダウンロードし、解凍し、かつ実行することを確実にする。アプリケーション・モジュールは、ダウンロードし、同時に解凍することが出来るが、その実行は後に行われる。より複雑な実施例は、オペレーティング・システム、GUI、基本的なHTMLウェブ・ブラウザ、ジャバスクリプト・エンジン、マクロメディア・フラッシュプレーヤさらにフォントを備えるウェブ・ブラウザVAに関係する。これらの各々の要素は、別々のモジュールを構成してもよい。ユーザ経験を改善するために、OS、GUIおよび基本的なブラウザは、より高いダウンロード優先度を有する。このようにして、ユーザは、きわめて素早くウェブ・ブラウザおよびユーザ・インタフェースを見る。他のモジュールは、より低い優先度でダウンロードされ、または、例えば、ユーザが、マクロメディア・フラッシュを必要とするウェブサイトに決して行かない場合には、それは、全くダウンロードされない。フォントは、必要な場合にだけ、ダウンロードされ、別々のモジュールでもよい(例えば、ユーザが簡略中文フォントを必要とするだけである場合、繁体字中国語フォントはダウンロードされない)。
Linux最適化
このセクションは、VAのOSがLinuxに基づく場合の最適化に関する考察である。
Linuxモジュール分割法
基本的なLinuxベースのダウンロードはカーネル・ファイルと、RAMディスク・イメージとを含む(例えば、initrdまたはinitramfs)。アプリケーションは、RAMディスク・イメージ内に含まれている。initrdファイル内で全体のアプリケーションを配置することに関する1つの課題は、後者が非常に大きくなるということである(すなわち、およそ何十メガバイト程度)。モジュールアプローチについては、initrdファイルは、実際にいくつかのスタートアップ・スクリプトおよびユーティリティの基本的なRAMディスク・ファイルシステムを含んでもよいが、その他を含んでもよい。アプリケーションおよびその他の必要なファイル(例えば、X Window、Cライブラリ、ユーティリティ・プログラム、フォント、など)は、別々のモジュールとしてダウンロードされる。このようにして、カーネルおよびinitrdファイルは、非常に小さくすることができ(例えば、それぞれ2MB未満)、したがって、より速くダウンロードすることができる。
ダウンロードおよび実行プロセスは、次の優先度の順番で行われることが望ましい:
・Linuxカーネルおよびベースinitrd
・GUIは、RAMディスク・ファイルシステムにダウンロードされる
・ベース・アプリケーションは、RAMディスク・ファイルシステムにダウンロードされる
図1は、本発明によるダウンロードおよび実行プロセス・フローを示すフローチャートである。ステップ1(100)で、ダウンロード・カーネル10およびダウンロードinitrd 11は、スタートする。ステップ2(102)で、ブートLinux 12は、スタートする。当業者は、本願明細書における本発明がLinux以外のオペレーティング・システムに適用できることを理解するであろう。ステップ3(104)で、ダウンロードGUI 13、ダウンロード・ライブラリ14およびダウンロード・ベース・アプリケーション・ファイル15は、スタートする。ステップ4(106)で、ダウンロード・ベース・アプリケーションファイルはスタートし続け、GUI 13はスタートする。最後に、アプリケーション17がスタートし、高度なアプリケーション・ファイル18がダウンロードされるときに、イニット・プロセスは、ステップ5(108)で完了する。
Linuxダウンロード・マネージャ
インテリジェントLinuxダウンロード・マネージャは、既に記載された優先度ダウンロードおよび実行メカニズムを実装するために必要である。ここの1つの理由は、EPGがただカーネルおよびinitrdファイルをダウンロードするだけであるということである。一旦Linuxがスタートすると、残りのモジュールをダウンロードしなければならない。ダウンロード・マネージャも、できなければならない:
・既に中断されたダウンロードを再開する
・ローカル・ストレージのモジュール(例えば、キャッシュされたモジュール)を探して、それらをダウンロードする代わりに、ローカル・ストレージから直接それらをロードする
・簡単な識別のためにローカル・ストレージにダウンロードされたモジュールを管理して、後のセッションのために検索する
モジュールの再利用
さまざまなアプリケーション・モジュールをモジュール化して、切り離す1つの利点は、異なるVAのために同じモジュールを再利用する能力である。例えば、ウェブ・ブラウザVAは、オペレーティング・システム・カーネルおよびGUIを必要とする。VoIP仮想アプライアンスも、オペレーティング・システムおよびGUIを必要とする。ウェブ・ブラウザおよびVoIP VAは、同じモジュールのいくつかを共有することができる。ユーザがウェブ・ブラウザVAをすでに使用した場合、オペレーティング・システム・カーネル、initrdおよびGUIはすでにダウンロードされている。そのため、ユーザがVoIP VAを使用することを選ぶ場合、単にVoIPアプリケーションをダウンロードすることだけが必要とされる。このことは、起動時間を減らし、その結果、ユーザ経験を改善する。
Linuxデバイス・ドライバ
Linuxカーネルは、デバイス・ドライバのベーシック・セットを含んでいてもよい。しかしながら、マザーボードに特有のハードウェア用のドライバは、カーネルから分離していなければならない。このことは、次の2つの課題を回避する:
・サポートされることを必要とするすべてのマザーボード用の1つのカーネルを持つ必要性
・サポートされることを必要とするすべてのマザーボード用のドライバを含む1つのラージ・カーネル。
カーネルは、2つのソースからドライバを得てもよい。第1に、ドライバは、組み込みOSによってダウンロードさせてもよい。第2に、ドライバは、ブートROMに含まれてもよい。少なくとも、ネットワーク・デバイス・ドライバは、組み込みOSによってダウンロードされる必要がある。他のドライバ(例えば、特別なハードディスクコントローラ、オーディオ、など)は、ダウンロード・マネージャを介してオペレーティング・システムによってダウンロードさせてもよい。一旦ドライバがダウンロードされると、ドライバをカーネルへロードするために、Linuxブートスクリプトはコマンド(例えば、insmod)を使用する。しかしながら、ドライバは、組み込みOSによって別々のスペース(例えば、RAMディスク)へロードされるので、insmodコマンドが機能できる(例えば、RAMディスクをマウントする)前に、いくつかの追加ステップを、遂行する必要がある。このことは、ブートアップ・シーケンスを遅くする。一方、Linuxが正常にロードされ、アプリケーションが起動したときに、バックグラウンドプロセスは、initrdをパッケージし直すことができ、initrdファイルにデバイス・ドライバを含めることができる。このパッケージし直されたinitrdは、キャッシュにおいてローカルに格納される。次にユーザがLinuxベースのVAを選択する時、パッケージし直されたinitrdが使用される。デバイス・ドライバがすでにファイル・システム内部にあるので、このinitrdは、さらに結果としてより速いブート・アップタイムとなる。さらに、新たなデバイス・ドライバを含むLinuxカーネルを作り直すことが可能である。
キャッシュ
本発明でキャッシュする際に伴ういくつかの態様がある。第1の態様は、ファイル、モジュールおよびユーザが使用したいVAをキャッシュすることである。第2の態様は、ユーザが使用することを望む可能性があるVAをプリフェッチングおよび、プリキャッシュすることである。例えば、我々が、次の特徴を実装しようとする場合:
・推奨されたVA:ユーザがこれまで使用のためにダウンロードしたものに基づいてVAを推奨する。
・示唆されたVA:他の類似したユーザがダウンロードしたものに基づいてVAを示唆する。
・支持されたVA。
RAMへのプリフェッチングおよびローカル・ストレージへのVAのプリキャッシュによって、より良好なユーザ経験を保証することができる。プリフェッチングおよびプリキャッシュは、両方とも、組み込みOSによって、または、VA内で行うことが出来る。
コンフィグレータ
ダウンロードされたモジュールのキャッシュが存在すると想定した場合、キャッシュがどこにあるか決定することが必要である。好ましい本実施例において、キャッシュは、以下の何れかである:
・ハードディスク上の特殊パーティション
・ファイルシステム(例えば、NTFのファイル)のファイル
・USBフラッシュ装置
・パーソナル・コンピュータ・マザーボードの他のフラッシュ・ストレージ
・ハードディスクMBR(例えば、ドライバファイルのための)
ハードディスクのパーティション上にキャッシュを配置することを望む場合、自動的に、かつ、困難なくこのパーティションを作成する必要性がある。このことは、EPGが好ましくはコンフィグレータ機能を含む理由である。例えば、第1のEPGがスタートアップし、検出するときに、全ての取り付けられたハード・ドライブは空であり(すなわち、パーティションが分けられていない、および/または、フォーマットされていない)、キャッシュ・パーティションをハード・ドライブに作成するか否かをユーザに尋ねる。ユーザが肯定の返事をする場合、EPGは第1のハード・ドライブに小さいパーティションを作成する。
アップデート/保守/セキュリティ
本発明は、アップデート、保守およびセキュリティ機能を考察する。例えば:
・コンテンツの自動アップデート(例えば、トップ100のリストの更新など):メディア関連のパーソナリティは、定期的なアップデートから利益を得ることができるコンテンツを含んでもよい。例えば、カラオケ・パーソナリティは、毎週新曲およびMTVをダウンロードしてもよい。映画パーソナリティは、ネットフリックスから消費者の興味に適合する新規な映画をダウンロードしてもよい。
・パーソナリティの自動アップデート(例えば、パッチなど):パーソナリティは、ジェネラル・リリース後の機能改善またはバグ・フィックスを持ってもよい。すべての消費者データおよび設定を正しい状態に保つと共に、サービスVMは、消費者のPC上の既存のパーソナリティを自動的にアップデートしてもよい。
・コンテンツおよびパーソナリティのアップデートのためのP2P/BitTorrent:顧客のPCへの大きなコンテンツおよびパッチのダウンロードに対して、この実施例は、ダウンロード速度を改善し、および、サーバ・インフラ要求を減らすために、P2P/Bit-torrentを導入する。コンテンツおよびアップデートは、少しずつ他のユーザから到着してもよい。アップデータは、パーソナリティに影響を及ぼさない程度に、別々の仮想マシンに存在してもよい。
・新規および/または交替パーソナリティのためのP2P/Bit-torrent:上記のように、新規または交替パーソナリティをダウンロードすることを除けば。異なるフロントエンドが、保守および新機能を区別するためにあってもよい。
・メディア、新規なパーソナリティ、セキュリティ・アップデートなどのためのセントラル・ダウンロード・マネージャ(例えば、BitTorrentなど):顧客のPCへの大きなコンテンツおよびパッチのダウンロードに対して、ダウンロード速度を改善し、および、サーバ・インフラ要求を減らすために、P2P/Bit-torrentを導入する。コンテンツおよびアップデートは、少しずつ他のユーザから到着してもよい。アップデータは、パーソナリティに影響を及ぼさない程度に、別々の仮想マシンに存在してもよい。
・セントラル・ウイルス・スキャンおよび回復:オープン・ソース・ソリューション、または、例えば、シマンテック/McAfeeによって与えられるソリューションを提供する。一実施形態では、サービス仮想マシンは、アンチ・ウィルス、スパイウェア、ファイアウォールなどに対して、オープン・ソース・ベースのデフォルト・セキュリティモジュールを提供する。ユーザは、例えば、シマンテック、McAfee、トレンドマイクロ、その他によって提供されるアクティベーション・ベースの商業的なソリューションにアップグレードするオプションを持つ。
システム・メモリの使用モデル
一実施例は、インスタント・オン経験によるユーザ経験を改善するためにできるだけ能率的に、システム不揮発性メモリを利用する。図2は、本発明により、データ/アプリケーションの部分を格納し、キャッシュするためのモデルを示すブロック略図である。図2において、BIOSフラッシュROM 20、CMOSエリア19は、拡張システム構成データ(ESCD)21、ブートローダ23およびBIOS 25を含む。内蔵ストレージ22は、一つ以上の仮想アプライアンス27、コンテンツ28およびドライバおよび一般的な仮想アプライアンス・コンポーネント29を含む。リムーバブル・ストレージ24は、一つ以上の仮想アプライアンス27およびコンテンツ28を含む。かつ、オンライン・ストレージ26は、ユーザのヒストリ、クッキーおよびプロファイル30のような情報を含む。
DVMバックエンド
図3は、本発明によるシステム・サーバ・バックエンドを示すブロック略図である。図3において、パーソナル・コンピュータ31のユーザは、アプライアンス・サーバ33へのアクセスをシークする。本発明によって提供されるインスタント・オン経験を可能にする一態様は、ライト・バックエンド・モデルが必要周波数帯幅および速度をサポートすることを必要とする。一実施例は、ボードが単一のサーバ・クラスタに最初にアクセスすることを、すべてのDVMに、可能にさせている。このサーバは、基本的に、認証およびアンチ・フィッシング・セキュリティ・プロトコルを扱うリダイレクト・サーバ32である。その後、リダイレクト・サーバは、異なる地理的ホップによる遅延を減らすために、DVMユーザをローカル・サーバ・クラスタ38にリダイレクト。する。加えて、ローカル・クラスタの代わりに、リダイレクト・サーバは、パートナーに特有のアプリケーションを供給するためにパートナー・サーバ37にリダイレクトしてもよい。
ローカル/パートナー・サーバ・クラスタにおいて、認証は必要である。さらなる実施例は、リダイレクト・サーバから認証情報をパスする方法、または、単にローカル/パートナー・サーバが認証を扱う方法を提供する。これらのサーバは、高帯域トランザクションをサポートするセットアップである。それらのメイン・タスクは、システム情報アップロード、EPGアプリケーション・ダウンロード、VAアプリケーション・ダウンロード、ユーザ・ログインおよび切断を扱う。
各ローカル/パートナー・サーバ・クラスタ37、38、39は、いくつかのファイル・サーバ35およびコンテンツ・サーバ36を含む。コンテンツ・サーバが、BIOS、BIOSおよびマザーボードに特有のマニュアルなどのアップデートのためのサポート・データを含むと共に、ファイル・サーバは、すべてのVAを含んでいる。このコンテンツは、マザーボードOEMからのOEMサポート・データの再フォーマットされたバージョンでもよく、または、実際のOEMサーバでもよい。これは、仕様をOEMに供給するサポート・モデルによるものであり、これらの仕様を満たすためにアプリケーションに書き込むことができるようにし、または、それらを可能にするために、一定量のソース・コードを供給することを必要とする。一実施例は、すべてのOEM全体の標準のユーザ経験を提供するために、OEMサーバの再フォーマットされたバージョンを保持する。さらなるオプションは、サポート・モデルを実際にVAアプリケーションとすることである。
二重のファイル・サーバおよびコンテンツ・サーバとは対照的に、ユーザおよびハードウェア(H/W)データベースは、よりセントラルである。その理由は、より良好な整合性およびセキュリティのためである。ユーザ・データベースの目的は、より良好なユーザ経験をするために情報を格納するためにある。データベースは、例えば、最近使用されたVAなどのようなプリファランス/お気に入り、webtop構成、望ましい言語などの情報を含んでいる。
ブートローダ
VMブートローダを有するパーソナル・コンピュータは、エンド・ユーザのパーソナル・コンピュータ31を包含する。第2のパーソナル・コンピュータ33は、DVMサーバとしての役割を果たす。図4は、本発明(ネットワーク通信はイーサネット(登録商標)接続42を介して開始する)による好適なシステム・アーキテクチャを示すブロック略図である。当業者は、本発明が他の通信アーキテクチャも含むことを理解するであろう。ブートローダは、ROM/フラッシュ・ディスクからブートする。ネットワーク・スタックは包含され、かつDHCPはサポートされていることが、好ましい。シンプルな電子番組ガイド・アプリケーションは、ダウンロードして利用可能なVMアプリケーションのリストを表示するために提供される。アプリケーションのリストは、本実施例では、固定されている。
EPGアプリケーションは、ユーザにいくつかの選択を可能にさせる:
・動作するVMアプリケーションの一つを選択する
・ハードディスク上のデフォルトOSにブートする
・APM/ACPIがハードウェアでサポートされる場合、システムをシャットダウンするユーザがDVMアプリケーションのうちの1つを選択すると、EPGはアプリケーションをダウンロードして、実行する。
VMアプリケーション
BIOSアップグレード・ユーティリティ
システムは、BIOSバイナリおよびアップグレード・ユーティリティをダウンロードして、それらをエミュレートしたフロッピー(登録商標)に書き込む。そして、アップグレード・ユーティリティを動作させる。
診断ユーティリティ
システムは、エミュレートしたフロッピー(登録商標)またはエミュレートしたハード・ドライブに診断ユーティリティをダウンロードする。
フラッシュ9を有するブートLinux
この実施例は、Linuxを始動するために、Linuxブートローダを使用する。
VM実行環境
はじめに
本発明の態様は、ダウンロードおよびパーソナル・コンピュータ上の非常に多様なアプリケーションの実行を可能にするROM化可能な実行環境を作成する。条件は、以下の通りである:
・ネットワーク伝送速度は、アプリケーションがサーバからローカル実行へ、素早くダウンロードさせることができるように十分に速いこと。
・それらがダウンロードされると共に、そのアプリケーションが適合するに足りるRAMが存在すること。
・アプリケーションは、ディスクからページ・スワップすることなくRAMで動作することができること。
VMソフトウェア・スタック
図5は、本発明によるユーザのコンピュータ31でVMソフトウェア・スタックを示すブロック略図である。図5において、ソフトウェア・スタックはBIOSフラッシュ・メモリ20に保有された部分、および、ダウンロード50部分を包含する。スタックは、非VMアプリケーション51およびVMアプリケーション52から成る。従前のパーソナル・コンピュータBIOS 25およびBIOSブートローダ23bは、ほとんど変化しないままである:
・デフォルトで、BIOSブートローダ23bは、ハードディスク22からマスター・ブート領域(MBR)をロードして実行する
・HPA(隠蔽されたパーティション・エリア)が示され、BIOSによってサポートされる場合、BIOSはHPAコンテンツを実行することができる。
DVMブートローダに制御を渡すための第2のオプションは、PXEプロトコルをVMブートローダに組み込むこと、および、DVMオプションROMの標準のNICオプションROM(PXEプロトコルを含む)と入れ替えることである。このことは、BIOSカスタマイズおよび必要とされる全体のROMスペースの量を減らす。
ホットキー、タイマまたはその他の機構は、BIOSブートローダがVMブートローダ23aを起動することを可能にする。VMブートローダは、EPG 53をダウンロードするために、VMアプリケーション・サーバ33にイーサネット(登録商標)42を介して接続する。EPGは、ユーザが直面する第1のグラフィカル・ユーザ・インタフェース(GUI)である。GUIは、利用可能なアプリケーション(システムに対するローカルかそれともインターネットのリモート)の選択を表示する。EPGは、現に実際にVMアプリケーションの他のタイプである。一実施例において、ダウンロードされるVAとは対照的に、EPGは、フラッシュBIOSのローカルである。しかしながら、潜在するサイズ制限および拡張性のために、EPGは、これに代えて2つのレベルのEPGから構成させてもよい。ベーシックEPGは、フラッシュBIOSに格納され、エンハンスト・バージョンは、その他のVAのようにダウンロードされる。エンハンスト・バージョンがあるとはいえ、このことはルック&フィールの観点からユーザに透過的である。ユーザは、初期画面上かそれとも下位レベルのメニューに隠蔽されるより多くの選択肢を有する。ベーシックまたはエンハンストEPGの表示は、ユーザに透過的で、ネットワーク接続性に基づいてアップデートされる。
EPGが呼び出されたあと、エンド・ユーザには、利用可能なアプリケーションのリストが示される。アプリケーションは、例えば、以下を包含する:
・VMアプリケーション・サーバ33からダウンロードできる非仮想マシン・アプリケーション。
・VMアプリケーション・サーバ33からダウンロードできる仮想マシン・アプリケーション。これらは、ハイパーバイザ54またはVMプレーヤのダウンロードを必要とする。
・DVMアプリケーションは、USBフラッシュ・デバイス24またはハードディスクHPA 22に存在する。
VMブートローダ
モジュール
図6は、本発明によるVMブートローダ23aおよび関連するモジュールを示すブロック略図である。本実施例において、VMブートローダは、ユーザのローカル・エリア・ネットワーク63を介してDHCPサーバ62またはゲートウェイ61に通信で接続されているユーザのパーソナル・コンピュータ31に存在する。ユーザのパーソナル・コンピュータは、GUI 13、ファイル・システム85、USBドライバ86およびNICドライバ87を備える。インターネット接続42は、ユーザをDVMサーバ33に接続する。VMブートローダは、本実施例において、以下のモジュールを備える:
アプリケーション列挙子64:USBドングル、または、VMサーバ上の利用可能なVMアプリケーションを探す。このことは、EPGのベーシック・バージョンを小さいスペースに適合させるためである。EPGのフルバージョンは、このモジュールの使用を導入することもできる。
アプリケーション・ランチャ65:既にメモリへロードされたアプリケーションを実行する。これがどのように行われるかは、アプリケーションの実行環境要求よる。
ダウンローダ66:VMサーバからメモリへアプリケーションをダウンロードする。アプリケーションがメモリ内で、どのようにレイアウトされるかは、その実行環境要求よる。ダウンローダも、ダウンロードされたペイロード(例えば、MD5を介して)などの完全性をチェックする。
認証67:VMサーバによって認証する。
ネットワーク構成GUI 68:エンド・ユーザがインターネットにアクセスするために、VMブートローダを構成することができるように、ユーザ・インタフェースを提供する。
ネットワーク構成ローダ69:ネットワーク構成をロードする。
フロッピー(登録商標)・エミュレータ74:フロッピー(登録商標)からのブートをエミュレートする。フロッピー(登録商標)・イメージは、拡張メモリにある。エミュレーションは、INT40hおよび/またはINT13hをフックすることによって行われる。このコンポーネントは、フロッピー(登録商標)・ブートのように、プロトコルおよびハンドシェークがメモリー・セクションからのブートを可能にするために開発されることを必要とする拡張メモリ内の1.44Mフロッピー(登録商標)のイメージである。
システム構成バックアップおよびリストア75:何かが動作して、後にシステム構成をリストアする前に、システム構成をセーブする。これらは、主にシステム・デバイス、割り込みベクトルなどである。VMブートローダが動作する前後、アプリケーションは動作する前後などで、これは使用される。他の実施態様において、システム構成は、リストア機能を動作して、アプリケーション・ローダを実行する。
デバイス・ドライバ・マネージャ76:これは、ハードウェア・プラットフォームに特有のLinuxデバイス・ドライバ・モジュールが格納されるところである。アプリケーションがLinux OSを有する場合、ここからデバイス・ドライバを検索して、それらをカーネルへロードする。
ユーザ・ログイン・マネージャ77:ユーザがVMサーバにログインすることを可能にする。これは、サーバ・ベースの永続的な格納の利用を可能にしてもよい。
GUIライブラリ:標準のルック&フィールを提供する。
DHCP 78によるネットワーク/TCP/IPスタック。
CPUモード・スイッチャ79:x86 CPUをリアルからプロテクトモード、および、元に戻すようにスイッチする。
OSブートローダ81:ハードディスクからメインOSをブートする。
システム情報マネージャ82:例えば、SMBIOS 83から、システム情報を抽出して、VMサーバに送信する。
メモリ・リソース・マネージャ84:適切な位置にアプリケーションのダウンロードおよびレイアウトを可能にするために、メモリ・リソース(例えば、拡張メモリ)を管理する。
前記モジュールの大部分は、アプリケーションによって再利用させることが出来る。例えば、EPGは、選択されたアプリケーションをダウンロードするために、ダウンローダを使用する。そして、ダウンロードされたアプリケーションを起動するために、アプリケーション・ローダを使用する。
好ましい実施例の能力
組み込みOSの好ましい実施例は、以下の能力を有する:
ネットワーク
- NICドライバ・アベイラビリティ
- NICドライバの開発の簡略化
- DHCPによるTCP/IPスタック
- プロキシ・サポート
HDD
- NTFリード/ライト
- USBフラッシュドライブのUSBドライバ、または、
- USBフラッシュドライブへのINT13hアクセス
- USBフラッシュドライブ上のファイル・システムへのアクセス
o FAT16
o FAT32
- HPAアクセス
o FAT32
ビデオ
- テキスト
- グラフィクス
- アクセラレータ
オーディオ
- 必要でない
入力
- マウス
- キーボード
メモリ・アクセス
- ダウンロードしたアプリケーションの1MBを超えるアクセス
サーバ・インターフェース機能
-デジタル署名
- サーバによる認証
プレブートおよびポスト・シャットダウン・コード挿入
-割り込みベクトルのバックアップ
- 割り込みベクトルのリストア
VMアプリケーション
VMアプリケーションは、完全自己内蔵型バイナリ・ペイロードである。すなわち:
・VMアプリケーション・サーバからダウンロードされる
・USBフラッシュドライブからロードされる
・ハードディスクHPAからロードされる
完全自己内蔵型は、アプリケーションがそれ自体の実行環境を含むことを意味する。例えば、ウェブ・ブラウザ・アプリケーションは、オペレーティング・システム、ウェブ・ブラウザ・アプリケーションおよびその他のサポートしているファイルまたはユーティリティを包含する。
アプリケーションのタイプ
アプリケーションは、次のように分類することが出来る
・それらが、VMアプリケーションか否か
・実行環境のタイプ
これらの分類は、排他的でない。
VMアプリケーション
仮想マシン・アプリケーションは、ハイパーバイザが動作することを必要とする。
実行環境
いくつかの使用可能な実行環境がある。本願明細書における考察はこれらのうちの4つのみを考察する(但し、本発明は他のものも意図する):
・エミュレートディスクによるリアルモード
・固定的なメモリ・アドレスによるリアルモード
・エミュレートディスクおよびラージ・ポスト・ブート・ペイロードによるリアルモード
・固定的なメモリ・アドレスおよびラージ・ポスト・ブート・ペイロードによるリアルモード
プロテクトモード・スイッチャへのリアルモードが上記の4つのケースのどれにも適合することができるので、プロテクトモード環境を考慮する必要がない。
エミュレートディスクによるリアルモード
図7は、本発明によるエミュレートディスクによるリアルモード操作のためのメモリスタック71の略図である。これを扱うために、DOSブート・プロセスをエミュレートする。ディスク・イメージ(すなわち1.44MB以上)のサイズのため、リアルメモリ73とは対照的に、ダウンロードされたアプリケーション・ペイロード70は、拡張メモリ72に格納される。フロッピー(登録商標)ディスク・エミュレータは、ディスク・イメージからのブートに使用される。この予想される展開の実施例は、アプリケーションがDOSのバージョン上で動作することである。ダウンロードされたアプリケーション・ペイロードは、アプリケーションおよびDOSファイル・システムを含むフロッピー(登録商標)ドライブ・イメージである。
固定的なメモリ・アドレスによるリアルモード
図8は、本発明による固定的なメモリ・アドレスによるリアルモード操作のためのメモリスタックの略図である。これは、ダウンロードされたアプリケーション・ペイロード80がリアルモード/DOSアドレス空間の中で適合するのに十分小さいケースである。アプリケーションは、そのアプリケーションに特有で、かつ、アドレスから実行される固定的なメモリ・アドレスにより、リアルメモリにレイアウトされる。
エミュレートディスクおよびラージ・ポスト・ブート・ペイロードによるリアルモード
図9は、本発明によるエミュレートディスクによるリアルモード操作およびラージ・ポスト・ブート・ペイロードのメモリスタックの略図である。これは、ラージ・アプリケーションのブートを望むモードである。実施例は、Linuxベースのアプリケーションをブートしている。エミュレートディスクは、SYSLinuxのようなものを含んでいる。アプリケーションおよびOSペイロード90の実際のgzipで圧縮されたイメージ70は、拡張メモリにもロードされる。
固定的なメモリ・アドレスおよびラージ・ポスト・ブート・ペイロードによるリアルモード
図10は、本発明による固定的なメモリ・アドレスによるリアルモード操作およびラージ・ポスト・ブート・ペイロード90のメモリスタックの略図である。これは、また、ラージ・アプリケーションのブートを望むモードである。実施例は、Linuxベースのアプリケーションをブートしている。SYSLinuxのフロッピー(登録商標)・イメージを使用する代わりに、固定的なリアルモード・メモリロケーションにロードされるカスタム・ユーティリティを有する。アプリケーションおよびOSペイロードの圧縮イメージは、拡張メモリにロードされる。リアルモード・ユーティリティは、OSペイロード、および、ロード/ブートLinuxカーネルを解凍する。
実行環境含意
含意は、以下の通りである:
・VMブートローダ/アプリケーションの起動は、各タイプの実行環境を識別することができなければならない。この情報(各VMアプリケーションに関連される)は、VMサーバによって提供させてもよい。
・VMブートローダは、拡張メモリにアクセスすることができなければならない。
・ツールは、これらの実行環境のうちの1つに適合するために、アプリケーション・ペイロードをパッケージするために作成されなければならない。
VMアプリケーション要件
要件は、以下の通りである:
・自身の実行環境を含まなければならない(例えば、オペレーティング・システム)
・RAMに完全に存在し、実行することができなければならない
・ローカルの永続ストレージを必要としてはならない。永続ストレージは、例えば、サーバ上で、ネットワークを通じて提供させてもよい。
BIOSポスト後の操作順序
図11は、本発明によるBIOSポスト(110)のあとのプロセスを示すフローチャートである。図11において、ユーザがホットキー(112)を選択する場合、次に、プロセスはセービング・ステート(114)に進む。ブートローダがスタートし(116)、ネットワークが構成される(118)と、決定がなされる。そうでない場合には、GUIは、ユーザがネットワークインターフェースを構成することを可能にする(120)。さもなければ、システムは、サーバに接続する(122)。システムはサーバで認証し(124)、システムは接続がサーバで確立されることを確認する(126)。接続が検出される場合、システム情報はサーバに送信され(128)、アプリケーション・リストがダウンロードされる(130)。接続が確立されない(126)場合、システムは、USBデバイスを捜す(132)。同様に、ネットワーク接続が検出されるところで、アプリケーション・リストがダウンロードされた(130)あと、システムは、USBデバイスを捜す(132)。VMアプリケーションのリストはUSBデバイス(134)からコンパイルされ、アプリケーション・リストは作成される(136)。VMアプリケーションが利用可能である(138)場合、ユーザはアプリケーションを選択することができる(144)。それに応答して、システムは、システム・メモリのアプリケーションをロードし(146)、ブートローダをシャットダウンする(148)。そして、アプリケーションは、ブートされ(150)、ユーザはアプリケーションを使用することができる(152)。アプリケーションがシャットダウン(154)するときに、ステートはセーブされる(114)。BIOSポスト(110)の後、ホットキーが押されない(112)場合には、ステートは回復され(140)、デフォルトOSはハードディスク(142)からブートされる。例えば、ネットワーク接続性が不成功の場合、および、あらゆるUSBフラッシュ・デバイスで利用可能なVMアプリケーションがない場合には、システムはハード・ディスク・ドライブ上のデフォルトOSをブートする。
本願においては、本発明は、好ましい実施例を参照して記載されているが、当業者は、直ちに、本発明の趣旨および範囲から逸脱することなく、本願において開示した応用を、他の応用で置換することができることを理解するであろう。したがって、本発明は、下記で含まれる請求の範囲に限定されるべきではない。
10 ダウンロード・カーネル
11 ダウンロードinitrd
12 ブートLinux
13 ダウンロードGUI(スタートGUI)
14 ダウンロード・ライブラリ
15 ダウンロード・ベース・アプリケーション・ファイル
17 スタート・アプリケーション
18 アプリケーション・ファイル
20 BIOSフラッシュROM
21 拡張システム構成データ(ESCD)
22 内蔵ストレージ
23 ブートローダ
24 リムーバブル・ストレージ
25 BIOS
26 オンライン・ストレージ
27 仮想機器
28 コンテンツ
29 一般的な仮想機器コンポーネント
30 ヒストリ/クッキープロファイル
31 パーソナル・コンピュータ(DVMユーザ)
32 リダイレクト・サーバ
33 DVM・アプリケーション・サーバ
35 ファイル・サーバ
36 コンテンツ・サーバ
37 パートナー・サーバ
38 ローカル・サーバ・クラスタ
42 イーサネット(登録商標)
50 ダウンロード
51 非VMアプリケーション
52 VMアプリケーション
53 EPG
54 ハイパーバイザ
61 ゲートウェイ
62 DHCPサーバ
63 ユーザのネットワーク
64 アプリケーション列挙子
65 アプリケーション・ランチャ
66 ダウンローダ
67 認証
68 ネットワーク構成GUI
69 ネットワーク構成ローダ
70 アプリケーション・ペイロード
71 メモリスタック
72 拡張メモリ
73 リアルメモリ
74 フロッピー(登録商標)・エミュレータ
75 システム構成バックアップおよびリストア
76 デバイス・ドライバ・マネージャ
77 ユーザ・ログイン・マネージャ
78 DHCP
79 CPUモード・スイッチャ
80 アプリケーション・ペイロード
81 OSブートローダ
82 システム情報マネージャ
83 SMBIOS
84 メモリ・リソース・マネージャ
85 ファイル・システム
86 USBドライバ
87 NICドライバ
90 ポスト・ブート・ペイロード
91 固定的なメモリ・アドレス

Claims (21)

  1. アプライアンスの仮想化のためのコンピュータによる実装方法であって、
    組み込みオペレーティング・システム(OS)をパーソナル・コンピュータのシステム・ブートROMに格納するステップと、
    前記パーソナル・コンピュータのオペレーティング・システムを起動する前に、少なくとも一部の当該パーソナル・コンピュータのオペレーティング・システムの起動をサスペンドし、前記パーソナル・コンピュータがブートされるときに、即時に当該OSを起動するステップと、
    最初のOSが、オンラインで、かつアプライアンス・サーバに到達すると、より完全なOSをダウンロードするステップであって、当該OSのルック&フィールが、このプロセスの間に変化しないステップと、
    アプライアンスが、特定のタスクを遂行するのに必要であるすべてを含む自己内蔵型のバイナリ・パッケージを備え、当該OSを起動すると、即座に、当該OSが、ローカル・ストレージ媒体およびネットワーク・ロケーションの何れでも利用可能な仮想アプライアンスを探すステップと、
    当該OSが、当該パーソナル・コンピュータに選択のための少なくともいくつかの当該利用可能な仮想アプライアンスを表示するステップと、
    当該OSからの選択は、当該パーソナル・コンピュータで使用する利用可能な仮想アプライアンスの少なくとも一つのアプライアンスを表示するステップと、
    当該パーソナル・コンピュータで当該選択されたアプライアンスをダウンロードし、起動するステップと、
    を備え、
    当該アプリケーションが、それ自体の実行環境を含み、RAM内に存在しかつRAM内で完全に実行され、かつローカル永続ストレージを必要としない方法。
  2. ローカル・ストレージにない場合、アプライアンス・サーバから選択されたアプライアンスをダウンロードするステップを更に備える請求項1に記載の方法。
  3. ローカル・ストレージ媒体からパーソナルコンピュータオペレーティング・システムをブートすることを選定するステップと、かつ、
    当該パーソナル・コンピュータが、当該オペレーティング・システムをブートするステップ、を更に備える請求項1に記載の方法。
  4. ローカル・ストレージ媒体に当該アプライアンス・サーバからダウンロードされるアプライアンスをキャッシュするステップと、
    当該アプライアンスが次に必要なときのために、当該アプライアンス・サーバからダウンロードすることを必要としないステップ、を更に備える請求項2に記載の方法。
  5. アプライアンスをユーザに知的に示唆するために、好きなアプライアンスの選択および/または一般に使用されるアプライアンスにアクセスするために、パーソナライザーを提供するステップと、
    最も一般に使用されるアプライアンスが、第1の画面上に、または、利用可能なアプライアンスのリストの最上位に現れるようにするステップ、を更に備える請求項1に記載の方法。
  6. アプライアンスのダウンロードのためにローカル、または、国内にあるサーバに当該OSをリダイレクトステップ、
    一つ以上のサーバからアプライアンスをダウンロードするステップ、および
    アプライアンスのダウンロードにピア・ツー・ピア(P2P)を使用するステップ、
    の何れかを、更に備える請求項1に記載の方法。
  7. 当該アプライアンスがダウンロードされると共にアプライアンスを解凍して、実行するステップ、を更に備える請求項1に記載の方法。
  8. 複数の個々のモジュールを備えている当該アプライアンス、そこにおいて、当該アプライアンスの各モジュールが、前記他のモジュールの各々と独立して、ダウンロードされ、解凍され、実行され/初期化され、少なくとも一つのアプライアンスをモジュール化するステップ、を更に備える請求項1に記載の方法。
  9. より高い優先度を有しているモジュールが、第1にダウンロードされ、解凍され、実行されることを確保するために、インテリジェント・ダウンロード・メカニズムを提供するステップ、を更に備える請求項8に記載の方法。
  10. 前記同じモジュールを異なるアプライアンスに再生利用するステップ、を更に備える請求項8に記載の方法。
  11. ファイル、モジュール、さらに、ユーザが使用することを望むものをキャッシュするステップと、
    当該OSにおいて、ユーザ入力を待つと共に、ローカル・ストレージからRAMにアプライアンスをプリフェッチするステップと、
    ユーザがネットワークからローカル・ストレージに使用することを望む可能性があるアプライアンスをプリキャッシュするステップの、
    何れかを更に備える請求項1に記載の方法。
  12. 当該キャッシュが、ハードディスクの特殊なパーティション、ファイル・システムのファイル、USBフラッシュ・デバイス、パーソナル・コンピュータ・マザーボードの他のフラッシュ・ストレージ、または、ハードディスクMBRの何れかである、請求項11に記載の方法。
  13. 第1の当該OSがスタートアップし、検出するときに、全ての取り付けられたハード・ドライブは空であり、コンフィグレータ機能を提供する当該OSが、キャッシュ・パーティションを前記ハード・ドライブに作成するか否かをユーザに尋ね、ユーザが肯定の返事をする場合、前記OSは第1のハード・ドライブにパーティションを作成するステップ、を更に備える請求項12に記載の方法。
  14. アプライアンスの仮想化のための装置であって、
    ソフトウェア・スタックを格納するためのメモリを備え、当該ソフトウェア・スタックが、BIOSフラッシュ・メモリに保持される第1の部分と、当該メモリにダウンロードされる第2の部分とを備え、当該スタックが、非仮想アプリケーションおよび仮想アプリケーションを備える、コンピュータと、
    組み込みオペレーティング・システム(OS)と、
    仮想アプライアンス・ブートローダと、
    BIOSブートローダと、
    当該仮想アプライアンス・ブートローダを起動するために当該BIOSブートローダを使用するための手段と、
    を備え、
    当該アプライアンス・ブートローダが、当該メモリに当該OSをダウンロードするために、アプライアンス・サーバにネットワークを介して接続のための手段を備え、
    当該OSが、利用可能であるアプリケーションのリストをエンド・ユーザに示すための手段を更に備え、
    当該アプリケーションが、
    当該アプライアンス・サーバからダウンロードすることができる非仮想マシン・アプリケーション、
    当該アプライアンス・サーバからダウンロードすることができる仮想マシン・アプリケーション、および、
    当該コンピュータと関連したUSBフラッシュ装置またはハード・ディスク・ドライブの何れかに存在するアプリケーション、
    の何れかを備える装置。
  15. 当該仮想アプライアンス・ブートローダが、さらに、
    利用可能な仮想マシン・アプリケーションを探すためのアプリケーション列挙子と、
    当該メモリへ既にロードされたアプリケーションを実行するためのアプリケーション・ランチャと、
    当該アプライアンス・サーバから当該メモリまでアプリケーションをダウンロードするためのダウンローダと、
    当該アプライアンス・サーバの当該コンピュータを認証するための認証手段と、
    ネットワーク・アクセスのための当該仮想アプライアンス・ブートローダをエンド・ユーザが構成することを可能にするために、ユーザ・インタフェースを提供するためのネットワークコンフィギュレーションと、
    ネットワークコンフィギュレーションをロードするためのネットワークコンフィギュレーション・ローダと、
    フロッピー(登録商標)からのブートをエミュレートするためのフロッピー(登録商標)・エミュレータと、
    システムコンフィギュレーションが、何かが動作する前に、システムコンフィギュレーションをセーブするために、および、その後に当該システムコンフィギュレーションをリストアするために、モジュールをバックアップおよびリストアし、
    前記コンピュータに特有のデバイス・ドライバ・モジュールを格納するためのデバイス・ドライバ・マネージャと、
    ユーザが当該アプライアンス・サーバにログインすることを可能にするためのユーザ・ログイン・マネージャと、
    標準のルック&フィールを提供するためのGUIライブラリと、
    DHCPによるネットワーク/TCP/IPスタックと、
    x86 CPUをリアルからプロテクトモード、および、元に戻すようにスイッチするCPUモード・スイッチャと、
    コンピュータ・ハードディスクからメイン・オペレーティング・システムをブートするためのOSブートローダと、
    システム情報をBIOSから抽出して、当該抽出された情報を当該アプライアンス・サーバに送信するためのシステム情報マネージャと、
    適切な位置にアプリケーションのダウンロードおよびレイアウトを可能にするために、メモリ・リソースを管理するためのメモリ・リソース・マネージャの
    何れかを備える請求項14に記載の装置。
  16. 当該アプリケーションが、ハイパーバイザが動作するために必要な仮想マシン・アプリケーションの何れかを備え、かつ
    実行環境が、
    エミュレートディスクによるリアルモードと、
    固定的なメモリ・アドレスによるリアルモードと、
    エミュレートディスクおよびラージ・ポスト-ブート・ペイロードによるリアルモードと、
    固定的なメモリ・アドレスおよびラージ・ポスト-ブート・ペイロート゛によるリアルモードの
    何れかを備える請求項14に記載の装置。
  17. アプライアンスの仮想化のためのコンピュータによる実装方法であって、
    組み込みオペレーティング・システム(OS)をパーソナル・コンピュータのシステム・ブートROMに格納するステップと、
    前記パーソナル・コンピュータのオペレーティング・システムを起動する前に、少なくとも一部の当該パーソナル・コンピュータのオペレーティング・システムの起動をサスペンドし、前記パーソナル・コンピュータがブートされると、即時に当該OSを起動するステップと、
    最初のOSがオンラインで、かつアプライアンス・サーバに到達すると、より完全なOSをダウンロードするステップであって、当該OSのルック&フィールが、このプロセスの間に変化しないステップと、
    各パーソナリティが根底にあるプラットホームから抽出されるソフトウェア・コンテナで動作し、複数のパーソナリティを当該パーソナル・コンピュータの複数ユーザに提供するステップと、
    アプライアンスが、特定のタスクを遂行するのに必要であるすべてを含む自己内蔵型のバイナリ・パッケージを備え、当該OSを起動すると、即座に、当該OSが、ローカル・ストレージ媒体およびネットワーク・ロケーションの何れでも利用可能な仮想アプライアンスおよびパーソナリティを探すステップと、
    当該OSが、当該パーソナル・コンピュータに選択のための少なくともいくつかの当該利用可能な仮想アプライアンスを表示するステップと、
    当該パーソナル・コンピュータで使用する利用可能な仮想アプライアンスの少なくとも一つのアプライアンスを当該表示から選択するステップと、
    当該パーソナル・コンピュータで当該選択されたアプライアンスをダウンロードし、起動するステップと、
    を備え、
    当該アプリケーションが、それ自体の実行環境を含み、RAM内に存在しかつRAM内で完全に実行され、かつローカル永続ストレージを必要としない、
    方法。
  18. プロフィール・ベースのコンフィグレーション、パーソナリティ、および、パーソナリティのパッケージを提供するステップ、を更に備える請求項17に記載の方法。
  19. コンテンツを自動アップデートするステップと、
    パーソナリティを自動アップデートするステップの
    何れかを、更に備える請求項17に記載の方法。
  20. コンテンツおよびパーソナリティのアップデートおよび/または、新規および/または置換パーソナリティのためにP2Pおよび/またはBitTorrentを使用するステップ、を更に備える請求項19に記載の方法。
  21. 周辺機器およびデバイス・ドライバが、仮想マシン内部で適切に、そして、最適に機能することができるための必要なツールを提供するためにパーソナリティを周辺機器にバンドルするドライバおよび周辺機器統合化キットを提供するステップ、を更に備える請求項17に記載の方法。
JP2009519592A 2006-07-10 2007-07-03 アプライアンスの仮想化のための方法と装置 Pending JP2009544072A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US80691506P 2006-07-10 2006-07-10
US89012107P 2007-02-15 2007-02-15
US11/772,700 US7441113B2 (en) 2006-07-10 2007-07-02 Method and apparatus for virtualization of appliances
PCT/US2007/072778 WO2008008675A2 (en) 2006-07-10 2007-07-03 Method and apparatus for virtualization of appliances

Publications (1)

Publication Number Publication Date
JP2009544072A true JP2009544072A (ja) 2009-12-10

Family

ID=38924040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009519592A Pending JP2009544072A (ja) 2006-07-10 2007-07-03 アプライアンスの仮想化のための方法と装置

Country Status (5)

Country Link
US (2) US7441113B2 (ja)
EP (1) EP2038740A4 (ja)
JP (1) JP2009544072A (ja)
TW (1) TWI336861B (ja)
WO (1) WO2008008675A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013522788A (ja) * 2010-03-22 2013-06-13 ブル・エス・アー・エス コンピュータシステムにおけるオペレーティングシステムの通信ネットワーク経由でのロードおよびブートを最適化するための方法、コンピュータプログラム、および装置

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002075525A1 (fr) * 2001-03-19 2002-09-26 Sony Corporation Systeme, procede et programme d'actualisation de logiciel
US20070283391A1 (en) * 2006-06-02 2007-12-06 Jay Connelly Method and system for partitioning television channels in a platform
US20090083375A1 (en) * 2006-07-10 2009-03-26 Chong Benedict T Installation of a Virtualization Environment
US7441113B2 (en) * 2006-07-10 2008-10-21 Devicevm, Inc. Method and apparatus for virtualization of appliances
US20090199132A1 (en) * 2006-07-10 2009-08-06 Devicevm, Inc. Quick access to virtual applications
US8769528B2 (en) * 2006-07-14 2014-07-01 Moka5, Inc. Fixed-function consumer-electronics device providing general-computing functions with virtual machines
KR100801014B1 (ko) * 2006-08-21 2008-02-04 삼성전자주식회사 Dos 부트 프로그램을 내장한 디스크를 구비하는 하드 디스크 드라이브와 그를 포함하는 컴퓨터 시스템, 상기 하드 디스크 드라이브의 펌웨어 다운로드 방법 및 그를 포함하는 기록 매체
US7840753B1 (en) * 2006-09-07 2010-11-23 Marvell International Ltd. Hard disk drive as hybrid drive
US8875271B2 (en) * 2006-12-08 2014-10-28 Microsoft Corporation Executing unsigned content and securing access in a closed system
US8095630B1 (en) * 2007-03-20 2012-01-10 Hewlett-Packard Development Company, L.P. Network booting
US7861038B2 (en) * 2007-07-17 2010-12-28 International Business Machines Corporation Method and apparatus for managing data in a hybrid drive system
US20090043557A1 (en) * 2007-08-08 2009-02-12 Branda Steven J Method, System, and Apparatus for Emulating Functionality of a Network Appliance in a Logically Partitioned Environment
US8560634B2 (en) 2007-10-17 2013-10-15 Dispersive Networks, Inc. Apparatus, systems and methods utilizing dispersive networking
US8539098B2 (en) 2007-10-17 2013-09-17 Dispersive Networks, Inc. Multiplexed client server (MCS) communications and systems
US8677352B2 (en) * 2007-10-31 2014-03-18 Vmware, Inc. Interchangeable guest and host execution environments
US20090138691A1 (en) * 2007-11-27 2009-05-28 Harold Lee Peterson Method, system and computer-readable medium for personalized computational device configuration
US10460085B2 (en) 2008-03-13 2019-10-29 Mattel, Inc. Tablet computer
US20090287571A1 (en) * 2008-03-26 2009-11-19 Robb Fujioka Hypervisor and virtual machine ware
US20090248793A1 (en) * 2008-03-25 2009-10-01 Contribio Ab Providing Content In a Network
US7979260B1 (en) * 2008-03-31 2011-07-12 Symantec Corporation Simulating PXE booting for virtualized machines
US8694989B1 (en) 2008-07-17 2014-04-08 Apple Inc. Virtual installation environment
CN102099787B (zh) * 2008-07-17 2014-03-26 Lsi公司 用于在虚拟化的服务器平台上安装可引导的虚拟存储设备的系统和方法
US8745601B1 (en) * 2008-07-17 2014-06-03 Apple Inc. Methods and systems for using data structures for operating systems
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
WO2010037022A1 (en) * 2008-09-26 2010-04-01 Fuhu, Inc. Hypervisor and webtop in a set top box environment
JP4909332B2 (ja) * 2008-10-07 2012-04-04 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置およびデバイス認識方法
US9176786B2 (en) * 2008-11-04 2015-11-03 Novell, Inc. Dynamic and automatic colocation and combining of service providers and service clients in a grid of resources for performing a data backup function
CN101754466B (zh) * 2008-12-10 2012-09-05 运软网络科技(上海)有限公司 移动虚拟化的基础设施以及基础平台
US8706836B2 (en) * 2008-12-15 2014-04-22 Shara Susznnah Vincent Live streaming media and data communication hub
US8108485B1 (en) 2008-12-17 2012-01-31 Sprint Communications Company L.P. Method and system for operating a communication system
US20100211769A1 (en) * 2009-02-19 2010-08-19 Subramonian Shankar Concurrent Execution of a Smartphone Operating System and a Desktop Operating System
JP5709359B2 (ja) * 2009-04-07 2015-04-30 ソニー株式会社 通信装置、通信方法、及び通信システム
US20100306774A1 (en) * 2009-05-28 2010-12-02 Subash Kalbarga Instant-On Computing System
US9277021B2 (en) * 2009-08-21 2016-03-01 Avaya Inc. Sending a user associated telecommunication address
US8887144B1 (en) * 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US10177934B1 (en) 2009-09-04 2019-01-08 Amazon Technologies, Inc. Firmware updates inaccessible to guests
US8971538B1 (en) 2009-09-08 2015-03-03 Amazon Technologies, Inc. Firmware validation from an external channel
US8959611B1 (en) 2009-09-09 2015-02-17 Amazon Technologies, Inc. Secure packet management for bare metal access
US8381264B1 (en) 2009-09-10 2013-02-19 Amazon Technologies, Inc. Managing hardware reboot and reset in shared environments
US8266290B2 (en) * 2009-10-26 2012-09-11 Microsoft Corporation Scalable queues on a scalable structured storage system
US8370614B2 (en) * 2009-10-29 2013-02-05 Hewlett-Packard Development Company, L.P. Booting a computer device
US8516137B2 (en) * 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
US8266419B2 (en) 2009-11-25 2012-09-11 Sprint Communications Company L.P. Fast restart on a virtual machine
WO2011069784A1 (en) 2009-12-11 2011-06-16 International Business Machines Corporation System and method of managing software content in virtual desktop environments
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US9104517B2 (en) * 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US8959183B2 (en) 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8166244B2 (en) * 2010-03-12 2012-04-24 Sandisk Il Ltd. Emulating a computer system on a removable storage device
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US8589702B2 (en) 2010-05-28 2013-11-19 Dell Products, Lp System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system
US8639923B2 (en) 2010-05-28 2014-01-28 Dell Products, Lp System and method for component authentication of a secure client hosted virtualization in an information handling system
US8751781B2 (en) 2010-05-28 2014-06-10 Dell Products, Lp System and method for supporting secure subsystems in a client hosted virtualization system
US8719557B2 (en) 2010-05-28 2014-05-06 Dell Products, Lp System and method for secure client hosted virtualization in an information handling system
US8527761B2 (en) 2010-05-28 2013-09-03 Dell Products, Lp System and method for fuse enablement of a secure client hosted virtualization in an information handling system
US8938774B2 (en) 2010-05-28 2015-01-20 Dell Products, Lp System and method for I/O port assignment and security policy application in a client hosted virtualization system
US9134990B2 (en) 2010-05-28 2015-09-15 Dell Products, Lp System and method for implementing a secure client hosted virtualization service layer in an information handling system
US8458490B2 (en) 2010-05-28 2013-06-04 Dell Products, Lp System and method for supporting full volume encryption devices in a client hosted virtualization system
US8990584B2 (en) 2010-05-28 2015-03-24 Dell Products, Lp System and method for supporting task oriented devices in a client hosted virtualization system
US8819321B2 (en) * 2010-06-03 2014-08-26 Dell Products L.P. Systems and methods for providing instant-on functionality on an embedded controller
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
CN102135866B (zh) * 2010-10-29 2013-07-17 华南理工大学 一种基于Xen安全计算机显示优化的方法
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
CN102075710B (zh) * 2010-12-09 2013-02-13 青岛海信信芯科技有限公司 一种电视机的启动运行方法及电视机
KR20120066529A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 가상 전자제품 제공 시스템
US8955110B1 (en) 2011-01-14 2015-02-10 Robert W. Twitchell, Jr. IP jamming systems utilizing virtual dispersive networking
US9411604B2 (en) * 2011-04-01 2016-08-09 Hewlett-Packard Development Company, L.P. Booting a computing device to have a predefined functionality
US9021245B2 (en) 2011-07-15 2015-04-28 International Business Machines Corporation Applying settings in a cloud computing environment based on geographical region
CN103843006B (zh) * 2011-09-30 2017-05-10 国际商业机器公司 用于向用户终端配备操作系统的方法和设备
US9245095B2 (en) 2011-10-25 2016-01-26 Ca, Inc. System and method for license management of virtual machines at a virtual machine manager
US8977735B2 (en) * 2011-12-12 2015-03-10 Rackspace Us, Inc. Providing a database as a service in a multi-tenant environment
US10310878B2 (en) * 2011-12-16 2019-06-04 Vmware, Inc. Execution of an application in a runtime environment installed in a virtual appliance
US9069607B1 (en) 2012-01-31 2015-06-30 Vmware, Inc. Selective migration of virtualized applications and configuration settings thereof
KR20130101648A (ko) * 2012-02-22 2013-09-16 한국전자통신연구원 가상화를 위한 보안 제공 장치 및 방법
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US8914785B2 (en) * 2012-07-30 2014-12-16 International Business Machines Corporation Providing virtual appliance system firmware images
CN103096167B (zh) * 2012-12-24 2018-11-30 康佳集团股份有限公司 一种智能电视的启动方法及系统
CN104285216B (zh) * 2013-03-08 2017-08-08 松下电器(美国)知识产权公司 信息共享方法
US9348608B2 (en) * 2013-04-24 2016-05-24 QRC, Inc. System and method for registering application and application transforms on a radiofrequency digitization and collection device
US9189345B1 (en) * 2013-09-25 2015-11-17 Emc Corporation Method to perform instant restore of physical machines
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
US10339316B2 (en) * 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
US9898307B2 (en) * 2015-12-21 2018-02-20 Intel Corporation Starting application processors of a virtual machine
US10432650B2 (en) 2016-03-31 2019-10-01 Stuart Staniford System and method to protect a webserver against application exploits and attacks
US10127049B2 (en) 2016-05-09 2018-11-13 International Business Machines Corporation Kernel-integrated instance-specific operational resources with virtualization
WO2017205220A1 (en) * 2016-05-23 2017-11-30 William Turner Hyperconverged system architecture featuring the container-based deployment of virtual machines
US10387228B2 (en) 2017-02-21 2019-08-20 Crowdstrike, Inc. Symmetric bridge component for communications between kernel mode and user mode
US10693972B2 (en) * 2017-08-25 2020-06-23 Salesforce.Com, Inc. Secure cross-domain session storage
US10644948B1 (en) * 2017-08-29 2020-05-05 Juniper Networks, Inc. Hypervisor detection of virtual machine and network interface compatibility
CN109522088A (zh) * 2018-09-30 2019-03-26 华为技术有限公司 一种虚拟机迁移方法及装置
JP7420920B2 (ja) * 2019-08-21 2024-01-23 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング モビリティソリューションの開発及び分配のためのシステム及び方法
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
WO2021150594A1 (en) 2020-01-20 2021-07-29 Parsons Corporation Narrowband iq extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions
CN113961086B (zh) * 2021-12-21 2022-04-01 统信软件技术有限公司 一种快捷键实现方法、计算设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991143A (ja) * 1995-07-14 1997-04-04 Sony Corp データ処理方法および装置
JP2001160036A (ja) * 1999-09-22 2001-06-12 Mitsubishi Electric Corp クライアントの汎用システムツール
JP2001306327A (ja) * 2000-04-24 2001-11-02 I-O Data Device Inc Os起動前のアプリケーション実行方法及びデータ処理システム
JP2002196934A (ja) * 2000-12-26 2002-07-12 Toshiba Corp 端末装置、携帯可能電子装置の取扱システムおよび携帯可能電子装置の取扱方法
JP2003032762A (ja) * 2001-07-19 2003-01-31 Mitsubishi Electric Corp 家電機器のチューンアップシステム及び家電機器のチューンアップ方法
JP2005505051A (ja) * 2001-10-02 2005-02-17 サイトリックス システムズ,インコーポレイテッド クライアント−サーバネットワークにおいてファイルタイプの関連性により分散型のプログラムの実行方法
JP2005202105A (ja) * 2004-01-15 2005-07-28 Ricoh Co Ltd 電子装置
JP2005533328A (ja) * 2002-07-30 2005-11-04 オーツー マイクロ, インコーポレーテッド 計算装置用低電力デジタルオーディオデコード、再生システム

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029077A (en) * 1986-01-17 1991-07-02 International Business Machines Corporation System and method for controlling physical resources allocated to a virtual terminal
US5452454A (en) * 1991-12-10 1995-09-19 Digital Equipment Corporation Generic remote boot for networked workstations by creating local bootable code image
US6678712B1 (en) * 1996-01-19 2004-01-13 International Business Machines Corporation Method and system for executing a program under one of a plurality of mutually exclusive operating environments
JPH1165996A (ja) * 1997-08-11 1999-03-09 Toshiba Corp ネットワークコンピュータおよびその初期化処理方法
US6362836B1 (en) * 1998-04-06 2002-03-26 The Santa Cruz Operation, Inc. Universal application server for providing applications on a variety of client devices in a client/server network
US6564318B1 (en) 1997-12-10 2003-05-13 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation and post-boot under normal OS control
US6119157A (en) * 1998-05-14 2000-09-12 Sun Microsystems, Inc. Protocol for exchanging configuration data in a computer network
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6367074B1 (en) * 1998-12-28 2002-04-02 Intel Corporation Operation of a system
US6356284B1 (en) * 1999-03-29 2002-03-12 Powerware Corporation Operating system-independent graphical user interface with sliding panel
US6262724B1 (en) * 1999-04-15 2001-07-17 Apple Computer, Inc. User interface for presenting media information
US6791572B1 (en) * 1999-06-18 2004-09-14 Phoenix Technologies Ltd. Generating media output during BIOS boot-up
US6763458B1 (en) * 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
JP3330569B2 (ja) * 1999-09-28 2002-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータの制御方法、コンピュータ及び記録媒体
US6847959B1 (en) * 2000-01-05 2005-01-25 Apple Computer, Inc. Universal interface for retrieval of information in a computer system
IT1320001B1 (it) * 2000-03-30 2003-11-12 Sab Wabco Spa Sistema di controllo e comunicazione per convogli ferroviari.
US7260564B1 (en) * 2000-04-07 2007-08-21 Virage, Inc. Network video guide and spidering
JP3827936B2 (ja) * 2000-10-18 2006-09-27 シャープ株式会社 情報提供制御装置、情報提供方法、情報提供プログラムを記録した記録媒体および情報提供システム
US20030014476A1 (en) * 2001-01-03 2003-01-16 Peterson David Allen Thin client computer operating system
US6839836B2 (en) * 2001-04-13 2005-01-04 Hewlett-Packard Development Company, L.P. Portable computing device with specialized operating system
US7356677B1 (en) * 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
US6943065B2 (en) * 2002-03-25 2005-09-13 Micron Technology Inc. Scalable high performance antifuse structure and process
US7343484B2 (en) * 2002-03-28 2008-03-11 O2Micro International Limited Personal computer integrated with personal digital assistant
JP4180834B2 (ja) * 2002-05-01 2008-11-12 富士通株式会社 情報処理装置および情報処理プログラム
US6948058B2 (en) 2002-07-26 2005-09-20 Mitac Technology Corp. Method and device for playing multimedia files in semi-power on state of a computer
TW588284B (en) 2002-11-12 2004-05-21 Mitac Technology Corp Computer real-time power-on system and method
TW591478B (en) 2002-11-12 2004-06-11 Mitac Technology Corp Apparatus and method of using personal computer to integrate functions of home electronics
TW577010B (en) 2002-11-12 2004-02-21 Mitac Technology Corp Device and method using software to implement hot key function of no embedded controller
US7082526B2 (en) * 2003-03-14 2006-07-25 Elegent Technologies, Inc. Mechanism for intuitively invoking one or more auxiliary programs during a computer booting process
US7941659B2 (en) * 2003-05-05 2011-05-10 Peter Ar-Fu Lam External memory enabling a user to select an application program to be launched before launching an operating system
US7822962B2 (en) * 2003-05-05 2010-10-26 Peter Ar-Fu Lam Application software configured to work with two operating systems
US20040268400A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Quick starting video content
US7793227B2 (en) * 2003-08-12 2010-09-07 Yahoo! Inc. Method and system of providing customizable buttons
US7076646B2 (en) 2003-11-05 2006-07-11 Mitac Technology Corp. Selective quick booting a partial set of devices corresponding to an event code via the BIOS
WO2005059758A1 (en) * 2003-12-19 2005-06-30 Danielle Louise Lehrer Method and system to download and track digital material
TWI308721B (en) * 2004-01-16 2009-04-11 Wistron Corp Remote boot method and device thereof and server device using remote boot method
TWI253014B (en) 2004-02-10 2006-04-11 Intervideo Digital Technology Architecture for sharing application programs between operation systems with power-saving effect and method thereof
TWI276950B (en) 2004-02-12 2007-03-21 Intervideo Digital Technology Computer power management architecture and method thereof
TW200532550A (en) 2004-03-17 2005-10-01 Intervideo Digital Technology Corp Computer system for executing multimedia player system and the method thereof
US7827558B2 (en) * 2004-06-30 2010-11-02 Devicevm, Inc. Mechanism for enabling a program to be executed while the execution of an operating system is suspended
US20060023638A1 (en) 2004-07-29 2006-02-02 Solutions4Networks Proactive network analysis system
US7421421B2 (en) * 2004-08-04 2008-09-02 International Business Machines Corporation Method for providing multi-variable dynamic search results visualizations
US7467293B2 (en) * 2004-11-12 2008-12-16 Tsinghua University Method and computing system for transparence computing on the computer network
WO2006056985A2 (en) * 2004-11-24 2006-06-01 Dynamic Flash Ltd. System and method for managing content of rich media
US8126843B2 (en) 2004-11-30 2012-02-28 International Business Machines Corporation Cluster-wide read-copy update system and method
US20060129531A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation Method and system for suggesting search engine keywords
US20060174302A1 (en) * 2005-02-01 2006-08-03 Bryan Mattern Automated remote monitoring system for construction sites
US20060179165A1 (en) * 2005-02-01 2006-08-10 Ming-Chun Chen Multipurpose charging system with transmission function
US7536391B2 (en) * 2005-05-20 2009-05-19 Microsoft Corporation System and method for URL virtualization and mapping
CN1716162A (zh) 2005-07-04 2006-01-04 英特维数位科技股份有限公司 休眠状态下多重作业系统切换方法及其切换装置
CN100432934C (zh) 2005-07-04 2008-11-12 英特维数位科技股份有限公司 电脑系统启动应用程式的架构及其方法
CN100454240C (zh) 2005-07-04 2009-01-21 英特维数位科技股份有限公司 电脑系统处理事件的架构及其方法
US20070048714A1 (en) * 2005-08-12 2007-03-01 Microsoft Corporation Media player service library
US20080009268A1 (en) * 2005-09-14 2008-01-10 Jorey Ramer Authorized mobile content search results
US20070113062A1 (en) * 2005-11-15 2007-05-17 Colin Osburn Bootable computer system circumventing compromised instructions
US7506144B2 (en) * 2005-11-21 2009-03-17 Intel Corporation Dynamic pre-operating system billboard service
US7487466B2 (en) * 2005-12-29 2009-02-03 Sap Ag Command line provided within context menu of icon-based computer interface
CN101000549A (zh) 2006-01-11 2007-07-18 英特维数位科技股份有限公司 加速开机程序的电子装置及其方法
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8001471B2 (en) * 2006-02-28 2011-08-16 Maven Networks, Inc. Systems and methods for providing a similar offline viewing experience of online web-site content
US20070214345A1 (en) * 2006-03-10 2007-09-13 Fleming John C System and method for porting an operating system
US20090083375A1 (en) * 2006-07-10 2009-03-26 Chong Benedict T Installation of a Virtualization Environment
US7441113B2 (en) * 2006-07-10 2008-10-21 Devicevm, Inc. Method and apparatus for virtualization of appliances
US20100306773A1 (en) * 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
US8291209B2 (en) * 2007-08-01 2012-10-16 Splashtop Inc. Integration model for instant-on environment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991143A (ja) * 1995-07-14 1997-04-04 Sony Corp データ処理方法および装置
JP2001160036A (ja) * 1999-09-22 2001-06-12 Mitsubishi Electric Corp クライアントの汎用システムツール
JP2001306327A (ja) * 2000-04-24 2001-11-02 I-O Data Device Inc Os起動前のアプリケーション実行方法及びデータ処理システム
JP2002196934A (ja) * 2000-12-26 2002-07-12 Toshiba Corp 端末装置、携帯可能電子装置の取扱システムおよび携帯可能電子装置の取扱方法
JP2003032762A (ja) * 2001-07-19 2003-01-31 Mitsubishi Electric Corp 家電機器のチューンアップシステム及び家電機器のチューンアップ方法
JP2005505051A (ja) * 2001-10-02 2005-02-17 サイトリックス システムズ,インコーポレイテッド クライアント−サーバネットワークにおいてファイルタイプの関連性により分散型のプログラムの実行方法
JP2005533328A (ja) * 2002-07-30 2005-11-04 オーツー マイクロ, インコーポレーテッド 計算装置用低電力デジタルオーディオデコード、再生システム
JP2005202105A (ja) * 2004-01-15 2005-07-28 Ricoh Co Ltd 電子装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013522788A (ja) * 2010-03-22 2013-06-13 ブル・エス・アー・エス コンピュータシステムにおけるオペレーティングシステムの通信ネットワーク経由でのロードおよびブートを最適化するための方法、コンピュータプログラム、および装置
JP2016035770A (ja) * 2010-03-22 2016-03-17 ブル・エス・アー・エス コンピュータシステムにおけるオペレーティングシステムの通信ネットワーク経由でのロードおよびブートを最適化するための方法、コンピュータプログラム、および装置

Also Published As

Publication number Publication date
WO2008008675A2 (en) 2008-01-17
US8086836B2 (en) 2011-12-27
EP2038740A4 (en) 2009-07-29
EP2038740A2 (en) 2009-03-25
WO2008008675A3 (en) 2008-10-09
TW200818011A (en) 2008-04-16
US20080320295A1 (en) 2008-12-25
US7441113B2 (en) 2008-10-21
US20080126785A1 (en) 2008-05-29
TWI336861B (en) 2011-02-01

Similar Documents

Publication Publication Date Title
US7441113B2 (en) Method and apparatus for virtualization of appliances
US20100306773A1 (en) Instant on Platform
US9519472B2 (en) Automation of virtual machine installation by splitting an installation into a minimal installation and customization
JP6192534B2 (ja) 仮想アプリケーション拡張ポイント
US7685593B2 (en) Systems and methods for supporting multiple gaming console emulation environments
US8688965B2 (en) System and method for increasing platform network boot efficiency
JP5001773B2 (ja) プラットフォームのブート効率を増加するシステム、方法および媒体
US20150178118A1 (en) Guest customization
US20090077551A1 (en) Virtual machine image builder for automated installation of fully-virtualized operating system
US20090083375A1 (en) Installation of a Virtualization Environment
US10574524B2 (en) Increasing reusability of and reducing storage resources required for virtual machine images
US20110276621A1 (en) Operating system and application virtualization for application execution
CN101490645A (zh) 用以设备虚拟化的方法及设备
US20150039875A1 (en) Deployment of Software Images with Distinct Configuration Logic
CN113741914B (zh) 操作系统安装机制
WO2016177261A1 (zh) 在线升级基于内核虚拟机模块的设备和方法
US20210149577A1 (en) Migration of storage for workloads between desktop and cloud environments
CN116069400A (zh) 一种VOI架构下启动Linux操作系统的方法及终端
US20210141657A1 (en) Pausing deployment of a virtual machine prior to a machine name dependency
US8074063B2 (en) Enhanced capabilities in provisioning
US9229763B2 (en) Virtual media shelf
CN117555558A (zh) 一种在嵌入式Linux操作系统上运行Android应用的方法
CN116880866A (zh) 安装操作系统的方法、设备及系统
CN115509590A (zh) 持续部署方法及计算机设备
Haines et al. SUN™ xVM HYPERVISOR ARCHITECTURE

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120508