DE112011105051T5 - Teilen der Internet-Fähigkeit einer mobilen Computereinrichtung mit einer Client-Computereinrichtung unter Verwendung einer virtuellen Maschine - Google Patents

Teilen der Internet-Fähigkeit einer mobilen Computereinrichtung mit einer Client-Computereinrichtung unter Verwendung einer virtuellen Maschine Download PDF

Info

Publication number
DE112011105051T5
DE112011105051T5 DE112011105051T DE112011105051T DE112011105051T5 DE 112011105051 T5 DE112011105051 T5 DE 112011105051T5 DE 112011105051 T DE112011105051 T DE 112011105051T DE 112011105051 T DE112011105051 T DE 112011105051T DE 112011105051 T5 DE112011105051 T5 DE 112011105051T5
Authority
DE
Germany
Prior art keywords
computing device
hypervisor
mobile computing
client computing
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.)
Ceased
Application number
DE112011105051T
Other languages
English (en)
Inventor
Syed Azam
Chi W. So
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112011105051T5 publication Critical patent/DE112011105051T5/de
Ceased 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/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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

Abstract

Beispielhafte Ausführungsformen betreffen die Verwendung eines Bildes einer virtuellen Maschine zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs. Bei beispielhaften Ausführungsformen wird ein auf einem Speichermedium einer mobilen Computereinrichtung gewartetes Bild einer virtuellen Maschine in einer Client-Computereinrichtung empfangen. Ein im Bild der virtuellen Maschine enthaltenes Gast-Betriebssystem (BS) kann anschließend auf der Client-Computereinrichtung ausgeführt werden. Netzwerkdaten können anschließend zwischen dem Gast-BS und der mobilen Computereinrichtung über eine Schnittstelle zwischen der Client-Computereinrichtung und der mobilen Computereinrichtung ausgetauscht werden.

Description

  • Hintergrund
  • Angesichts der schnellen Entwicklung mobiler Einrichtungen, wie z. B. von Mobiltelefonen, drahtlosen E-Mail-Einrichtungen und Tablet-Computern, haben Benutzer heute an beliebigen physischen Standorten Zugang zu Einrichtungen mit signifikanter Rechenleistung und Speicherkapazität. Weiter können Benutzer durch die nahezu globale Präsenz von Funkzellen- und anderen drahtlosen Netzwerken, diese mobilen Einrichtungen auch von praktisch beliebigen physischen Standorten für den einfachen Internetzugang nutzen.
  • Kurzbeschreibung der Zeichnungen
  • Die folgende detaillierte Beschreibung nimmt Bezug auf die Zeichnungen, die Folgendes zeigen:
  • 1 ist ein Blockdiagramm einer beispielhaften Client-Computereinrichtung zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs;
  • 2A ist ein Blockdiagramm einer beispielhaften Client-Computereinrichtung, die einen Typ-1-Hypervisor ausführt und den für eine mobile Computereinrichtung verfügbaren Internetzugang teilt.
  • 2B ist ein Blockdiagramm einer beispielhaften Client-Computereinrichtung, die einen Typ-2-Hypervisor ausführt und den für eine mobile Computereinrichtung verfügbaren Internetzugang teilt.
  • 3 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs mit einer Client-Computereinrichtung.
  • 4A ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Initialisieren einer Client-Computereinrichtung mit einem Typ-1-Hypervisor zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs.
  • 4B ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Initialisieren einer Client-Computereinrichtung mit einem Typ-2-Hypervisor zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs.
  • 5A ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Übertragen von in einem Gast-BS einer Client-Computereinrichtung erzeugten Paketen unter Verwendung eines virtuellen Netzwerktreibers; und
  • 5B ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Empfang von für ein Gast-BS einer Client-Computereinrichtung vorgesehenen Paketen unter Verwendung eines virtuellen Netzwerktreibers.
  • Detaillierte Beschreibung
  • Wie oben erläutert, stellen viele mobile Computereinrichtungen signifikante Speicher- und Computerfähigkeiten bereit, wobei sie auch den Netzwerkzugriff für den Nutzer unabhängig von dessen Standort bereitstellen. Obwohl mobile Einrichtungen sehr bequem sind, greifen die meisten Nutzer auch auf andere Einrichtungen als ihre Mobilgeräte zu, wie z. B. auf Desktop- oder Notebook-Computer. Leider sind Desktops, Notebooks und andere ähnliche Einrichtungen im Allgemeinen vorkonfiguriert, um ein bestimmtes Betriebssystem (BS) und eine vorbestimmte Gruppe von Anwendungen auszuführen. Demzufolge muss der Nutzer im Allgemeinen jeden Desktop oder Notebook, den er oder sie verwendet, manuell anpassen. Weiter kann der Nutzer in einigen Situationen möglicherweise nicht in der Lage sein, die Computereinrichtung anzupassen, wenn das Gerät beispielsweise an einem öffentlichen Ort wie einer Bibliothek oder einem Arbeitsplatz ist. In Abhängigkeit vom Standort hat der Desktop, der Notebook oder das andere ähnliche Gerät weiter keinen Internetzugang.
  • Um diese Probleme zu behandeln, ermöglichen es hier beschriebene beispielhafte Ausführungsformen einem Nutzer, die Fähigkeiten eines mobilen Geräts zu nutzen, um auf einer Client-Computereinrichtung eine anpassbare Computerumgebung mit Internetzugang zu schaffen, auch wenn die Client-Einrichtung keine nativen Netzwerkfähigkeiten aufweist. Beispielsweise kann ein Benutzer bei einigen Ausführungsformen ein Bild einer virtuellen Maschine auf einem in einer mobilen Computereinrichtung enthaltenen Speichermedium speichern. Der Nutzer kann die mobile Computereinrichtung dann unter Verwendung einer gegebenen Schnittstelle, die kabelgebunden oder drahtlos sein kann, mit einer Client-Computer-Zieleinrichtung koppeln. Daraufhin kann der Client-Computer die virtuelle Maschine über die Schnittstelle empfangen und ein Gast-Betriebssystem laden, das im Bild der virtuellen Maschine enthalten ist. Nach der Initialisierung des Gast-BS kann die Client-Computereinrichtung anschließend über das Internet Netzwerkdaten mit der mobilen Computereinrichtung austauschen, wobei eine in der mobilen Computereinrichtung enthaltene Netzschnittstelle verwendet wird, um Internetzugang zu erhalten.
  • Auf diese Weise ermöglichen es hierin beschriebene beispielhafte Ausführungsformen einem Nutzer, ein angepasstes Bild der virtuellen Maschine auf die eigene mobile Computereinrichtung zu transportieren. Da der Nutzer anschließend unter Implementierung der hierin beschriebenen Funktionalität die Möglichkeit des Zugriffs auf diese individuelle Umgebung auf beliebigen Client-Einrichtungen hat, kann der Nutzer auf Reisen Notebook-Computer oder andere sperrige Geräte vermeiden, und er kann auch die Notwendigkeit der Anpassung jeder Client-Einrichtung, auf die zugegriffen wird, minimieren. Weiter ermöglichen es beispielhafte Ausführungsformen einem Benutzer, unter Verwendung des mobilen Geräts auf der Client-Computereinrichtung leicht sicheren Netzwerkzugang zu erhalten und damit den Netzzugriff auf dem Client-Gerät bereitzustellen, selbst wenn der Client nicht über native Netzwerkfähigkeiten verfügt. Zusätzliche Ausführungsformen und Vorteile dieser Ausführungsformen sind für Fachleute auf diesem Gebiet beim Lesen und Verstehen der folgenden Beschreibung offensichtlich.
  • Mit Bezug auf die Zeichnungen ist 1 ist ein Blockdiagramm einer beispielhaften Client-Computereinrichtung 100 zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs. Die Client-Computereinrichtung 100 kann beispielsweise ein Notebook-Computer, ein Desktop-Computer, ein All-in-One-System, eine Workstation, ein Tablet-Computergerät oder eine beliebige andere für die Ausführung der im Folgenden beschriebenen Funktionalität geeignete Computereinrichtung sein. Bei der Implementierung von 1 weist eine Client-Computereinrichtung 100 einen Prozessor 110, eine Schnittstelle 115 und ein maschinenlesbares Medium 120 auf.
  • Der Prozessor 110 kann eine oder mehrere Zentraleinheit(en) (CPU). Ein oder mehrere Mikrozessor(en) und/oder andere Hardwareeinrichtungen sein, die sich für den Abruf und die Ausführung von im maschinenlesbaren Speichermedium 120 gespeicherten Anweisungen eignen. Der Prozessor 110 kann die Anweisungen 122, 124, 126, 128 abrufen, decodieren und ausführen, um das Verfahren zum Teilen des in einer mobilen Computereinrichtung verfügbaren Internetzugangs entsprechend der folgenden Beschreibung zu implementieren. Als Alternative bzw. zusätzlich zum Abruf und zur Ausführung von Anweisungen kann der Prozessor 110 eine oder mehrere elektronische Schaltung(en) aufweisen, die eine Anzahl elektronischer Komponenten aufweisen, um den Funktionsumfang der einen oder mehreren Anweisung(en) 122, 124, 126, 128 auszuführen.
  • Die Schnittstelle 115 kann eine Anzahl elektronischer Komponenten für die Kommunikation mit einer mobilen Computereinrichtung aufweisen. Beispielsweise kann die Schnittstelle 115 eine Universal-Serial-Bus-(USB)-Schnittstelle, eine IEEE-1394-(Firewire)-Schnittstelle, eine ”external Serial Advanced Technology Attachment”-(eSATA)-Schnittstelle oder eine beliebige andere physische Anschlussschnittstelle sein, die zur Kommunikation mit der mobile Computereinrichtung geeignet ist. Alternativ dazu kann die Schnittstelle 115 eine drahtlose Schnittstelle sein, wie z. B. eine ”Wireless Local Area Network”-(WLAN)-Schnittstelle oder eine „Near-Field Communication”-(NFC)-Schnittstelle. Im Betrieb kann die Schnittstelle 115 entsprechend der folgenden Beschreibung verwendet werden, um Daten an bzw. von eine(r) entsprechende(n) Schnittstelle einer mobilen Computereinrichtung zu versenden und zu empfangen, wie z. B. einen Hypervisor, ein Bild einer virtuellen Maschine und Netzwerkdaten.
  • Das maschinenlesbare Speichermedium 120 kann eine beliebige elektronische, magnetische, optische oder sonstige physische Speichereinrichtung sin, die ausführbare Anweisungen enthält bzw. speichert. Das maschinenlesbare Speichermedium 120 kann somit beispielsweise Random Access Memory (RAM), ein Electrically-Erasable Programmable Read-Only Memory (EEPROM), ein Speicherlaufwerk, eine Optical Disc und Ähnliches sein. Entsprechend der folgenden detaillierten Beschreibung kann das maschinenlesbare Speichermedium 120 mit ausführbaren Anweisungen zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs unter Verwendung eines Hypervisors und eines Gast-Betriebssystems codiert werden.
  • Hypervisor-Ladeanweisungen 122 können konfiguriert werden, um einen Hypervisor (auch als Virtual Machine Monitor (VMM) bezeichnet) in die Client-Computereinrichtung 100 zu laden. Beispielsweise kann der Hypervisor ein handelsüblicher Hypervisor sein, wie z. B. der Xen® Hypervisor, Microsoft Hyper-V®, Parallels Desktop®, VMware vSphere® und Ähnliches. Alternativ dazu kann der Hypervisor ein individuell entwickelter Hypervisor sein.
  • Bei einigen Ausführungsformen kann der Hypervisor lokal in der Client-Computereinrichtung 100 gewartet werden, sodass die Anweisungen 122 den Hypervisor von einer lokalen Speichereinrichtung in den Arbeitsspeicher laden. Bei anderen Ausführungsformen kann die Client-Computereinrichtung 100 dagegen den Hypervisor unter Verwendung der Schnittstelle 115 von einer Speichereinrichtung der mobilen Computereinrichtung lesen und den Hypervisor anschließend in den Arbeitsspeicher laden. In Abhängigkeit von der Implementierung kann der durch die Anweisungen 122 geladene Hypervisor entweder ein Typ-1-Hypervisor oder ein Typ-2-Hypervisor sein. Beispielhafte Implementierungen unter Verwendung beider Hypervisor-Typen sind im Folgenden in Zusammenhang mit 2A bzw. 2B ausführlich beschrieben.
  • Ungeachtet der Einzelheiten der Implementierung stellt der Hypervisor im Betrieb auf der Computereinrichtung 100 eine Umgebung bereit, welche die Ausführung von einem oder mehreren Gast-Betriebssystem(en) auf der Computereinrichtung 100 ermöglicht. Beispielsweise kann der Hypervisor eine Betriebsplattform bereitstellen, die es jedem Gast-BS ermöglicht, virtuelle Hardwareressourcen anzufordern, die vom Hypervisor virtualisiert werden. Der Hypervisor kann anschließend jedem anfordernden Gast-BS Hardwareressourcen zuteilen. Somit kann entsprechend der folgenden detaillierten Beschreibung der ausführende Hypervisor das durch die Empfangsanweisungen 124 empfangene und durch die Ladeanweisungen 126 geladene Gast-BS aufnehmen.
  • Die Empfangsanweisungen 124 für das Bild der virtuellen Maschine können über die Schnittstelle 115 ein in der Speichereinrichtung der mobilen Computereinrichtung gewartetes Bild der virtuellen Maschine empfangen. Das empfangene Bild der virtuellen Maschine kann eine Datei oder eine Dateigruppe sein, Attribute einer emulierten Computereinrichtung angibt, wie z. B. eine Prozessorarchitektur, Eine Anzahl von Prozessoren, einen Betrag der Speicherkapazität, eine Arbeitsspeichermenge, Boot-Eigenschaften usw. Bei einigen Implementierungen können in einer Gruppe aus einer oder mehreren Konfigurationsdatei(en) zusätzliche Attribute angegeben werden.
  • Das Bild der virtuellen Maschine kann auch ein Gast-Betriebssystem aufweisen sowie bei einigen Implementierungen eine oder mehrere Anwendung(en) zur Ausführung im BS. Das im Bild der virtuellen Maschine enthaltene Gast-BS kann ein beliebiges Betriebssystem sein, das in einer virtuellen Maschine installiert und durch die Client-Computereinrichtung 100 ausführbar ist. Beispielsweise kann bei einigen Ausführungsformen das empfangene Bild der virtuellen Maschine ein vorkonfiguriertes Betriebssystem mit vollem Funktionsumfang und einer Anzahl von Anwendungen aufweisen, die im BS ausgeführt werden können. Als weiteres Beispiel kann das Bild der virtuellen Maschine ein Bild einer virtuellen Anwendung (auch als Virtual Appliance bezeichnet) sein, sodass das Bild ein eingeschränktes BS mit einer Anwendung aufweist, die für die Ausführung im eingeschränkten BS geeignet ist.
  • Nach dem Empfang des Bildes der virtuellen Maschine können die Ladeanweisungen 126 des Gast-BS das im Bild der virtuellen Maschine enthaltene Gast-OS zur Ausführung auf der Client-Computereinrichtung 100 laden. Beispielsweise kann die Computereinrichtung 100 das Gast-BS in den Arbeitsspeicher laden und mit der Ausführung des BS im durch die Anweisungen 122 geladenen Hypervisor beginnen. Der Hypervisor kann anschließend mit dem geladenen Gast-BS kommunizieren, um dem Gast-BS bei Anforderung durch das Gast-BS Ressourcen zuzuteilen.
  • Während des Betriebs des geladenen Gast-BS können das Gast-BS oder ausgeführte Anwendungen im Gast-BS Netzwerkdaten zur Übertragung erzeugen oder alternativ dazu Netzwerkdaten von einer externen Quelle empfangen. Um diese Netzwerkdaten mit der mobilen Computereinrichtung über die Schnittstelle 115 auszutauschen, können die Initialisierungsanweisungen 128 des virtuellen Netzwerktreibers einen virtuellen Netzwerktreiber initialisieren, der die in der mobilen Computereinrichtung enthaltene Netzwerkhardware virtualisiert. Nach der Initialisierung kann der virtuelle Netzwerktreiber Netzwerkdaten zwischen dem auf der Computereinrichtung 100 ausgeführten Gast-BS und der Netzwerkhardware der mit der Client-Computereinrichtung 100 gekoppelten mobilen Computereinrichtung austauschen. Auf diese Weise kann die Computereinrichtung 100 den für die mobile Computereinrichtung verfügbaren Internetzugang verwenden, indem einfach das im empfangenen virtuellen Bild enthaltene Gast-BS initialisiert und der Treiber geladen wird und anschließend unter Verwendung des Treibers Netzwerkdaten ausgetauscht werden.
  • Die Anordnung des virtuellen Netzwerktreibers kann in Abhängigkeit von der besonderen Implementierung unterschiedlich sein. Beispielsweise kann der virtuelle Netzwerktreiber bei einigen Ausführungsformen innerhalb des Gast-Betriebssystems ausgeführt werden. Bei anderen Ausführungsformen kann der virtuelle Netzwerktreiber im Hypervisor ausgeführt werden. Bei wiederum anderen Ausführungsformen kann der virtuelle Netzwerktreiber innerhalb des Host-Betriebssystems der Client-Computereinrichtung 100 ausgeführt werden (unter der Voraussetzung, dass der Hypervisor ein Typ-2-Hypervisor ist). Die Initialisierung und der Betrieb des Treibers bei derartigen Ausführungsformen werden im Folgenden in Zusammenhang mit 2A und 2B beschrieben.
  • Ungeachtet seiner Anordnung tauscht der virtuelle Netzwerktreiber, nachdem er geladen und initialisiert worden ist, unter Verwendung der Schnittstelle 115 Daten mit der Netzwerkhardware der mobilen Computereinrichtung aus. Bei der Übertragung von im Gast-BS erzeugten Daten an ein Ziel im Internet kann der Treiber daher die Daten über die Schnittstelle 115 von der Client-Computereinrichtung 100 zur mobilen Einrichtung übertragen. Umgekehrt kann der Treiber beim Empfang von für das Gast-BS vorgesehenen Netzwerkdaten von einer Quelle im Internet die Daten über die Schnittstelle 115 von der mobilen Einrichtung für die Client-Computereinrichtung 100 empfangen.
  • Im Betrieb ermöglicht die Client-Computereinrichtung 100 einem Nutzer somit das rasche Laden und Ausführen eines Bildes einer virtuellen Maschinen und die Bereitstellung von Internetzugang für die Einrichtung 100 über das im Bild der virtuellen Maschine enthaltene Gast-BS. Insbesondere kann der Nutzer nach dem Koppeln der Client-Computereinrichtung 100 mit der mobilen Einrichtung unter Verwendung der Schnittstelle 115 das Bild der virtuellen Maschine empfangen, das Gast-BS ausführen und anschließend die Netzwerkhardware der mobilen Computereinrichtung verwenden, um Internetzugang zu erhalten.
  • 2A ist ein Blockdiagramm einer beispielhaften Client-Computereinrichtung 200, die einen Typ-1-Hypervisor 210 ausführt und den für eine gekoppelte mobile Computereinrichtung 230 verfügbaren Internetzugang teilt. Entsprechend der folgenden detaillierten Beschreibung kann die Client-Computereinrichtung 200 mit der mobilen Computereinrichtung 230 kommunizieren, um ein Bild 222 einer virtuellen Maschine zu empfangen und Netzwerkdaten 224 auszutauschen.
  • Entsprechend der Darstellung kann die Client-Computereinrichtung 200 eine virtuelle Maschine 205, ein Gast-BS 207, einen Typ-1-Hypervisor 210, Hardware 215, eine Schnittstelle 217 und einen virtuellen Netzwerktreiber 220 aufweisen. Bei einigen Ausführungsformen können die virtuelle Maschine 205, das Gast-BS 207, der Hypervisor 210 und der virtuelle Netzwerktreiber 220 als eine Serie von Anweisungen implementiert sein, die auf einem Speichermedium codiert sind und durch die Hardware 215 der Client-Computereinrichtung 200 ausgeführt werden. Beispielsweise können diese Komponenten aus dem Random Access Memory (RAM) durch einen in der Hardware 215 enthaltenen Prozessor ausgeführt werden, der dem Prozessor 110 aus 1 ähnlich ist.
  • Im Betrieb kann der Typ-1-Hypervisor 210 zuerst auf der Client-Computereinrichtung 200 initialisiert werden. Da der Hypervisor 210 „Typ 1” ist, kann der Hypervisor 210 direkt und ohne ein zugrunde liegendes Host-Betriebssystem auf der Hardware 215 der Computereinrichtung 200 ausgeführt werden. Beispielsweise kann der Typ-1-Hypervisor 210 anfänglich von einer in der Hardware 215 enthaltenen und während einer Boot-Sequenz der Computereinrichtung 200 geladenen lokalen Speichereinrichtung abgerufen werden. Nach dem Laden kann der Hypervisor 210 konfiguriert werden, um virtuellen Maschinen, die mit dem Hypervisor 210 kommunizieren, wie z. B. der virtuellen Maschine 205, Ressourcen zuzuteilen.
  • Um die virtuelle Maschine 205 zu laden, kann die Client-Computereinrichtung 200 anfänglich das Bild 222 der virtuellen Maschine mittels Kommunikation zwischen der Schnittstelle 217 und der Schnittstelle 235 empfangen. Wenn der Nutzer beispielsweise eine kabelgebundene oder drahtlose Verbindung zwischen der Schnittstelle 217 und der Schnittstelle 235 herstellt, kann der Hypervisor 210 automatisch die Verbindung erkennen und die mobile Computereinrichtung 230 als Wechselspeichereinrichtung mounten. Nach der erforderlichen Nutzerauthentifizierung kann der Hypervisor anschließend beginnen, das Speichermedium 245 der mobilen Computereinrichtung 230 zu durchsuchen, um alle verfügbaren Bilder virtueller Maschinen zu identifizieren. Beim Erkennen eines Bildes 247 der virtuellen Maschine kann der Hypervisor 210 das Bild als Bild 222 der virtuellen Maschine über die Schnittstelle 217, 235 empfangen.
  • Wenn die Übertragung des Bildes 222 der virtuellen Maschine abgeschlossen ist, kann die Client-Computereinrichtung 200 anschließend beginnen, das im Bild der virtuellen Maschine, das jetzt als virtuelle Maschine 205 im Arbeitsspeicher geladen ist, enthaltene Gast-BS 207 auszuführen. Wenn dessen Betrieb aufgenommen ist, kann das Gast-BS 207 virtuelle Ressourcen vom Typ-1-Hypervisor 210 anfordern, der als Reaktion auf derartige Anforderungen in der Hardware 215 verfügbare physische Ressourcen wie z. B. Arbeitsspeicher, Prozessoren und Speicherkapazität zuteilen kann.
  • Um Netzwerkdaten 224 zu übertragen bzw. zu empfangen kann das Gast-BS weiter mit einem virtuellen Netzwerktreiber 220 kommunizieren, der auf der Client-Computereinrichtung 200 geladen ist. Der virtuelle Netzwerktreiber 220 kann die Netzwerkhardware 240 der mobilen Computereinrichtung 230 virtualisieren. Auf diese Weise kann das Gast-BS Netzwerkdaten unter Verwendung der Netzwerkhardware 240 übertragen und empfangen, als sei in der Client-Computereinrichtung 200 eine physische Netzwerkkarte installiert.
  • Entsprechend der Darstellung kann der virtuelle Netzwerktreiber 220 an einer Position aus einer Reihe von Orten angeordnet sein. Der Prozess der Initialisierung des Treibers 220 kann in Abhängigkeit von dessen Anordnung unterschiedlich sein.
  • Wenn der virtuelle Netzwerktreiber 220 beispielsweise im Hypervisor 210 angeordnet ist, kann der Treiber 220 unmittelbar nach dem Initialisieren des Hypervisors 210 und vor der Initialisierung der virtuellen Maschine 205 initialisiert werden. Bei derartigen Ausführungsformen kann der Treiber 220 verwendet werden, um Netzwerkdaten 224 unter Verwendung der Schnittstellen 217, 235 zu übertragen, sobald der Treiber 220 im Hypervisor 210 geladen ist. Alternativ dazu, wenn der virtuelle Netzwerktreiber 220 im Gast-BS 207 angeordnet ist, Kann der Treiber 220 initialisiert werden, wenn die virtuelle Maschine 205 im Hypervisor 210 ausgeführt wird.
  • Nachdem sowohl der Hypervisor 210 als auch das Gast-BS 207 und der virtuelle Netzwerktreiber 220 initialisiert worden sind, kann die Client-Computereinrichtung 200 beginnen, Netzwerkdaten 224 zwischen dem Gast-BS 207 und der mobilen Computereinrichtung 230 auszutauschen, um dadurch den für die mobile Computereinrichtung 230 verfügbaren Internetzugang zu verwenden. Insbesondere kann der virtuelle Netzwerktreiber 220 nach seinem Laden die Übertragung der Netzwerkdaten 224 zu und von der mobilen Computereinrichtung 230 zwischen den Schnittstellen 217, 235 steuern. Zur Übertragung von Daten kann das Gast-BS 207 beispielsweise zunächst die Netzwerkdaten zum Treiber 220 bereitstellen. Als Reaktion darauf kann der Treiber 220 die Netzwerkdaten 224 zwischen der Schnittstelle 217 und der Schnittstelle 235 übertragen, und nach dem Empfang der Netzwerkdaten kann die mobile Computereinrichtung 230 die Daten unter Verwendung der Netzwerkhardware 240 übertragen. Umgekehrt kann der Treiber 220 nach dem Empfang von Daten in der Netzwerkhardware 240 die Netzwerkdaten 224 von der Schnittstelle 235 zur Schnittstelle 217 auslesen und die Daten zum Hypervisor 210 bereitstellen. Als Reaktion darauf kann der Hypervisor 210 den vorgesehenen Empfänger der Netzwerkdaten 224 identifizieren und, wenn dieser Empfänger das Gast-BS 207 ist, die Daten 224 zum Gast-BS 207 bereitstellen.
  • Die mobile Computereinrichtung 230 kann beispielsweise ein Mobiltelefon, eine Tablet-Computereinrichtung, eine drahtlose E-Mail-Einrichtung, ein Notebook-Computer oder eine beliebige andere tragbare Computereinrichtung mit Internetzugang sein, der mit der Computereinrichtung 200 geteilt werden kann. Entsprechend der Darstellung kann die mobile Computereinrichtung 230 eine Schnittstelle 235, Netzwerkhardware 240, ein Speichermedium 245 und ein Bild 247 einer virtuellen Maschine aufweisen.
  • Wie bei der Schnittstelle 115 aus 1 kann die Schnittstelle 235 elektronische Komponenten für die kabelgebundene oder drahtlose Kommunikation mit der Client-Computereinrichtung 200 aufweisen. Entsprechend der vorstehenden Beschreibung kann die Schnittstelle 235 mit einer entsprechenden Schnittstelle 217 der Client-Computereinrichtung 200 kommunizieren, um das Bild 222 der virtuellen Maschine zu übertragen und Netzwerkdaten 224 auszutauschen. Die Netzwerkhardware 240 kann beispielsweise ein drahtloser Transceiver sein, der Internetzugang über eine Verbindung mit einem funkzellengestützten oder einem anderen drahtlosen Netzwerk bereitstellen kann. Entsprechend der vorstehenden Beschreibung kann die Netzwerkhardware 240 verwendet werden, um Netzwerkdaten 224 für die Client-Computereinrichtung 200 zu übertragen und zu empfangen. Schließlich kann das Speichermedium 245 ähnlich wie das Speichermedium 120 aus 1 konfiguriert werden, und es kann daher eine beliebige Hardwareeinrichtung sein, die ein Bild 247 einer virtuellen Maschine speichern kann.
  • Das Bild 247 der virtuellen Maschine kann anfänglich auf eine Reihe von Arten im Speichermedium 245 gespeichert werden. Beispielsweise kann der Nutzer bei einigen Ausführungsformen das Bild 247 der virtuellen Maschine manuell in das Speichermedium 245 laden, indem die Schnittstelle 235 mit einer Schnittstelle einer anderen Computereinrichtung, die das Bild 247 speichert, gekoppelt wird. Als weiteres Beispiel kann das Bild 247 der virtuellen Maschine durch eine auf der mobilen Einrichtung 230 ausgeführte Anwendung heruntergeladen werden. Beispielsweise kann ein Nutzer eine Anwendung ausführen, die die Verbindung mit einer Datenbank herstellt, die Bilder von virtuellen Maschinen enthält, und die Anwendung verwenden, um ein bestimmtes Bild 247 einer virtuellen Maschine auszuwählen und zum Speichermedium 245 herunterzuladen. Ungeachtet des zum Speichern des Bildes 247 verwendeten Verfahrens kann das Bild 247 entsprechend der vorstehenden Beschreibung zur Ausführung für die Client-Computereinrichtung 200 bereitgestellt werden.
  • 2B ist ein Blockdiagramm einer beispielhaften Client-Computereinrichtung 250, die einen Typ-2-Hypervisor 255 ausführt und den für eine gekoppelte mobile Computereinrichtung 230 verfügbaren Internetzugang teilt. Entsprechend der folgenden detaillierten Beschreibung kann die Client-Computereinrichtung 250 mit der mobilen Computereinrichtung 230 kommunizieren, um ein Bild 222 einer virtuellen Maschine und den Hypervisor 226 zu empfangen und Netzwerkdaten 224 auszutauschen.
  • Anders als bei der Anordnung aus 2A weist die Client-Computereinrichtung 250 statt eines Typ-1-Hypervisors einen Typ-2-Hypervisor 255 auf. Da der Hypervisor 255 vom „Typ 2” ist, wird der Hypervisor 255 innerhalb des Host-Betriebssystems 260 ausgeführt, und er erfüllt daher die Anforderungen an Ressourcen vom Gast-BS 207, indem er mit dem Host-Betriebssystem 260 statt direkt mit der Hardware 215 kommuniziert.
  • Zusätzlich kann das Speichermedium 245 der mobilen Computereinrichtung 230 entsprechend der Darstellung auch ein Bild des Typ-2-Hypervisors 249 warten. Bei derartigen Ausführungsformen kann die Client-Computereinrichtung 250 den Typ-2-Hypervisor 249 auf der Grundlage einer Übertragung des Hypervisors 226 zwischen der Schnittstelle 235 und der Schnittstelle 217 von der mobilen Computereinrichtung 230 empfangen. Auf diese Weise kann die Client-Computereinrichtung 250 den Typ-2-Hypervisor 255 selbst dann erhalten und ausführen, wenn die Client-Computereinrichtung 250 keinen nativen Hypervisor aufweist. Es wird jedoch darauf hingewiesen, dass der Typ-2-Hypervisor wie der Typ-1-Hypervisor 210 ebenfalls auf einem Speichermedium der Client-Computereinrichtung 250 gewartet werden kann, sodass der Typ-2-Hypervisor 255 vom lokalen Speichermedium in den Arbeitsspeicher geladen wird.
  • Wie bei der in 2A dargestellten Implementierung kann der virtuelle Netzwerktreiber 220 sowohl im Gast-BS 207 als auch im Hypervisor 255 enthalten sein. Zusätzlich kann der virtuelle Netzwerktreiber dagegen im Host-BS 260 enthalten sein. Bei derartigen Ausführungsformen kann das Host-BS 260 während einer Boot-Prozedur der Client-Computereinrichtung 250 initialisiert werden, und der virtuelle Netzwerktreiber 260 kann während der Initialisierung des Host-BS 260 geladen und initialisiert werden. Unabhängig von seiner Anordnung kann der geladene virtuelle Netzwerktreiber 220 auf die oben in Verbindung mit 2A beschriebene Weise arbeiten.
  • 3 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 300 zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs mit einer Client-Computereinrichtung 100. Obwohl die Ausführung des Verfahrens 300 im Folgenden mit Bezug auf die Computereinrichtung 100 beschrieben ist, sind andere geeignete Einrichtungen zur Ausführung des Verfahrens 300 für Fachleute auf diesem Gebiet offensichtlich (z. B. die Computereinrichtungen 200, 250). Das Verfahren 300 kann in Form ausführbarer Anweisungen, die auf einem maschinenlesbaren Speichermedium wie dem Speichermedium 120 gespeichert sind und/oder in Form einer elektronischen Schaltung implementiert sein.
  • Das Verfahren 300 beginnt in Block 305 und fährt mit Block 310 fort, wo die Computereinrichtung 100 ein Bild einer virtuellen Maschine von einem Speichermedium einer mobilen Computereinrichtung empfangen kann. Beispielsweise kann die Computereinrichtung 100 das Bild der virtuellen Maschine von einer Speichereinrichtung der mobilen Einrichtung über die Schnittstelle 115 empfangen.
  • In Block 315 kann die Computereinrichtung 100 anschließend ein Gast-Betriebssystem ausführen, das in dem in Block 310 empfangenen Bild einer virtuellen Maschine enthalten ist. Bei seiner Ausführung kann das Gast-BS mit einem auf der Computereinrichtung 100 ausgeführten Hypervisor kommunizieren. Beispielsweise kann das Gast-BS Ressourcenanforderungen an den Hypervisor bereitstellen, der wiederum Hardwareressourcen an das Gast-BS zuteilen kann.
  • Nachdem das Gast-BS abgerufen und geladen worden ist, kann die Computereinrichtung 100 schließlich in Block 320 Netzwerkdaten über die Hardwareschnittstelle 115 zwischen dem Gast-BS und der mobilen Einrichtung übertragen. Beispielsweise kann ein in der Computereinrichtung 100 ausgeführter virtueller Netzwerktreiber als Vermittler zwischen dem Gast-BS und der Netzwerkhardware der mobilen Computereinrichtung dienen. Auf diese Weise kann die Computereinrichtung 100 den für die mobile Computereinrichtung verfügbaren Internetzugang über das Gast-BS nutzen. Das Verfahren 300 kann anschließend zu Block 325 übergehen, wo das Verhalten 300 anhalten kann.
  • 4A und 4B sind Ablaufdiagramme von zwei beispielhaften Verfahren zur Initialisierung der Client-Computereinrichtungen 200, 250 zur Ausführung eines Hypervisors. Obwohl die Ausführung der Verfahren 400, 450 im Folgenden mit Bezug auf die Komponenten der Computereinrichtungen 200 bzw. 250 beschrieben ist, sind für Fachleute auf diesem Gebiet andere geeignete Komponenten für die Ausführung der Verfahren 400, 450 ersichtlich. Die Verfahren 400, 450 können in Form ausführbarer Anweisungen, die auf einem maschinenlesbaren Speichermedium gespeichert sind und/oder in Form von elektronischen Schaltungen implementiert sein.
  • 4A ist ein Ablaufdiagramm eines beispielhaften Verfahrens 400 zur Initialisierung einer Client-Computereinrichtung 200 mit einem Typ-1-Hypervisor 210 zum Teilen des für eine mobile Computereinrichtung 230 verfügbaren Internetzugangs. Das Verfahren 400 beginnt in Block 402 und fährt mit Block 404 fort, wo ein Nutzer die Client-Computereinrichtung 200 bootet, indem er beispielsweise eine Einschalttaste der Einrichtung betätigt.
  • In Block 406 beginnt die Client-Computereinrichtung 200 mit dem Laden des Typ-1-Hypervisors 210. Die Client-Computereinrichtung 200 kann beispielsweise auf ein lokales Speichermedium mit dem Hypervisor 210 zugreifen und den Hypervisor 210 in den Arbeitsspeicher laden. Die Client-Computereinrichtung 200 kann anschließend mit der Ausführung des Hypervisors 210 beginnen.
  • In Block 408 ist die Client-Computereinrichtung 200 mit der mobilen Computereinrichtung 230 verbunden. Ein Nutzer kann beispielsweise ein USB-, eSATA-, Firewire oder sonstiges Kabel zwischen der Schnittstelle 217 und der Schnittstelle 235 anschließen. Alternativ dazu kann der Nutzer eine drahtlose Verbindung zwischen den Einrichtungen 200, 230 herstellen, indem beispielsweise beide Einrichtungen über Bluetooth oder eine andere drahtlose Verbindung angeschlossen werden.
  • Wenn der virtuelle Netzwerktreiber 220 im Hypervisor 210 angeordnet werden soll, kann die Client-Computereinrichtung 200 anschließend in Block 410 den virtuellen Netzwerktreiber 220 initialisieren. Nach der Initialisierung im Hypervisor 210 ist der virtuelle Netzwerktreiber 220 bereit für den Austausch von Netzwerkdaten mit der Netzwerkhardware 240 unter Verwendung der Schnittstellen 217, 235. Die Netzwerkhardware 240 kann wiederum die Datenübertragung in das und aus dem Internet steuern.
  • Anschließend kann die Client-Computereinrichtung 200 in Block 412 das Bild 247 der virtuellen Maschine von der mobilen Computereinrichtung 230 empfangen. Beispielsweise kann der Hypervisor 210 die Verbindung zwischen den Schnittstellen 217, 235 erkennen, das Bild 247 der virtuellen Maschine auf das Speichermedium 245 laden und die Übertragung des Bildes 247 zwischen den Schnittstellen 217, 235 initiieren. In Block 414 kann die Client-Computereinrichtung 200, nachdem die Client-Computereinrichtung 200 das Bild 247 empfangen hat, die virtuelle Maschine 205 initialisieren und das Gast-BS 207 laden.
  • Schließlich kann in Block 416, wenn der virtuelle Netzwerktreiber 220 im Gast-BS 207 angeordnet werden soll (d. h., wenn er nicht im Hypervisor 210 angeordnet ist), die Client-Computereinrichtung 200 anschließend den virtuellen Netzwerktreiber 220 im Gast-BS 207 initialisieren. Nach der Initialisierung im Gast-BS 207 ist der virtuelle Netzwerktreiber 220 bereit für den Austausch von Netzwerkdaten mit der Netzwerkhardware 240 unter Verwendung der Schnittstellen 217, 235. Das Verfahren 400 kann anschließend mit Block 418 fortfahren, wo das Verfahren 400 anhält.
  • 4B ist ein Ablaufdiagramm eines beispielhaften Verfahrens 450 zur Initialisierung einer Client-Computereinrichtung 250 mit einem Typ-2-Hypervisor 255 zum Teilen des für eine mobile Computereinrichtung 230 verfügbaren Internetzugangs. Das Verfahren 450 beginnt in Block 452 und fährt mit Block 454 fort, wo ein Nutzer die Client-Computereinrichtung 250 bootet.
  • In Block 456 beginnt die Client-Computereinrichtung 250 mit dem Laden des Host-Betriebssystems 260. Beispielsweise kann die Client-Computereinrichtung 250 auf ein lokales Speichermedium mit dem Host-BS 260 zugreifen und anschließend das Host-BS 260 in den Arbeitsspeicher laden. Die Client-Computereinrichtung 250 kann anschließend mit der Ausführung des Host-BS 260 beginnen.
  • In Block 458 ist die Client-Computereinrichtung 250 über eine kabelgebundene oder drahtlose Schnittstelle mit der mobilen Computereinrichtung 230 verbunden. Beispielsweise kann die Schnittstelle ein USB-Kabel, ein eSATA-Kabel, ein Firewire-Kabel oder eine drahtlose Verbindung sein. Anschließend kann dann in Block 460, falls der virtuelle Netzwerktreiber 220 im Host-BS 260 angeordnet sein soll, das Host-BS 260 den virtuellen Netzwerktreiber 220 initialisieren. Nach der Initialisierung des Treibers 220 kann der Treiber 220 anschließend vorbereitet werden, um Daten zwischen den Schnittstellen 217, 235 zu der und von der mobilen Computereinrichtung 230 zu übertragen.
  • In Block 462 bestimmt die Client-Computereinrichtung 250, ob der Hypervisor von einer lokalen Speichereinrichtung oder von der mobilen Computereinrichtung 230 geladen werden soll. Beispielsweise kann die mobile Computereinrichtung 230 bestimmen, ob ein Hypervisor auf einem lokalen Speichermedium vorliegt, und anderenfalls kann das Verfahren 450 zu Block 464 übergehen, wo die Computereinrichtung 250 versuchen kann, einen Typ-2-Hypervisor 249 zu lokalisieren, der auf einem Speichermedium 245 der mobilen Computereinrichtung 230 gewartet wird. Wenn ein derartiger Hypervisor 249 vorgefunden wird, kann die Client-Computereinrichtung 250 anschließend den Typ-2-Hypervisor 249 über die Verbindung zwischen der Schnittstelle 235 und der Schnittstelle 217 abrufen.
  • In Block 466 kann die Computereinrichtung 250 den Typ-2-Hypervisor 255 nach dem Abruf vom lokalen Speichermedium oder von der mobilen Computereinrichtung 230 laden. Beispielsweise kann die Computereinrichtung 250 den Typ-2-Hypervisor 255 in den Arbeitsspeicher laden und die Ausführung des Typ-2-Hypervisors 255 im Host-BS 260 beginnen.
  • Wenn der virtuelle Netzwerktreiber 220 im Hypervisor 255 angeordnet werden soll, kann die Client-Computereinrichtung 250 anschließend in Block 468 den virtuellen Netzwerktreiber 220 initialisieren. Nach der Initialisierung im Hypervisor 255 ist der virtuelle Netzwerktreiber 220 bereit für den Austausch von Netzwerkdaten mit der Netzwerkhardware 240 unter Verwendung der Schnittstellen 217, 235. Die Netzwerkhardware 240 kann wiederum die Datenübertragung in das und aus dem Internet steuern.
  • Anschließend kann die Client-Computereinrichtung 250 in Block 470 das Bild 247 der virtuellen Maschine von der mobilen Computereinrichtung 230 empfangen. Beispielsweise kann der Hypervisor 255 die Verbindung zwischen den Schnittstellen 217, 235 erkennen, das Bild 247 der virtuellen Maschine auf das Speichermedium 245 laden und die Übertragung des Bildes 247 zwischen den Schnittstellen 217, 235 initiieren. In Block 472 kann die Client-Computereinrichtung 250, nachdem die Client-Computereinrichtung 250 das Bild 247 empfangen hat, die virtuelle Maschine 205 initialisieren, das Gast-BS 207 in den Arbeitsspeicher laden und mit der Ausführung des Gast-BS 207 beginnen.
  • Schließlich kann in Block 474, wenn der virtuelle Netzwerktreiber 220 im Gast-BS 207 angeordnet werden soll (d. h., wenn er nicht im Host-BS 260 oder im Hypervisor 255 angeordnet ist), die Client-Computereinrichtung 250 anschließend den virtuellen Netzwerktreiber 220 im Gast-BS 207 initialisieren. Nach der Initialisierung im Gast-BS 207 ist der virtuelle Netzwerktreiber 220 bereit für den Austausch von Netzwerkdaten mit der Netzwerkhardware 240 unter Verwendung der Schnittstellen 217, 235. Das Verfahren 400 [sic] kann anschließend mit Block 476 fortfahren, wo das Verfahren 450 anhält.
  • 5A und 5B sind Ablaufdiagramme von beispielhaften Verfahren für die Verwendung eines virtuellen Netzwerktreibers 220 zum Senden bzw. Empfangen von Netzwerkdaten. Obwohl die Ausführung der Verfahren 500, 550 im Folgenden mit Bezug auf die Komponenten der Computereinrichtungen 200 bzw. 250 beschrieben ist, sind für Fachleute auf diesem Gebiet andere geeignete Komponenten für die Ausführung der Verfahren 500, 550 ersichtlich. Die Verfahren 500, 550 können in Form ausführbarer Anweisungen, die auf einem maschinenlesbaren Speichermedium gespeichert sind und/oder in Form von elektronischen Schaltungen implementiert sein.
  • 5A ist ein Ablaufdiagramm eines beispielhaften Verfahrens 500 zur Übertragung von in einem Gast-BS 207 einer Client-Computereinrichtung 200, 250 erzeugten Paketen unter Verwendung eines virtuellen Netzwerktreibers 220. Das Verfahren 500 beginnt in Block 502 und fährt mit Block 504 fort, wo die Computereinrichtung 200, 250 eine Anforderung zur Übertragung eines Netzwerkpakets mit Ursprung im Gast-BS 207, das im Hypervisor 210, 255 ausgeführt wird, erhalten kann. Beispielsweise kann eine Anwendung oder ein anderer im Gast-BS 207 ausgeführter Prozess versuchen, ein Paket an eine spezifische Internet-Protocol-(IP)-Adresse im Internet zu übertragen.
  • Wie vorstehend detailliert beschrieben ist, kann der virtuelle Netzwerktreiber 220 entweder im Gast-BS 207, im Hypervisor 210, 255 oder im Host-BS 260 angeordnet sein. In Abhängigkeit von der Anordnung des Treibers 220 kann in Block 506 das Gast-BS 207, der Hypervisor 210, 255 oder das Host-BS 260 das Netzwerkpaket in einen vom Treiber 220 überwachten Pufferspeicher ablegen. Im Betrieb überwacht der virtuelle Netzwerkspeicher 220 den Pufferspeicher auf dort abgelegte Pakete, und er liest Pakete aus dem Puffer unter Verwendung eines vorgegebenen Abarbeitungsverfahrens aus (z. B. First In First Out). Dementsprechend liest der virtuelle Netzwerktreiber 220 in Block 508 das abgelegte Paket aus dem Pufferspeicher. In Block 510 überträgt der virtuelle Netzwerktreiber 220 nach dem Auslesen des Pakets das Paket über die Verbindung zwischen den Schnittstellen 217, 235. Schließlich überträgt in Block 512 die mobile Computereinrichtung 230 nach dem Empfang des Pakets in der Schnittstelle 235 das Paket unter Verwendung der Netzwerkhardware 240 zum vorgesehenen Ziel. Das Verfahren 500 geht dann zu Block 514 über, wo das Verfahren 500 anhält.
  • 5B ist ein Ablaufdiagramm eines beispielhaften Verfahrens 550 zum Empfang von für ein Gast-BS 207 einer Client-Computereinrichtung 200, 250 vorgesehenen Paketen unter Verwendung eines virtuellen Netzwerktreibers 220. Das Verfahren 550 beginnt in Block 552 und fährt mit Block 554 fort, wo die Netzwerkhardware 240 der mobilen Computereinrichtung 230 ein von einer hinsichtlich der mobilen Computereinrichtung 230 externen Quelle eingehendes Paket empfängt. In Block 556 erkennt der virtuelle Netzwerktreiber 220 das eingehende Paket, und in Block 558 leitet er das Paket über die Verbindung zwischen der Schnittstelle 235 und der Schnittstelle 217 weiter. In Block 560 erkannt dann der in der Computereinrichtung 200, 250 ausgeführte Hypervisor 210, 255 das eingehende Paket und identifiziert die virtuelle Maschine 205 für den Empfang des Pakets. Wenn beispielsweise im Hypervisor 210, 255 mehrere virtuelle Maschinen ausgeführt werden, kann der Hypervisor den vorgesehenen Empfänger des Pakets zum Beispiel auf der Basis der Ziel-IP-Adresse des Pakets erkennen. Nach der Identifizierung des vorgesehenen Empfängers kann der Hypervisor 210, 255 in Block 562 das Paket an die zutreffende virtuelle Maschine und insbesondere an das in der virtuellen Maschine ausgeführte Gast-BS 207 weiterleiten. Das Verfahren 550 kann schließlich zu Block 564 übergehen, wo das Verhalten 550 anhalten kann.
  • Entsprechend der vorstehenden Beschreibung ermöglichen es hierin beschriebene beispielhafte Ausführungsformen einem Nutzer, auf ein angepasstes Bild einer virtuellen Maschine zuzugreifen, das auf einer mobilen Computereinrichtung gewartet wird. Auf diese Weise kann ein Nutzer einfach eine angepasste Umgebung transportieren und von einer Client-Einrichtung auf diese Umgebung zugreifen, Weiter ermöglichen beispielhafte Ausführungsformen durch die Virtualisierung der auf der mobilen Einrichtung verfügbaren Netzwerkhardware auch den Internetzugang auf dem Client, auch wenn der Client keine nativen Netzwerkfähigkeiten aufweist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE-1394 [0016]

Claims (15)

  1. Eine Client-Computereinrichtung zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs, wobei die Client-Computereinrichtung Folgendes aufweist: eine Schnittstelle zur Kommunikation mit der mobilen Computereinrichtung; und einen Prozessor für: den Empfang des Bildes einer virtuellen Maschine, das auf einer Speichereinrichtung der mobilen Computereinrichtung gewartet wird, über die Schnittstelle, die Ausführung eines Gast-Betriebssystems (BS), das im Bild der virtuellen Maschine enthalten ist, wobei das Gast-BS Anfragen an einen in der Client-Computereinrichtung geladenen Hypervisor bereitstellt, und den Austausch von Netzwerkdaten zwischen dem Gast-BS und der mobilen Computereinrichtung über die Schnittstelle, um es der Client-Computereinrichtung zu ermöglichen, den für die mobile Computereinrichtung verfügbaren Internetzugang zu verwenden.
  2. Client-Computereinrichtung nach Anspruch 1, wobei der in der Client-Computereinrichtung geladene Hypervisor vor dem Empfang des Bildes der virtuellen Maschine automatisch eine Verbindung über die Schnittstelle zwischen der Client-Computereinrichtung und der mobilen Computereinrichtung erkennt.
  3. Client-Computereinrichtung nach Anspruch 1, wobei der Prozessor, zum Laden des Hypervisors in die Client-Computereinrichtung, dazu konfiguriert ist, den Hypervisor über die Schnittstelle von der Speichereinrichtung der mobilen Computereinrichtung zu empfangen.
  4. Client-Computereinrichtung nach Anspruch 1, wobei der Prozessor, zum Laden des Hypervisors in die Client-Computereinrichtung, dazu konfiguriert ist, den Hypervisor aus einer lokalen Speichereinrichtung der Client-Computereinrichtung abzurufen.
  5. Client-Computereinrichtung nach Anspruch 1, wobei: das Gast-BS die Netzwerkdaten mit einem virtuellen Netzwerktreiber austauscht, der die in der mobilen Computereinrichtung enthaltene Netzwerkhardware virtualisiert, und der virtuelle Netzwerktreiber die Übertragung der Netzwerkdaten zu und von der mobilen Computereinrichtung über die Schnittstelle steuert.
  6. Client-Computerweinrichtung nach Anspruch 5, wobei der virtuelle Netzwerktreiber in einem Host-Betriebssystem der Client-Computereinrichtung, im Hypervisor oder im Bild der virtuellen Maschine gewartet wird.
  7. Client-Computereinrichtung nach Anspruch 1, wobei der für die mobile Computereinrichtung verfügbare Internetzugang über eine Verbindung mit einem Mobilfunknetzwerk bereitgestellt wird.
  8. Ein maschinenlesbares Speichermedium, das mit Anweisungen codiert ist, die durch einen Prozessor einer Client-Computereinrichtung ausführbar sind, zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs, wobei das maschinenlesbare Speichermedium Folgendes aufweist: Anweisungen zum Laden eines Hypervisors auf die Client-Computereinrichtung; Anweisungen zum Empfang eines Bildes einer virtuellen Maschine, das auf einer Speichereinrichtung der mobilen Computereinrichtung gewartet wird, im Hypervisor; Anweisungen zum Laden eines im Bild der virtuellen Maschine enthaltenen Gast-Betriebssystems (BS), wobei das Gast-BS mit dem Hypervisor kommuniziert; und Anweisungen zum Initialisieren eines virtuellen Netzwerktreibers zum Virtualisieren der Netzwerkhardware in der mobilen Computereinrichtung, wobei der initialisierte Treiber Netzwerkdaten zwischen dem Gast-BS und der Netzwerkhardware der mobilen Computereinrichtung austauscht.
  9. Maschinenlesbares Speichermedium nach Anspruch 8, wobei die Anweisungen zum Laden des Hypervisors den Hypervisor von der Speichereinrichtung der mobilen Computereinrichtung empfangen.
  10. Maschinenlesbares Speichermedium nach Anspruch 8, wobei der virtuelle Netzwerktreiber in einem Host-Betriebssystem der Client-Computereinrichtung, im Hypervisor oder im Gast-BS ausgeführt wird.
  11. Maschinenlesbares Speichermedium nach Anspruch 8, wobei der virtuelle Netzwerktreiber Folgendes aufweist: Anweisungen zum Übertragen von aus dem Gast-BS stammenden Netzwerkdaten über eine Schnittstelle von der Client-Computereinrichtung zur mobilen Computereinrichtung; und Anweisungen zum Empfangen von für das Gast-BS vorgesehenen Netzwerkdaten über die Schnittstelle von der mobilen Computereinrichtung zur Client-Computereinrichtung.
  12. Ein Verfahren zum Teilen des für eine mobile Computereinrichtung verfügbaren Internetzugangs mit einer Client-Computereinrichtung, wobei das Verfahren Folgendes aufweist: Empfang eines auf einer Speichereinrichtung der mobilen Computereinrichtung gewarteten Bildes einer virtuellen Maschine über eine Schnittstelle zwischen der Client-Computereinrichtung und der mobilen Computereinrichtung; Ausführung eines Gast-Betriebssystems (BS), das im Bild der virtuellen Maschine enthalten ist, wobei das Gast-BS mit einem einen in der Client-Computereinrichtung geladenen Hypervisor kommuniziert; und Verwendung des für die mobile Computereinrichtung verfügbaren Internetzugangs durch die Übertragung von Netzwerkdaten zwischen dem Gast-BS und der mobilen Computereinrichtung über die Schnittstelle.
  13. Verfahren nach Anspruch 12, das weiter Folgendes aufweist: Laden des Hypervisors von der Speichereinrichtung der mobilen Computereinrichtung über die Schnittstelle zwischen der Client-Computereinrichtung und der mobilen Computereinrichtung.
  14. Verfahren nach Anspruch 12, wobei die Verwendung des Internetzugangs Folgendes aufweist: Verwendung eines virtuellen Netzwerktreibers, der die in der mobilen Computereinrichtung enthaltene Netzwerkhardware virtualisiert, um Netzwerkdaten zu und von dem Gast-BS zu übertragen.
  15. Verfahren nach Anspruch 14, wobei der virtuelle Netzwerktreiber in einem Host-Betriebssystem der Client-Computereinrichtung, im Hypervisor oder im Bild der virtuellen Maschine gewartet wird.
DE112011105051T 2011-03-18 2011-03-18 Teilen der Internet-Fähigkeit einer mobilen Computereinrichtung mit einer Client-Computereinrichtung unter Verwendung einer virtuellen Maschine Ceased DE112011105051T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/028993 WO2012128744A1 (en) 2011-03-18 2011-03-18 Sharing internet capability of a mobile computing device with a client computing device using a virtual machine

Publications (1)

Publication Number Publication Date
DE112011105051T5 true DE112011105051T5 (de) 2013-12-19

Family

ID=46879638

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105051T Ceased DE112011105051T5 (de) 2011-03-18 2011-03-18 Teilen der Internet-Fähigkeit einer mobilen Computereinrichtung mit einer Client-Computereinrichtung unter Verwendung einer virtuellen Maschine

Country Status (5)

Country Link
US (1) US9430263B2 (de)
CN (1) CN103430165A (de)
DE (1) DE112011105051T5 (de)
GB (1) GB2502484B (de)
WO (1) WO2012128744A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5998566B2 (ja) * 2012-03-27 2016-09-28 富士通株式会社 移動制御プログラム、移動制御方法および制御装置
US8918879B1 (en) * 2012-05-14 2014-12-23 Trend Micro Inc. Operating system bootstrap failure detection
US9164809B2 (en) * 2012-09-04 2015-10-20 Red Hat Israel, Ltd. Virtual processor provisioning in virtualized computer systems
US9319380B2 (en) * 2014-03-20 2016-04-19 Bitdefender IPR Management Ltd. Below-OS security solution for distributed network endpoints
KR102209840B1 (ko) * 2014-04-22 2021-02-01 삼성전자주식회사 가상화 서비스 제공 장치 및 그 방법
WO2016003415A1 (en) * 2014-06-30 2016-01-07 Hewlett-Packard Development Company, L.P. Securely sending a complete initialization package
EP3161652B1 (de) * 2014-06-30 2020-06-03 Hewlett-Packard Development Company, L.P. Vollfunktionalität einer virtuellen maschine
US11044591B2 (en) 2017-01-13 2021-06-22 Futurewei Technologies, Inc. Cloud based phone services accessible in the cloud by a remote device
US10503237B2 (en) 2017-02-13 2019-12-10 Gbs Laboratories, Llc Mobile device virtualization solution based on bare-metal hypervisor with optimal resource usage and power consumption

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191211B2 (en) 2000-10-03 2007-03-13 Raja Tuli Portable high speed internet access device priority protocol
US7861252B2 (en) * 2001-03-21 2010-12-28 Andrzej Uszok Intelligent software agent system architecture
WO2002089441A1 (en) 2001-05-01 2002-11-07 Meta4Hand Inc. Wireless network computing
CN1890656A (zh) 2003-09-29 2007-01-03 瑞姆系统公司 移动设备平台
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
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
US20100306773A1 (en) 2006-11-06 2010-12-02 Lee Mark M Instant on Platform
WO2008069480A1 (en) 2006-12-04 2008-06-12 Electronics And Telecommunications Research Institute Portable storage device for supporting portable computing system and portable computing based system using the same
US8601470B2 (en) 2007-01-05 2013-12-03 Moka5, Inc. Symbiotic smart peripherals
US7818559B2 (en) 2007-02-28 2010-10-19 Microsoft Corporation Boot negotiation among multiple boot-capable devices
CN101425021A (zh) 2007-10-31 2009-05-06 卢玉英 基于虚拟机技术的个人计算机可迁移应用模式
CN101754466B (zh) 2008-12-10 2012-09-05 运软网络科技(上海)有限公司 移动虚拟化的基础设施以及基础平台
US8989802B2 (en) 2009-01-27 2015-03-24 Symbol Technologies, Inc. Methods and apparatus for a mobile unit with device virtualization
KR101179554B1 (ko) 2009-03-26 2012-09-05 한국전자통신연구원 모바일 클라우드 플랫폼을 구비한 모바일 단말 장치
US9736675B2 (en) 2009-05-12 2017-08-15 Avaya Inc. Virtual machine implementation of multiple use context executing on a communication device
KR20100132302A (ko) 2009-06-09 2010-12-17 엘지전자 주식회사 휴대 단말기, 호스트 장치를 통해 상기 휴대 단말기를 사용하기 위한 제어방법
US8397242B1 (en) * 2009-06-30 2013-03-12 Symantec Corporation System and method for managing operations within virtual machines
CN101667144B (zh) 2009-09-29 2013-02-13 北京航空航天大学 一种基于共享内存的虚拟机通信方法
US8392497B2 (en) * 2009-11-25 2013-03-05 Framehawk, LLC Systems and algorithm for interfacing with a virtualized computing service over a network using a lightweight client
CN101710290A (zh) 2009-12-17 2010-05-19 东南大学 一种可携带移动桌面终端的实现方法
US8601129B2 (en) * 2010-06-30 2013-12-03 International Business Machines Corporation Hypervisor selection for hosting a virtual machine image

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE-1394

Also Published As

Publication number Publication date
GB2502484A (en) 2013-11-27
US9430263B2 (en) 2016-08-30
GB2502484B (en) 2020-04-08
US20130339957A1 (en) 2013-12-19
GB201315644D0 (en) 2013-10-16
CN103430165A (zh) 2013-12-04
WO2012128744A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
DE112011105051T5 (de) Teilen der Internet-Fähigkeit einer mobilen Computereinrichtung mit einer Client-Computereinrichtung unter Verwendung einer virtuellen Maschine
US9720712B2 (en) Physical/virtual device failover with a shared backend
US9552233B1 (en) Virtual machine migration using free page hinting
CN107894913B (zh) 一种计算机系统和存储访问装置
US8832688B2 (en) Kernel bus system with a hyberbus and method therefor
US9135189B2 (en) Delivering GPU resources across machine boundaries
US20130067466A1 (en) Virtual Switch Extensibility
US20150317088A1 (en) Systems and methods for nvme controller virtualization to support multiple virtual machines running on a host
US20130174150A1 (en) Information processing apparatus and communication control method
CN108369604A (zh) 一种多操作系统共享文件系统的方法、装置和电子设备
TW200839615A (en) Boot negotiation among multiple boot-capable devices
EP3329374A1 (de) System und verfahren zur sicheren funktionsfähigkeit beim bewegen zwischen virtualisierungszuständen von netzwerkfunktionen
WO2016122670A1 (en) Backup image restore
US11249789B2 (en) Network performance optimization in a hypervisor-based system
US20130124675A1 (en) Apparatus and method for software migration in mobile environment
CN105183674A (zh) Usb虚拟化网络映射方法、装置以及usb集线器
US8930968B2 (en) Method and driver for processing data in a virtualized environment
CN105808240A (zh) 一种在线编程环境下实现用户隔离的方法
CN109712060A (zh) 一种基于gpu容器技术的云桌面显卡共享方法及系统
US11513830B2 (en) Introspection into workloads running within virtual machines
DE112016006308T5 (de) Erweiterte virtuelle Funktionsfähigkeiten in einer virtualisierten Netzwerkumgebung
WO2017166997A1 (zh) 智能网卡侧的异常处理方法和装置
US9946554B2 (en) System, method, and apparatus for configuring a streamed operating system with associated peripheral information
US20170090965A1 (en) Dirty Memory Tracking with Assigned Devices by Exitless Paravirtualization
US20150227383A1 (en) Application program virtualization system and method of virtualizing application program of user terminal

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20140128

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled