Specialized micro-hypervisors for unikernels

US9886303B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9886303-B2
Application numberUS-201615182966-A
CountryUS
Kind codeB2
Filing dateJun 15, 2016
Priority dateJun 15, 2016
Publication dateFeb 6, 2018
Grant dateFeb 6, 2018

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.

Application code is obtained at a compiler toolchain, which accesses a package manager that tracks dependencies for a set of software components including application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages. A dependency solver is employed to select a sub-set of the set of packages that satisfy the dependencies. The sub-set of packages is assembled into an executable bundle, including a statically-linked binary built entirely from the sub-set of the selected packages that contains no external dependencies except calls to an interface defined entirely by the hypervisor interface-level packages, and a specialized monitor built entirely from the sub-set of the selected packages that runs on a standard operating system, loads and executes the statically-linked binary, and interacts with the statically-linked binary only through the interface defined by the hypervisor interface-level packages.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: obtaining, at a compiler toolchain, application code for an application to be implemented; accessing, with said compiler toolchain, a package manager which tracks dependencies for a set of software components represented as a corresponding set of packages, said set of software components comprising application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages, said dependencies being specified as metadata of said set of packages; employing a dependency solver of said package manager to select a sub-set of said set of packages that satisfy corresponding ones of said dependencies based on references to given ones of said packages in said application and corresponding metadata in each of said given ones of said packages; and with said compiler toolchain, assembling said sub-set of packages into an executable bundle to implement said application, said executable bundle comprising: a statically-linked binary built entirely from said sub-set of said selected packages that contains no external dependencies except calls to an interface defined entirely by said hypervisor interface-level packages, and a specialized monitor built entirely from said sub-set of the selected packages that runs on a standard operating system, loads and executes said statically-linked binary, and interacts with said statically-linked binary only through said interface defined by said hypervisor interface-level packages. 2. The method of claim 1 , wherein, in said assembling step: said statically-linked binary comprises a specialized virtual machine image; and said specialized monitor comprises an executable type-2 micro-hypervisor. 3. The method of claim 2 , wherein, in said assembling step, said specialized virtual machine image comprises a unikernel. 4. The method of claim 3 , further comprising: distributing said executable bundle; creating, with said executable type-2 micro-hypervisor, an isolated context to run said unikernel; and running said unikernel in said isolated context created by said executable type-2 micro-hypervisor. 5. The method of claim 4 , further comprising taking action with said executable type-2 micro-hypervisor whenever said unikernel exits said isolated context. 6. The method of claim 3 , wherein, in said employing step, said selected sub-set of said set of packages comprises packages corresponding to only those of said set of software components needed to implement said application. 7. The method of claim 1 , wherein, in said assembling step, said standard operating system comprises Linux. 8. The method of claim 1 , wherein, in said obtaining step, said application is to be implemented in a cloud environment. 9. The method of claim 1 , wherein, in said accessing step, said set of software components further comprises middleware-level components represented as middleware-level packages and operating system-level components represented as operating system-level packages. 10. A system comprising: one or more processors configured to execute: a compiler toolchain which obtains application code for an application to be implemented; a software component library storing a set of software components represented as a corresponding set of packages, said set of software components comprising application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages, said dependencies being specified as metadata of said set of packages; and a package manager in communication with said compiler toolchain and said software component library, said package manager in turn comprising a dependency solver, said package manager tracking dependencies for said set of software components represented as said set of packages, said package manager being accessed by said compiler toolchain, said dependency solver of said package manager selecting a sub-set of said set of packages that satisfy corresponding ones of said dependencies based on references to given ones of said packages in said application and corresponding metadata in each of said given ones of said packages; wherein said compiler toolchain assembles said sub-set of packages into an executable bundle to implement said application, said executable bundle comprising: a statically-linked binary built entirely from said sub-set of said selected packages that contains no external dependencies except calls to an interface defined entirely by said hypervisor interface-level packages, and a specialized monitor built entirely from said sub-set of the selected packages that runs on a standard operating system, loads and executes said statically-linked binary, and interacts with said statically-linked binary only through said interface defined by said hypervisor interface-level packages. 11. The system of claim 10 , wherein: said statically-linked binary comprises a specialized virtual machine image; and said specialized monitor comprises an executable type-2 micro-hypervisor. 12. The system of claim 11 , wherein said specialized virtual machine image comprises a unikernel. 13. The system of claim 12 , further comprising said executable type-2 micro-hypervisor and said unikernel, wherein: said executable type-2 micro-hypervisor creates an isolated context to run said unikernel; and said unikernel runs in said isolated context created by said executable type-2 micro-hypervisor. 14. The system of claim 13 , wherein said executable type-2 micro-hypervisor takes action whenever said unikernel exits said isolated context. 15. The system of claim 12 , wherein said selected sub-set of said set of packages comprises packages corresponding to only those of said set of software components needed to implement said application. 16. The system of claim 10 , wherein said standard operating system comprises Linux. 17. The system of claim 10 , wherein said application is implemented in a cloud environment. 18. The system of claim 10 , wherein said set of software components further comprises middleware-level components represented as middleware-level packages and operating system-level components represented as operating system-level packages. 19. A non-transitory computer readable medium comprising computer executable instructions which when executed by a computer cause the computer to perform the method of: obtaining, at a compiler toolchain, application code for an application to be implemented; accessing, with said compiler toolchain, a package manager which tracks dependencies for a set of software components represented as a corresponding set of packages, said set of software components comprising application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages, said dependencies being specified as metadata of said set of packages; employing a dependency solver of said package manager to select a sub-set of said set of packages that satisfy corresponding ones of said dependencies based on references to given ones of said packages in said application and corresponding metadata in each of said given ones of said packages; and with said compiler toolchain, assemb

Assignees

Inventors

Classifications

  • Runtime code conversion or optimisation · CPC title

  • Compilation · CPC title

  • G06F8/54Primary

    Link editing before load time · CPC title

  • Monitoring or debugging support · CPC title

  • Network integration; Enabling network access in virtual machine instances · 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 US9886303B2 cover?
Application code is obtained at a compiler toolchain, which accesses a package manager that tracks dependencies for a set of software components including application-level components represented as application-level packages, hypervisor interface-level components represented as hypervisor interface-level packages, and hypervisor-level components represented as hypervisor-level packages. A depe…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F8/54. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 06 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).