IP Library Granted Patent US 8,495,598
Granted Patent B2
US 8,495,598 · App. 13/461,755 · Granted Jul 23, 2013

Control flow graph operating system configuration

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,495,598
App. No.
13/461,755
Granted
Jul 23, 2013
Kind
B2
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.

Claims (43)

1. A computer implemented method comprising:

receiving a control flow graph comprising application executable elements, operating system executable elements, and relationships between executable elements;

identifying a feature set for a target device, said feature set comprising functions to be executed by said target device;

traversing said control flow graph to identify said application executable elements and said operating system executable elements that relate to said feature set; and

creating an executable package comprising said application executable elements and said operating system executable elements, said executable package being an operable set of executable code for said target device for said feature set.

2. The method of claim 1 , said operating system executable elements being a subset of an operating system.

3. The method of claim 2 , said control flow graph comprising executable elements from a plurality of applications.

4. The method of claim 3 , said feature set comprising at least one subset of said operating system.

5. The method of claim 3 , said feature set comprising a subset of said plurality of applications.

6. The method of claim 3 , said feature set comprising a subset of one application within said plurality of applications.

7. The method of claim 1 further comprising:

configuring said executable package for execution on said target device.

8. The method of claim 7 further comprising:

compiling at least one executable element prior to creating said executable package.

9. The method of claim 1 further comprising:

receiving a request for executable code from said target device; and

transmitting said executable package to said target device.

10. The method of claim 9 , said creating said executable package being performed after said receiving said request.

11. The method of claim 10 , said request being a PXE request.

12. The method of claim 1 further comprising:

receiving a first application, said first application comprising operating system calls;

creating a first control flow graph for said first application, said first control flow graph comprising said operating system executable elements called by said first application; and

adding said first control flow graph to said control flow graph.

13. A system comprising:

an executable code creator operating on a computer processor, said executable code creator that:

identifies a feature set for a target device, said feature set comprising functions to be executed by said target device;

traverses a control flow graph comprising application executable elements, operating system executable elements, and relationships between executable elements to identify said application executable elements and said operating system executable elements that relate to said feature set; and

creates an executable package comprising said application executable elements and said operating system executable elements, said executable package being an operable set of executable code for said target device for said feature set.

14. The system of claim 13 further comprising:

a code server that:

receives a request for executable code from said target device; and

transmits said executable package to said target device.

15. The system of claim 14 , said request being a PXE request.

16. The system of claim 14 , said code server operating on a second computer processor.

17. The system of claim 14 , said executable code generator creating said executable package after said code server receives said request.

18. A computer-implemented method comprising:

receiving a request for executable code from a target device;

receiving a feature set for said target device, said feature set comprising functions to be executed by said target device;

traversing a control flow graph comprising application executable elements, operating system executable elements, and relationships between executable elements to identify said application executable elements and said operating system executable elements that relate to said feature set;

creating an executable package comprising said application executable elements and said operating system executable elements, said executable package being an operable set of executable code for said target device for said feature set, said executable package comprising bootable software to execute on said target device; and

transmitting said executable package to said target device.

19. The method of claim 18 , said feature set being comprised in said request.

20. The method of claim 18 , said feature set being received from a management device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2015
From: CONCURIX CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 036139/0069 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2012
From: GOUNARES, ALEXANDER G.; GARRETT, CHARLES D.
To: CONCURIX CORPORATION
Reel/Frame 028146/0359 →