JP6858885B2 - コンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法及び装置 - Google Patents

コンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法及び装置 Download PDF

Info

Publication number
JP6858885B2
JP6858885B2 JP2019553892A JP2019553892A JP6858885B2 JP 6858885 B2 JP6858885 B2 JP 6858885B2 JP 2019553892 A JP2019553892 A JP 2019553892A JP 2019553892 A JP2019553892 A JP 2019553892A JP 6858885 B2 JP6858885 B2 JP 6858885B2
Authority
JP
Japan
Prior art keywords
operating system
guest operating
screenshot
storage area
guest
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.)
Active
Application number
JP2019553892A
Other languages
English (en)
Other versions
JP2020521197A (ja
Inventor
李岩剛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudminds Shenzhen Robotics Systems Co Ltd
Original Assignee
Cloudminds Shenzhen Robotics Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cloudminds Shenzhen Robotics Systems Co Ltd filed Critical Cloudminds Shenzhen Robotics Systems Co Ltd
Publication of JP2020521197A publication Critical patent/JP2020521197A/ja
Application granted granted Critical
Publication of JP6858885B2 publication Critical patent/JP6858885B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/451Execution arrangements for user interfaces
    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本開示は、オペレーティングシステムの分野に関し、特に、コンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法及び装置に関する。
コンピュータデバイスにおいて、複数のオペレーティングシステムが運行されることができる。例えば、ホストオペレーティングシステムといくつかのゲストオペレーティングシステムは、同時に同一のコンピュータデバイス上で運行されることができる。複数のオペレーティングシステムの間はコンピュータデバイスにおけるハードウェア、例えばCPU、メモリ、入出力デバイスを共有する。ホストオペレーティングシステム上においては、ゲストオペレーティングシステム毎に1つの表示ウィンドウが配分される。ゲストオペレーティングシステムを表示する必要がある場合、ホストオペレーティングシステム上において配分された表示ウィンドウで表示される。ゲストオペレーティングシステムがバックグランドで運行される場合、配分された表示ウィンドウを非表示状態にし、ゲストオペレーティングシステムがフォアグラウンドで運行される場合、配分された表示ウィンドウを表示状態にする。
複数のオペレーティングシステムが同時に運行される場合、あるゲストオペレーティングシステムに対してスクリーンショットを撮る必要があることがある。この場合のスクリーンショット方法は単一のオペレーティングシステムのスクリーンショット方法と同様である。即ち、当該ゲストオペレーティングシステムのプロッティングリポジトリにおける全てのレイヤをトラバースして、レイヤにおける内容をプロッティングに使用される一つの記憶領域に逐一描画する。そして、当該領域におけるデータを読み出してユーザの画像フォーマットに変換し、ディスプレイにレンダリングすると、一回のゲストオペレーティングシステムのスクリーンショットが完了する。当該スクリーンショット方法は煩雑である。
本開示は、複数のオペレーティングシステムが同時に運行される環境において、ゲストオペレーティングシステムのスクリーンショットをより迅速にすることを1つの目的とする。
本開示の実施例の第1方面によれば、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウにより、前記ゲストオペレーティングシステムを表示する、ホストオペレーティングシステムを有するコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法が提供され、前記方法は、
ゲストオペレーティングシステムからのスクリーンショットのリクエストを受信することと、
ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索することと、
前記レイヤを、表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信することと、を含む。
1つの実施例では、前記の、前記レイヤを前記ゲストオペレーティングシステムに送信することは、具体的に、
前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画することと、
スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することと、を含む。
1つの実施例では、前記の、前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画することは、具体的に、
スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスを受信することと、
前記物理アドレスをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに変換することと、
前記レイヤを前記仮想アドレスに描画することと、を含む。
1つの実施例では、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、ゲストオペレーティングシステムのカーネルがスクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスを変換して得られるものである。
1つの実施例では、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは、具体的に、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含む。
1つの実施例では、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、前記クリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含む。
1つの実施例では、前記の、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することは、具体的に、
ホストオペレーティングシステムとゲストオペレーティングシステムとの間のチャンネルを介して、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することを含む。
1つの実施例では、前記の、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索することは、具体的に、
表示レイヤリポジトリから、ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索し、そのうち、前記表示レイヤリポジトリには、ホストオペレーティングシステム上において各ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤが格納されることを含む。
本開示の実施例の第2方面によれば、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウにより、前記ゲストオペレーティングシステムを表示する、ホストオペレーティングシステムを有するコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置が提供され、前記装置は、
ゲストオペレーティングシステムからのスクリーンショットのリクエストを受信するように配置された受信ユニットと、
ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索するように配置された検索ユニットと、
前記レイヤを、表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信するように配置された送信ユニットと、を含む。
1つの実施例では、前記送信ユニットは、さらに、
前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画し、
スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信するように配置されている。
1つの実施例では、前記の、前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画することは、具体的に、
スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスを受信することと、
前記物理アドレスをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに変換することと、
前記レイヤを前記仮想アドレスに描画することと、を含む。
1つの実施例では、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、ゲストオペレーティングシステムのカーネルがスクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスを変換して得られるものである。
1つの実施例では、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは、具体的に、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含む。
1つの実施例では、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、前記クリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含む。
1つの実施例では、前記の、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することは、具体的に、ホストオペレーティングシステムとゲストオペレーティングシステムとの間のチャンネルを介して、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することを含む。
1つの実施例では、前記検索ユニットは、さらに、
表示レイヤリポジトリから、ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索し、そのうち、前記表示レイヤリポジトリには、ホストオペレーティングシステム上において各ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤが格納されるように配置されている。
本開示の実施例の第3方面によれば、
コンピュータ読み取り可能なプログラム指令を格納するためのメモリと、
本開示の実施例の第1方面によるゲストオペレーティングシステムのスクリーンショット方法を実現するように、メモリに格納されたコンピュータ読み取り可能なプログラム指令を実行するためのプロセッサと、を含むコンピュータデバイスが提供される。
本開示の実施例の第4方面によれば、コンピュータ読み取り可能なプログラム指令が格納され、前記コンピュータ読み取り可能なプログラム指令がプロセッサによって実行される場合、本開示の実施例の第1方面によるゲストオペレーティングシステムのスクリーンショット方法を実現するコンピュータ読み取り可能な媒体が提供される。
本開示の実施例によって提供された技術案は、以下の有益な効果を奏し得る。
多オペレーティングシステムの場合、ホストオペレーティングシステム上においては、ゲストオペレーティングシステム毎に1つの表示ウィンドウが配分される。ゲストオペレーティングシステムを表示する必要がある場合、ホストオペレーティングシステム上において配分された表示ウィンドウで表示される。このような表示を行う際に、ゲストオペレーティングシステムの全てのレイヤをトラバースして、レイヤにおける内容をフレームバッファに逐一格納し、そして、フレームバッファに格納された内容に従って、ホストオペレーティングシステム上で配分された表示ウィンドウにレンダリングを行う。ゲストオペレーティングシステムがスクリーンショットを必要とする場合に、実際にホストオペレーティングシステム上で表示されるものと類似した操作が実行された。ただし、ホストオペレーティングシステム上で表示される場合、レイヤにおける内容がフレームバッファに格納され、これに対して、スクリーンショットの場合、レイヤにおける内容がスクリーンショット記憶領域に格納されている。したがって、本開示の実施例では、重複の操作を回避するために、ゲストオペレーティングシステムがスクリーンショットを撮る際に、ホストオペレーティングシステム上で表示される際の操作成果を利用し、即ち、ホストオペレーティングシステム上で表示される際に格納されたレイヤを直接にゲストオペレーティングシステムに送信し、ゲストオペレーティングシステムのスクリーンショット表示を行う。ホストオペレーティングシステム上で表示される際に取得されたゲストオペレーティングシステムのレイヤを利用したことによって新たに取得する必要がないため、ゲストオペレーティングシステムのスクリーンショットをより迅速にし、スクリーンショットの効率を向上させる。
本開示の他の特徴及び利点は、以下の詳細な説明により明らかになり、部分的に本開示の実施により習得される。
理解すべきことであるが、上記の一般的な説明と後述する細部の説明は、単なる例示的かつ説明的なものに過ぎず、本開示を限定するものではない。
図1は、本開示の1つの実施例による多オペレーティングシステムのコンピュータデバイスのブロック図である。 図2は、本開示の1つの実施例によって図1における各アドレス変換プロセスを示したコンピュータデバイスのブロック図である。 図3は、本開示の1つの実施例によるコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法のフローチャートである。 図4は、本開示の1つの実施例による図3におけるステップ330の詳細なフローチャートである。 図5は、本開示の1つの実施例による図4におけるステップ3301の詳細なフローチャートである。 図6は、本開示の1つの実施例によるコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置のブロック図である。 図7は、本開示の1つの実施例によるコンピュータデバイスのハードウェア構成図である。
以下、いくつかの例示的な実施形態を参照しながら本開示の原理と趣旨を説明する。理解すべきことは、これらの実施形態を提案するのは、当業者が本開示をより良く理解して、さらに実現するようにするためのものだけであり、いずれの方式で本開示の範囲を限定するものではない。逆に、これらの実施形態を提案するのは、本開示をより透徹かつ完全にするとともに、本開示の範囲を完全に当業者に知らせることができるようにするためのものである。
当業者が分かるように、本開示の実施形態は、システム、装置、デバイス、方法又はコンピュータプログラム製品として実現することができる。したがって、本開示は、具体的に、以下の態様として実現でき、即ち、完全なハードウェア、完全なソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はハードウェアとソフトウェアとの組み合わせの態様である。
図1は、本開示の1つの実施例による多オペレーティングシステムのコンピュータデバイスのブロック図である。
多オペレーティングシステムとは、一台のコンピュータデバイス上で運行される複数のオペレーティングシステムであり、そのうちの1つはホストオペレーティングシステム1でなければならず、残りは、1つ又は複数のゲストオペレーティングシステム2であってもよい。ホストオペレーティングシステムとは、コンピュータデバイスが優先して運行するオペレーティングシステムであって、コンピュータデバイスのハードウェアとソフトウェアリソースを管理かつ制御するコンピュータプログラムであり、他のいずれのソフトウェア又はシステムはいずれもホストオペレーティングシステムのサポートがなければ運行できない。ゲストオペレーティングシステムとは、ホストオペレーティングシステムに依存する、ゲスト向けのオペレーティングシステムである。ゲストオペレーティングシステムが運行される場合、それが使用するために仮想マシンがハードウェアデバイスをエミュレートしている。当該仮想マシンは、ホストオペレーティングシステムにおける一つのアプリケーションによって運行される。したがって、ゲストオペレーティングシステムはホストオペレーティングシステムに依存する。
図1に示されるように、ホストオペレーティングシステム1とゲストオペレーティングシステム2は、CPU、メモリ、周辺機器等を含むコンピュータデバイスのハードウェア4を共有する。ホストオペレーティングシステム1は、ホストオペレーティングシステム・カーネル3とホストオペレーティングシステム・アプリケーション11とを含む。上記のように、ゲストオペレーティングシステムはホストオペレーティングシステムに依存したため、ゲストオペレーティングシステム2もホストオペレーティングシステムカーネル3上に構築されている。。
ゲストオペレーティングシステム2は、仮想マシンによって管理された仮想CPU、仮想クロック、仮想割り込み管理器及び仮想周辺機器からなるハードウェアプラットフォーム上で運行される。仮想CPUは、ゲストオペレーティングシステム2が指令と演算を実行する主なユニットである。仮想クロックは、ゲストオペレーティングシステムがプロセススケジューリング等の操作を行うクロックソースを提供する。仮想割り込み管理器は、各種の仮想周辺機器によって生成された、仮想CPUに提供される割り込み信号を管理する。仮想周辺機器は、仮想マシンによって実現された各種の入出力デバイスモジュールである。ホストオペレーティングシステム1上で運行される仮想マシンエミュレータ(emulator)14は、ホストオペレーティングシステムの実際のCPUが仮想マシンの指令の実行を開始すること、実際のCPU上にてホストオペレーティングシステムからゲストオペレーティングシステムに切り替えられること、及びゲストオペレーティングシステムからホストオペレーティングシステムに切り替えられた後、ゲストオペレーティングシステムが実行を継続するか等を制御する。仮想マシンエミュレータ14は、仮想マシンの仮想周辺機器が使用できるように、ホストオペレーティングシステム上における実際の入出力デバイスと関連のファイルを操作かつ監視する必要もある。したがって、ゲストオペレーティングシステムも仮想マシンエミュレータ14上に構築されている。
仮想マシンエミュレータ14にはアドレス変換機構15が含まれ、アドレス変換機構15の機能について、後で詳細に説明する。
ホストオペレーティングシステム・アプリケーション11には、ホストオペレーティングシステム・バックエンド・プロッティングプログラム13とホストオペレーティングシステム・レンダリング・モジュール12が含まれる。上記のように、ホストオペレーティングシステム上においては、ゲストオペレーティングシステム毎に1つの表示ウィンドウが配分される。ゲストオペレーティングシステムを表示する必要がある場合、ホストオペレーティングシステム上において配分された表示ウィンドウで表示される。ホストオペレーティングシステム・バックエンド・プロッティングプログラム13がこのような表示を行う際に、ゲストオペレーティングシステムの全てのレイヤをトラバースして、レイヤにおける内容をフレームバッファのプログラムに逐一格納する。ホストオペレーティングシステム・レンダリング・モジュール12は、フレームバッファに格納された内容に従って、ホストオペレーティングシステム上で配分された表示ウィンドウにレンダリングを行う機能を果たす。
ゲストオペレーティングシステム2は、ゲストオペレーティングシステム・カーネル23とゲストオペレーティングシステム・アプリケーション21とを含む。ゲストオペレーティングシステム・カーネル23は、ホストオペレーティングシステムとゲストオペレーティングシステムとの間のチャンネル24を含み、それについては後で詳細に説明する。ゲストオペレーティングシステム・アプリケーション21は、ゲストオペレーティングシステム・レンダリング・モジュール22を含む。従来技術におけるゲストオペレーティングシステムのスクリーンショット方法は単一のオペレーティングシステムのスクリーンショット方法と同様である。即ち、当該ゲストオペレーティングシステムのプロッティングリポジトリにおける全てのレイヤをトラバースして、レイヤにおける内容をプロッティングに使用される一つの記憶領域に逐一描画する。そして、当該領域におけるデータを読み出してユーザの画像フォーマットに変換し、ディスプレイにレンダリングし、当該レンダリングはゲストオペレーティングシステム・レンダリング・モジュール22によって実行される。
多オペレーティングシステムの場合、上記のように、ゲストオペレーティングシステムがスクリーンショットを必要とする場合に、実際にホストオペレーティングシステム上で表示されるものと類似した操作が実行された。ただし、ホストオペレーティングシステム上で表示される場合、レイヤにおける内容がフレームバッファに格納され、これに対して、スクリーンショットの場合、レイヤにおける内容がスクリーンショット記憶領域に格納されている。したがって、本開示の実施例では、重複の操作を回避するために、ゲストオペレーティングシステムがスクリーンショットを撮る際に、ホストオペレーティングシステム上で表示される際の操作成果を利用し、即ち、ホストオペレーティングシステム上で表示される際に格納されたレイヤを直接にゲストオペレーティングシステムに送信し、ゲストオペレーティングシステムのスクリーンショット表示を行う。ホストオペレーティングシステム上で表示される際に取得されたゲストオペレーティングシステムのレイヤを利用したことによって新たに取得する必要がないため、ゲストオペレーティングシステムのスクリーンショットをより迅速にし、スクリーンショットの効率を向上させた。
図3に示されるように、本開示の実施例によるゲストオペレーティングシステムのスクリーンショット方法は、
ゲストオペレーティングシステムからのスクリーンショットのリクエストを受信するステップ310と、
ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索するステップ320と、
前記レイヤを、表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信するステップ330と、を含む。
これらのステップについて、以下で詳細に説明する。
ステップ310において、ゲストオペレーティングシステムからのスクリーンショットのリクエストを受信する。
スクリーンショットのリクエストとは、スクリーンショット操作を行うリクエストである。ユーザがゲストオペレーティングシステムにスクリーンショットを撮ろうとするリクエストを送信するときに、それが対応するサービスエンドがゲストオペレーティングシステムのレイヤ描画サービスに含まれる。当該サービスエンドはこれに基づいてホストオペレーティングシステム1にスクリーンショットのリクエストを送信する。
ステップ320において、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索する。
上記のように、ゲストオペレーティングシステムがスクリーンショットを必要とする場合に、実際にホストオペレーティングシステム上で表示されるものと類似した操作が実行された。ただし、ホストオペレーティングシステム上で表示される場合、レイヤにおける内容がフレームバッファに格納され、これに対して、スクリーンショットの場合、レイヤにおける内容がスクリーンショット記憶領域に格納されている。したがって、本開示の実施例では、ゲストオペレーティングシステムがホストオペレーティングシステム上で表示される時に、ゲストオペレーティングシステムのレイヤ内容をフレームバッファに代えて、表示レイヤリポジトリに取り込んだり、フレームバッファに取り込むと同時に表示レイヤリポジトリに取り込んだりする。このように、ステップ320において、表示レイヤリポジトリから、ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索することができる。そのうち、前記表示レイヤリポジトリには、ホストオペレーティングシステム上において各ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤが格納される。
ステップ330において、前記レイヤを、表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信する。
1つの実施例では、ホストオペレーティングシステムとゲストオペレーティングシステムとの間のチャンネル24を介して、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信する。スクリーンショット記憶領域に格納された内容は、ホストオペレーティングシステムにより配分された表示ウィンドウの表示画面のゲストオペレーティングシステムのレイヤであり、そして、ゲストオペレーティングシステムはホストオペレーティングシステムの配分ウィンドウで表示される際に1つのレイヤのみがある。当該レイヤの内容はゲストオペレーティングシステムのスクリーンショットと同様である。当該レイヤを前記ゲストオペレーティングシステムに送信すれば、ゲストオペレーティングシステムのスクリーンショットを表示することができる。
1つの実施例では、図4に示されるように、ステップ330は、
前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画するステップ3301と、
スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信するステップ3302と、を含む。
1つの実施例では、図5に示されるように、ステップ3301は、
スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスを受信するステップ33011と、
前記物理アドレスをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに変換するステップ33012と、
前記レイヤを前記仮想アドレスに描画するステップ33013と、を含む。
図2に示されるように、ゲストオペレーティングシステムがホストオペレーティングシステムにスクリーンショットのリクエストを送信した後、ゲストオペレーティングシステムにおいて、ゲストオペレーティングシステムのサービスエンドはスクリーンショットデータを格納、保存するスクリーンショット記憶領域を申し込み、申し込んだスクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスをゲストオペレーティングシステム・カーネル23に送信する。1つの実施例では、当該アドレスは、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含んでもよい。あるいは、もう一つの実施例では、当該アドレスは、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレスと仮想終了アドレスを含んでもよい。具体的な例として、当該アドレスはこのような情報の形式でゲストオペレーティングシステム・カーネル23に送信することができる:{プロッティング操作、スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレス、記憶領域の大きさ}。
1つの実施例では、ゲストオペレーティングシステム・カーネル23は、スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレス31をスクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレス32に変換する。当該変換は、ゲストオペレーティングシステム・カーネルの記憶管理メカニズムを採用することで実現できる。スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスをスクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスに変換する理由は、スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスはゲストオペレーティングシステム・アプリケーション21によって配分されたものであり、実際のアドレスというものではなく、ゲストオペレーティングシステム内部にのみ有効であることである。このような仮想アドレスをホストオペレーティングシステムに伝達すると、ホストオペレーティングシステムはホストオペレーティングシステム内の仮想アドレスとのマッピングを確立できず、あるいは、マッピングを確立したとしても、意味がないと言える。例えば、ゲストオペレーティングシステムが複数ある場合、同一の仮想アドレスが異なるゲストオペレーティングシステムにおいて実際に異なる2つの物理アドレスに対応する。このように、ゲストオペレーティングシステムが占用したいスクリーンショット記憶領域がホストオペレーティングシステムのどのような仮想アドレスに対応するかが分からないため、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤをゲストオペレーティングシステムに伝達することができない。
1つの例では、もしゲストオペレーティングシステム・カーネル23に送信されたアドレス情報が{プロッティング操作、スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレス、記憶領域の大きさ}であれば、ゲストオペレーティングシステム・カーネル23によって変換されて、{プロッティング操作、スクリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレス、記憶領域の大きさ}を得る。
そして、1つの実施例では、図2に示されるように、ゲストオペレーティングシステム・カーネル23は、クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレス32をアドレス変換機構15に送信し、アドレス変換機構15は、クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレス32をクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレス33に変換する。1つの実施例では、アドレス変換機構15に、クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレス32とクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレス33の対応関係テーブルを予め格納することができる。前記変換は、この対応関係テーブルを検索することにより実現される。
1つの実施例では、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは、具体的に前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含む。一つの具体的な例として、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは以下の情報のフォーマットを採用することができる:{プロッティング操作、スクリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレス、記憶領域の大きさ}。前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは以下の情報のフォーマットを採用することができる:{プロッティング操作、スクリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレス、記憶領域の大きさ}。
もう一つの実施例では、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと物理終了アドレスを含み、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは、具体的に前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレスと仮想終了アドレスを含む。
そして、図2に示されるように、アドレス変換機構15は、変換された前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスをホストオペレーティングシステム・バックエンド・プロッティングプログラム13に送信する。ホストオペレーティングシステム・バックエンド・プロッティングプログラム13は、表示レイヤリポジトリ19から取得された、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスの領域に描画する。描画か完了した後、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスの領域における内容、即ちゲストオペレーティングシステムのレイヤを、表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信する。
本開示の実施例では、アドレス変換機構を採用して、スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに変換する。このようにするメリットは、このようなアドレス変換によって、ホストオペレーティングシステムにおける仮想アドレスとゲストオペレーティングシステムにおける物理アドレスとの間にマッピングを容易に確立し、ホストオペレーティングシステム1はホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤをホストオペレーティングシステムのどの仮想アドレスに配置することが分かるようになる。これは、ゲストオペレーティングシステムがスクリーンショットを表示できるための実際の物理アドレスに配置したことに相当し、ゲストオペレーティングシステムのスクリーンショットの効率を大幅に向上させる。
図6に示されるように、本開示の1つの実施例によれば、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウにより、前記ゲストオペレーティングシステムを表示する、ホストオペレーティングシステムを有するコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置がさらに提供され、前記装置は、
ゲストオペレーティングシステムからのスクリーンショットのリクエストを受信するように配置された受信ユニット610と、
ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索するように配置された検索ユニット620と、
前記レイヤを表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信するように配置された送信ユニット630と、を含む。
選択できるように、前記送信ユニット630は、さらに、
前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画し、
スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信するように配置されている。
選択できるように、前記の、前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画することは、具体的に、
スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスを受信することと、
前記物理アドレスをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに変換することと、
前記レイヤを前記仮想アドレスに描画することと、を含む。
選択できるように、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、ゲストオペレーティングシステムのカーネルがスクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスを変換して得られるものである。
選択できるように、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは、具体的に、前記クリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含む。
選択できるように、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、前記クリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスは、具体的に、前記クリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含む。
選択できるように、前記の、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することは、具体的に、
ホストオペレーティングシステムとゲストオペレーティングシステムとの間のチャンネルを介して、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することを含む。
選択できるように、前記検索ユニットは、さらに、
表示レイヤリポジトリから、ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索し、そのうち、前記表示レイヤリポジトリには、ホストオペレーティングシステム上において各ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤが格納されるように配置されている。
以下、図7を参照しながら本開示の実施形態によるコンピュータデバイス800を説明する。図7に示されるコンピュータデバイス800は単なる例示に過ぎず、本発明の実施例の機能と適用範囲を限定するものではない。
図7に示されるように、コンピュータデバイス800は汎用コンピュータの態様で表され、コンピュータデバイス800のコンポーネントは、少なくとも1つの処理ユニット810と、少なくとも1つの記憶ユニット820と、異なるシステムコンポーネントを接続する(処理ユニット810と記憶ユニット820とを含む)バス830とを含んでもよいが、これらに限らない。
そのうち、前記記憶ユニットには、前記処理ユニット810によって実行可能なプログラムコードが格納されており、これによって、前記処理ユニット810は、本明細書の上記例示的な方法の説明部分に記載された本発明の各例示的な実施形態によるステップを実行することができる。例えば、前記処理ユニット810は図3に示される各ステップを実行することができる。
記憶ユニット820は、揮発性記憶ユニットの態様の読み取り可能な媒体、例えばランダムアクセス記憶ユニット(RAM)8201及び/又はキャッシュ記憶ユニット8202を含んでもよく、読み取り専用記憶ユニット(ROM)8203をさらに含んでもよい。
記憶ユニット820は、1組(少なくとも1つ)のプログラムモジュール8205を有するプログラム/ユーティリティ8204を含んでもよく、このようなプログラムモジュール8205は、オペレーティングシステム、1つ又は複数のアプリケーション、他のプログラムモジュール、およびプログラムデータを含むが、これらに限らず、これらの例示の各々又はある組み合わせには、ネットワーク環境の実現を含む可能性がある。
バス830は、いくつかのタイプのバス構成の一種又は多種であってもよく、記憶ユニットバス又は記憶ユニットコントローラ、周辺バス、グラフィックス加速ポート、処理ユニット、又は各種のバス構成のいずれかのバス構成を使用するローカルエリアバスを含む。
コンピュータデバイス800は、1つ又は複数の外部デバイス700(例えば、キーボード、ポインティングデバイス、ブルートゥースデバイス等)と通信することができ、ユーザが当該コンピュータデバイス800と対話できるようにする1つ又は複数のデバイスと通信することもでき、及び/又は、当該コンピュータデバイス800が1つ又は複数の他のコンピュータデバイスと通信できるようにする任意のデバイス(例えば、ルータ、変復調器等)と通信することができる。このような通信は、入出力(I/O)インターフェース850を介して行うことができる。また、コンピュータデバイス800は、ネットワークアダプタ860を介して1つ又は複数のネットワーク(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、および/又は公衆ネットワーク、例えばインターネット)と通信することもできる。図7に示されるように、ネットワークアダプタ860はバス830を介してコンピュータデバイス800の他のモジュールと通信する。理解すべきことは、図示されていないが、コンピュータデバイス800を組み合わせて他のハードウェア及び/又はソフトウェアモジュールを使用することができ、マイクロコード、デバイスドライバー、冗長処理ユニット、外部磁気ディスクドライブアレイ、RAIDシステム、磁気テープドライバ及びデータバックアップ記憶システム等を含むが、これらに限らない。
以上の実施形態の説明によれば、当業者が容易に理解できるように、ここで説明された例示的な実施形態はソフトウェアにより実現されてもよいし、ソフトウェアを必要なハードウェアと組み合わせることで実現されてもよい。したがって、本開示の実施形態による技術案は、ソフトウェア製品という態様で表されることができ、当該ソフトウェア製品は、不揮発性記憶媒体(CD−ROM、USBメモリ、リムーバブルハードディスク等であってもよい)又はネットワーク上に格納され、一台のコンピュータデバイス(パソコン、サーバ、端末装置、又はネットワークデバイス等であってもよい)が本開示の実施形態による方法を実行できるように、いくつかの指令を含んでもよい。
本開示の例示的な実施例では、コンピュータ読み取り可能な指令が格納され、前記コンピュータ読み取り可能な指令がコンピュータのプロセッサによって実行される場合、コンピュータが上記方法実施例部分に記載された方法を実行するようにするコンピュータプログラム媒体がさらに提供されている
本開示の1つの実施例によれば、ポータブル形コンパクト・ディスク−読み取り専用メモリ(CD−ROM)を採用でき、かつプログラムコードを含み、端末装置、例えばパソコン上で運行できる、上記方法実施例における方法を実現するためのプログラム製品がさらに提供されている。しかしながら、本発明のプログラム製品はこれに限らず、本明細書では、読み取り可能な記憶媒体は、プログラムを包含又は記憶する任意の実体媒体であってもよく、当該プログラムは指令実行システム、装置又はデバイスによって使用され、又はそれらと組み合わせて使用されてもよい。
前記プログラム製品は1つ又は複数の読み取り可能な媒体の任意の組み合わせを使用してもよい。読み取り可能な媒体は、読み取り可能な信号媒体又は読み取り可能な記憶媒体であってもよい。読み取り可能な記憶媒体は、例えば電気、磁気、光、電磁気、赤外線、又は半導体のシステム、装置又はデバイス、又は任意の以上の組み合わせであってもよいが、これらに限らない。読み取り可能な記憶媒体のさらなる具体的な例(非網羅的なリスト)として、1つ又は複数のワイヤを有する電気接続、ポータブル形ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能・プログラム可能な読み取り専用メモリ(EPROM又はフラッシュメモリ)、光ファイバー、ポータブル形コンパクト・ディスク−読み取り専用メモリ(CD−ROM)、光学メモリ、磁気メモリ、又は上記の任意の適切な組み合わせを含む。
コンピュータ読み取り可能な信号媒体は、ベースバンドにおいて、又は搬送波の一部として伝播されるデータ信号を含んでもよく、そのうち、読み取り可能なプログラムコードが搭載されている。このように伝播されるデータ信号は、種々の態様を採用することができ、電磁信号、光信号、又は前述の任意の適切な組み合わせを含むが、これらに限らない。読み取り可能な信号媒体は、読み取り可能な記憶媒体以外の任意の読み取り可能な媒体であってもよく、当該読み取り可能な媒体は、指令実行システム、装置又はデバイスによって使用され、又はそれらと組み合わせて使用されたプログラムを送信、伝播又は伝送することができる。
読み取り可能な媒体に含まれるプログラムコードは、任意の適切な媒体で伝送されることができ、無線、有線、光ケーブル、RF等、又は上記の任意の適切な組み合わせを含むが、これらに限らない。
1つ又は複数のプログラミング言語の任意の組み合わせで本発明の操作を実行するためのプログラムコードを作成することができ、前記プログラミング言語は、Java、C++等のオブジェクト向けのプログラミング言語を含み、「C」言語又は類似するプログラミング言語等の通常の手続き型プログラミング言語も含む。プログラムコードは、完全にユーザコンピューティングデバイス上で実行され、部分的にユーザデバイス上で実行され、独立したソフトウェアパッケージとして実行され、一部がユーザコンピューティングデバイス上で実行され、一部がリモートコンピューティングデバイス上で実行され、あるいは、完全にリモートコンピューティングデバイス又はサーバ上で実行される。リモートコンピューティングデバイスに係る場合、リモートコンピューティングデバイスは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザコンピューティングデバイスに接続されることができ、あるいは、外部コンピューティングデバイスに接続される(例えば、インターネットサービスプロバイダを利用してインターネットを通じて接続される)ことができる。
注意すべきことであるが、上記の詳細な説明では、動作実行のためのデバイスのいくつかのモジュール又はユニットが言及されているが、このような区分は強制的なものではない。実際には、本開示の実施形態によれば、上記に記載された2つ以上のモジュール又はユニットの特徴と機能は1つのモジュール又はユニットで具体化されることができる。逆に、上記に記載された1つのモジュール又はユニットの特徴と機能はさらに複数のモジュール又はユニットによって具体化されるように区分されることができる。
なお、図面では、特定の順序で本開示の方法の各ステップが説明されているが、これは、当該特定の順序でこれらのステップを実行しなければならないことを要求又は示唆し、又はすべての示されるステップを実行しなければ希望の結果を実現できないというわけではない。追加的又は代替的に、いくつかのステップを省略したり、複数のステップを1つのステップに併合して実行したり、及び/又は1つのステップを複数のステップに分解して実行したりしてもよい。
以上の実施形態の説明によれば、当業者が容易に理解できるように、ここで説明された例示的な実施形態はソフトウェアにより実現されてもよいし、ソフトウェアを必要なハードウェアと組み合わせることで実現されてもよい。したがって、本開示の実施形態による技術案は、ソフトウェア製品という態様で表されることができ、当該ソフトウェア製品は、不揮発性記憶媒体(CD−ROM、USBメモリ、リムーバブルハードディスク等であってもよい)又はネットワーク上に格納され、一台のコンピュータデバイス(パソコン、サーバ、端末装置、又はネットワークデバイス等であってもよい)が本開示の実施形態による方法を実行できるように、いくつかの指令を含んでもよい。
当業者は、本明細書を考慮し、かつここで開示された発明を実施した後、本開示の他の実施案を容易に想到し得る。本願は、本開示のいかなる変形、用途又は適応的な変化も含むことを意図しており、これらの変形、用途又は適応的な変化は、本開示の一般的な原理に従っており、本開示に開示されていない本分野の公知常識又は慣用の技術的手段を含む。本明細書及び実施例は例示的なものとみなされるだけであり、本開示の実際の範囲と趣旨は添付の特許請求の範囲によって指摘される。

Claims (18)

  1. ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウにより、前記ゲストオペレーティングシステムを表示する、ホストオペレーティングシステムを有するコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法であって、
    ゲストオペレーティングシステムからのスクリーンショットのリクエストを受信することと、
    ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索することと、
    前記レイヤを、表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信することと、を含むことを特徴とするコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  2. 前記の、前記レイヤを前記ゲストオペレーティングシステムに送信することは、具体的に、
    前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画することと、
    スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することと、を含むことを特徴とする請求項1に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  3. 前記の、前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画することは、具体的に、
    スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスを受信することと、
    前記物理アドレスをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに変換することと、
    前記レイヤを前記仮想アドレスに描画することと、を含むことを特徴とする請求項2に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  4. 前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、ゲストオペレーティングシステムのカーネルがスクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスを変換して得られるものであることを特徴とする請求項3に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  5. 前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、
    前記スクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは、具体的に、前記スクリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含むことを特徴とする請求項3に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  6. 前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、
    前記スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスは、具体的に、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含むことを特徴とする請求項4に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  7. 前記の、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することは、具体的に、
    ホストオペレーティングシステムとゲストオペレーティングシステムとの間のチャンネルを介して、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することを含むことを特徴とする請求項2に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  8. 前記の、ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索することは、具体的に、
    表示レイヤリポジトリから、ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索し、そのうち、前記表示レイヤリポジトリには、ホストオペレーティングシステム上において各ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤが格納されることを含むことを特徴とする請求項1に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法。
  9. ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウにより、前記ゲストオペレーティングシステムを表示する、ホストオペレーティングシステムを有するコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置であって、
    ゲストオペレーティングシステムからのスクリーンショットのリクエストを受信するように配置された受信ユニットと、
    ホストオペレーティングシステム上においてゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索するように配置された検索ユニットと、
    前記レイヤを、表示されるゲストオペレーティングシステムのスクリーンショットとして前記ゲストオペレーティングシステムに送信するように配置された送信ユニットと、を含むことを特徴とするコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。
  10. 前記送信ユニットは、さらに、
    前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画し、
    スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信するように配置されていることを特徴とする請求項9に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。
  11. 前記の、前記レイヤをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに描画することは、具体的に、
    スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスを受信することと、
    前記物理アドレスをスクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスに変換することと、
    前記レイヤを前記仮想アドレスに描画することと、を含むことを特徴とする請求項10に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。
  12. 前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、ゲストオペレーティングシステムのカーネルがスクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスを変換して得られるものであることを特徴とする請求項11に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。。
  13. 前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、
    前記スクリーンショット記憶領域のホストオペレーティングシステムでの仮想アドレスは、具体的に、前記スクリーンショット記憶領域のホストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含むことを特徴とする請求項11に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。
  14. 前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理アドレスは、具体的に、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの物理開始アドレスと記憶領域の大きさを含み、
    前記スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想アドレスは、具体的に、前記スクリーンショット記憶領域のゲストオペレーティングシステムでの仮想開始アドレスと記憶領域の大きさを含むことを特徴とする請求項12に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。

  15. 前記の、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することは、具体的に、
    ホストオペレーティングシステムとゲストオペレーティングシステムとの間のチャンネルを介して、スクリーンショット記憶領域に格納された内容を前記ゲストオペレーティングシステムに送信することを含むことを特徴とする請求項10に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。
  16. 前記検索ユニットは、さらに、
    表示レイヤリポジトリから、ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤを検索し、そのうち、前記表示レイヤリポジトリには、ホストオペレーティングシステム上において各ゲストオペレーティングシステムに対して配分された表示ウィンドウが対応するレイヤが格納されるように配置されていることを特徴とする請求項9に記載のコンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット装置。
  17. コンピュータ読み取り可能なプログラム指令を格納するためのメモリと、
    請求項1乃至8のいずれか一項に記載の前記ゲストオペレーティングシステムのスクリーンショット方法を実現するように、メモリに格納されたコンピュータ読み取り可能なプログラム指令を実行するためのプロセッサと、を含むことを特徴とするコンピュータデバイス
  18. コンピュータ読み取り可能なプログラム指令が格納され、前記コンピュータ読み取り可能なプログラム指令がプロセッサによって実行される場合、請求項1乃至8のいずれか一項に記載の前記ゲストオペレーティングシステムのスクリーンショット方法を実現することを特徴とするコンピュータ読み取り可能な媒体。
JP2019553892A 2018-03-20 2018-03-20 コンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法及び装置 Active JP6858885B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/079662 WO2019178754A1 (zh) 2018-03-20 2018-03-20 计算机设备中客户操作系统屏幕截图方法和装置

Publications (2)

Publication Number Publication Date
JP2020521197A JP2020521197A (ja) 2020-07-16
JP6858885B2 true JP6858885B2 (ja) 2021-04-14

Family

ID=63841295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553892A Active JP6858885B2 (ja) 2018-03-20 2018-03-20 コンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法及び装置

Country Status (5)

Country Link
US (1) US11055154B2 (ja)
EP (1) EP3605327B1 (ja)
JP (1) JP6858885B2 (ja)
CN (1) CN108701045B (ja)
WO (1) WO2019178754A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108701045B (zh) 2018-03-20 2021-06-04 深圳前海达闼云端智能科技有限公司 计算机设备中客户操作系统屏幕截图方法和装置
CN110096326B (zh) * 2019-04-30 2021-08-17 维沃移动通信有限公司 一种截屏方法、终端设备及计算机可读存储介质
CN112764619B (zh) * 2021-01-22 2023-03-21 联想(北京)有限公司 一种窗口控制方法及电子设备
CN115706820A (zh) * 2021-08-10 2023-02-17 北京小米移动软件有限公司 录屏方法、装置及终端

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201229910A (en) * 2011-01-14 2012-07-16 Hon Hai Prec Ind Co Ltd Method of activating application in virtual environment
CN102810040B (zh) * 2011-05-31 2016-03-30 联想(北京)有限公司 一种显示处理方法、装置及计算机系统
JP5862408B2 (ja) 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
CN102799383B (zh) * 2012-07-18 2014-05-14 腾讯科技(深圳)有限公司 移动终端屏幕截图方法、屏幕截图装置
US20160350136A1 (en) * 2015-05-27 2016-12-01 Google Inc. Assist layer with automated extraction
CN104850327B (zh) * 2015-05-27 2019-07-16 小米科技有限责任公司 移动终端的屏幕截图方法及装置、电子设备
CN104899039B (zh) * 2015-06-12 2018-12-25 百度在线网络技术(北京)有限公司 用于在终端设备上提供截屏服务的方法和装置
CN105100664A (zh) * 2015-08-21 2015-11-25 北京金山安全软件有限公司 一种图像生成方法及装置
CN107003875A (zh) * 2016-12-13 2017-08-01 深圳前海达闼云端智能科技有限公司 用于多操作系统的显示方法、装置和电子设备
CN108701045B (zh) * 2018-03-20 2021-06-04 深圳前海达闼云端智能科技有限公司 计算机设备中客户操作系统屏幕截图方法和装置

Also Published As

Publication number Publication date
US20200065165A1 (en) 2020-02-27
EP3605327A4 (en) 2020-04-22
US11055154B2 (en) 2021-07-06
WO2019178754A1 (zh) 2019-09-26
EP3605327A1 (en) 2020-02-05
EP3605327B1 (en) 2021-12-15
CN108701045B (zh) 2021-06-04
JP2020521197A (ja) 2020-07-16
CN108701045A (zh) 2018-10-23

Similar Documents

Publication Publication Date Title
JP6858885B2 (ja) コンピュータデバイスにおけるゲストオペレーティングシステムのスクリーンショット方法及び装置
US11467978B2 (en) Method and apparatus for hardware virtualization
KR101751936B1 (ko) 호스트 기반 단말 가상화 환경에서 공유 메모리를 이용한 입출력 디바이스 가상화 장치 및 방법
US8151033B2 (en) Mechanism for virtual logical volume management
US11010859B2 (en) Display resource scheduling method and device for embedded system
TWI588751B (zh) 透過基板管理控制器管理虛擬機器的電腦主機與方法
US20130174151A1 (en) Information processing apparatus and method of controlling virtual machine
KR20200087052A (ko) NVMe-SSD 저장 장치 및 NVMe-oF 호스트 유닛 사이의 통신 관리 시스템 및 방법
TWI425415B (zh) 顯示系統及其顯示方法
KR20110052714A (ko) 이름 분석을 사용한 가상 리소스의 프로비저닝
US9336032B2 (en) Zoning data to a virtual machine
JP2021502637A (ja) コンピューティング環境内の処理を促進するためのコンピュータ・プログラム、コンピュータ・システムおよび方法
KR20140027741A (ko) 응용 서비스 제공 시스템 및 방법, 응용 서비스를 위한 서버 장치 및 클라이언트 장치
TW201229902A (en) Method of launching application in VM
WO2023066079A1 (zh) 虚拟机资源分配方法、装置、介质及设备
US10210007B2 (en) Parallel mapping of client partition memory to multiple physical adapters
US11036431B2 (en) Accessing persistent memory via load and store
WO2015154226A1 (zh) 一种虚拟化环境中的数据通信的方法、装置及处理器
KR20220048311A (ko) 가상화 환경에서 사용자 가상머신의 화면을 미러링하는 방법
CN113835816A (zh) 一种虚拟机桌面显示方法、装置、设备及可读存储介质
US20190236196A1 (en) System and method for navigating using a search functionality
CN116126441A (zh) 数据处理方法及装置
KR20230011823A (ko) 다중 하드웨어 운용장치 및 이를 포함하는 연구개발 가상환경 운용 시스템
JP2018025946A (ja) リソース管理システム、リソース管理サーバ及びリソース管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210308

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210324

R150 Certificate of patent or registration of utility model

Ref document number: 6858885

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250