Control flow graph application configuration
AssigneeMicrosoft Technology Licensing, LLC
InventorsAlexander G. Gounares, Charles D. Garrett
Life of this patent
Estimating the term…
Abstract
An operating system may be configured using a control flow graph that defines relationships between each executable module. The operating system may be configured by analyzing an application and identifying the operating system modules called from the application, then building a control flow graph for the configuration. The operating system may be deployed to a server or other computer containing only those components identified in the control flow graph. Such a lightweight deployment may be used on a large scale for datacenter servers as well as for small scale deployments on sensors and other devices with little processing power.
Claims17
A method executed in a computer comprising a memory and a processor, comprising:
- by the computer, determining a functionality to provide to a target device;
- by the computer, determining a feature set to enable the functionality, which feature set defines an application function and an operating system function;
- by the computer, decomposing the application function and the operating system function into a set of functional blocks of executable software code;
- by the computer, receiving a control flow graph comprising application executable elements, operating system executable elements, and relationships between executable elements, wherein the executable elements represent functional blocks of executable software code;
- by the computer, traversing said control flow graph to identify a set of executable elements that relate to said functionality;
- and
- by the computer, creating an executable package comprising said executable elements, said executable package being an operable set of executable code for said target device for said functionality.
A computer system comprising a processor and a memory, the computer system comprising instructions, which, when executed by the processor, configure in the computer system:
- an executable code generator that:
- with the computer system, identifies a feature set for a target device, said feature set comprising application and operating system functions to be executed by said target device;
- with the computer system, traverses a control flow graph to identify a set of application and operating system executable elements that relate to said feature set;
- and
- with the computer system, creates an executable package comprising said set of application and operating system executable elements, said executable package being an operable set of executable code for said target device for said feature set.
A method executed in a computer comprising a memory and a processor, comprising:
- by the computer, receiving a request for executable code from a target device;
- by the computer, determining a functionality to provide to the target device based on the request;
- by the computer, determining a feature set for said target device, said feature set comprising application functions and operating system functions to be executed by said target device to enable the functionality;
- by the computer, traversing said control flow graph to identify a set of executable elements that relate to said feature set;
- by the computer, creating an executable package comprising said set of executable elements, said executable package being an operable set of executable code for said target device for said feature set;
- and
- by the computer, transmitting said executable package to said target device.
Dependencies are inferred from the claim text.