Memory assignment for guest operating systems

US2019370436A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2019370436-A1
Application numberUS-201815994928-A
CountryUS
Kind codeA1
Filing dateMay 31, 2018
Priority dateMay 31, 2018
Publication dateDec 5, 2019
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for memory assignment for guest operating systems are disclosed herein. In one embodiment, a method includes generating a license blob containing data representing a product key copied from a record of license information in the host storage upon receiving a user request to launch an application in the guest operating system. The method also includes storing the generated license blob in a random memory location accessible by the guest operating system. The guest operating system can then query the license blob for permission to launch the application and launching the application in the guest operating system without having a separate product key for the guest operating system.

First claim

Opening claim text (preview).

I/We claim: 1 . A method for memory assignment for a guest operating system supported by a host operating system on a host computing device having a host storage holding records of license information accessible only to the host operating system, the method comprising: receiving a request to launch an application in the guest operating system; and in response to receiving the request, at the host operating system, generating, based on a record of license information stored in the host storage, a license blob containing data representing a product key copied from the record of license information; determining a random memory location within a range of memory allocated to the guest operating system by the host operating system; and writing the generated license blob to the determined random memory location for access by the guest operating system to launch the application, thereby preventing relaunching the application in a new guest operating system on a new host computing device using the same license blob when data in the range of memory allocated to the guest operating system on the host computing device is copied to a new range of memory that is allocated to the new guest operating system on the new host computing device. 2 . The method of claim 1 wherein generating the license blob also includes one or more of setting a time-to-live value to the license blob or setting an event-based license value, and wherein upon expiration of the time-to-live value, the license blob stored in the random memory location expires, and further wherein the event-based license value indicates a license level according to a preset condition. 3 . The method of claim 1 , further comprising: in response to receiving the request, at the host operating system, determining whether the record of license information corresponding to the application exists in the host storage; and in response to determining that the record of license information corresponding to the application exists in the host storage, generating, based on the record of license information stored in the host storage, the license blob. 4 . The method of claim 1 , further comprising: in response to receiving the request, at the host operating system, determining whether the record of license information corresponding to the application exists in the host storage; and in response to determining that the record of license information corresponding to the application does not exist in the host storage, retrieving the record of license information from a remote server via a computer network; and generating, based on the retrieved record of license information, the license blob. 5 . The method of claim 1 wherein determining the random memory location includes: scanning the range of memory allocated by the host operating system to the guest operating system; determining one or more sub-ranges within the range of memory that do not contain any data; and randomly selecting a single memory location as the random memory location from the one or more sub-ranges. 6 . The method of claim 1 wherein determining a random memory location within a range of memory includes: scanning the range of memory allocated by the host operating system to the guest operating system; determining a sub-range within the range of memory that does not contain any data; and selecting multiple non-contiguous memory locations each having a corresponding random offset from a beginning memory location of the sub-range as the random memory location, and wherein writing the generated license blob includes writing multiple data packages of the license blob individually into one of the multiple non-contiguous memory locations. 7 . The method of claim 1 wherein: the guest operating system is a first guest operating system hosing a second guest operating system; the license blob is a first license blob; the method further includes: generating, based on another record of license information pre-allocated and stored in the host storage, a second license blob; determining another random memory location within a range of memory allocated to the second guest operating system by the first guest operating system; and writing the second license blob to the determined another random memory location for access by the second guest operating system to launch another application. 8 . The method of claim 1 wherein: the use request is a first request; and the method further includes: receiving, a second request to launch another application in the guest operating system; and in response to receiving the second request, at the host operating system, generating, based on another record of license information stored in the host storage, another license blob containing data representing a product key copied from the another record of license information corresponding to the another application; and writing the generated another license blob at another memory location beyond the range of memory allocated to the guest operating system by the host operating system on the host computing device, thereby preventing copying of the another license blob when data in the range of memory allocated to the guest operating system on the host computing device is copied to the new host computing device. 9 . The method of claim 1 wherein: the use request is a first request; and the method further includes: receiving, a second request to launch another application in the guest operating system; and in response to receiving the second request, at the host operating system, generating, based on another record of license information stored in the host storage, another license blob containing data representing a product key copied from the another record of license information corresponding to the another application; and writing the generated another license blob in a virtual persistent memory of the host computing device, a removable storage medium of the host computing device, or a virtual hard drive temporarily mounted by the guest operating system, thereby preventing copying of the another license blob when data in the range of memory allocated to the guest operating system on the host computing device is copied to the new host computing device. 10 . A computing device, comprising: a processor; and a memory containing instructions executable by the processor to cause the computing device to, upon receiving a request to launch an application in a guest operating system supported by a host operating system of the computing device: generate a license blob containing data representing a product key copied from a record of license information accessible only to the host operating system; select a random memory location within a range of virtual memory allocated to the guest operating system by the host operating system; and write the generated license blob to the selected random memory location for access by the guest operating system to launch the application, thereby preventing relaunching the application in another guest operating system on another computing device using the same license blob when data in the range of memory allocated to the guest operating system is copied to another range of memory that is allocated to the another guest operating system on the another computing device. 11 . The computing device of claim 10 wherein the memory contains additional instructions executable by the processor to cause the computing device to: determine whether the record of license information corresponding to the application exists in a host storage of the computing device; and in response to determining that the record of license information

Assignees

Inventors

Classifications

  • Memory management, e.g. access or allocation · CPC title

  • G06F21/121Primary

    Restricting unauthorised execution of programs · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox · CPC title

  • Protecting executable software · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2019370436A1 cover?
Techniques for memory assignment for guest operating systems are disclosed herein. In one embodiment, a method includes generating a license blob containing data representing a product key copied from a record of license information in the host storage upon receiving a user request to launch an application in the guest operating system. The method also includes storing the generated license blo…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F21/121. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 05 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).