Claims
- 1. A customized execution engine (CE2) comprising:
code and data sections of an application; and code and data sections of a set of system services, the set of system services having direct and full control of a set of hardware resources of a computer system containing one or more processors implementing a parallel protected architecture.
- 2. The CE2 of claim 1, wherein the CE2 makes full use of capabilities of the computer system, including capabilities not supported by a traditional operating system.
- 3. The CE2 of claim 1, wherein the set of system services is strictly limited to only those services required by the application.
- 4. The CE2 of claim 1, wherein the application implements a control flow structure utilizing only a single thread of execution in each processor controlled by the CE2.
- 5. The CE2 of claim 1, wherein the set of system services enable the application to recover and continue following a system error.
- 6. The CE2 of claim 1, wherein the application and the set of system services are non-portable.
- 7. The CE2 of claim 1, wherein the set of system services utilize no general-purpose operating system abstractions.
- 8. The CE2 of claim 1, wherein the set of system services employ entirely different resource management strategies than those used by a general-purpose operating system.
- 9. A method comprising a customized execution environment (CE2) loader organizing available physical pages of a physical memory of a computer system, employing one or more processors implementing a parallel protected architecture, into the largest possible pages based upon a map of the physical memory, employing a predetermined plurality of page sizes supported by a processor of the computer system.
- 10. The method of claim 9, further comprising substantially reducing Translation Lookaside Buffer (TLB) misses by reducing the number of virtual pages employed by a CE2 and the application element of the CE2 by allocating pages of the predetermined plurality of page sizes to sections of the CE2 and the application based upon the memory requirements of the sections and based upon the organization of available physical pages, subdividing a larger than needed page as necessary.
- 11. The method of claim 10, further comprising eliminating TLB misses by pinning the allocated pages to TLB entries.
- 12. The method of claim 9, further comprising grouping the sections into compartments the pages of each of which are protected by privilege level, access rights, protection identifiers and other protection key register control bits.
- 13. A method comprising:
a customized execution engine (CE2) loader establishing a new root of trust and extending a chain of trust from the new root into a CE2 by:
validating one or more digital signatures associated with firmware of a computer system, validating one or more digital signatures associated with the CE2 loader, and launching system services and application of the CE2 after successful completion of said validating and validation of one or more digital signatures associated with code and data sections of the CE2.
- 14. The method of claim 13, wherein each processor of a computer system on which the CE2 and application execute implements a Parallel Protected Architecture.
- 15. The method of claim 13, further comprising:
after being loaded and launched within the computer system, a first portion of the CE2 loader initiating the validation of the one or more digital signatures associated with the firmware and validation of a first digital signature of the one or more digital signatures, the first digital signature associated with the first portion of the CE2 loader; if the digital signature associated with the firmware and the first digital signature are found to be valid, then the first portion of the CE2 loader initiating further validation; if the further validation passes, then the first portion of the CE2 loader:
loading a second portion of the CE2 loader, and validating a second digital signature of the one or more digital signatures, the second digital signature associated with the second portion of the CE2 loader; and if the second digital signature is found to be valid, then transferring control to the second portion of the CE2 loader.
- 16. The method of claim 15, further comprising:
prior to said initiating further validation, the first portion of the CE2 loader receiving a random number from a separate plug-in board that functions independently of the computer system; and wherein said further validation comprises validation by the separate plug-in board of delay incurred to the initiation of the further validation and validation of the random number echoed by the first portion of the CE2 loader.
- 17. The method of claim 15, wherein the one or more digital signatures of the firmware and the first digital signature are validated by a separate plug-in board that functions independently of the computer system.
- 18. The method of claim 15, wherein said loading a second portion of the CE2 loader comprises loading the second portion of the CE2 loader at a fixed address in memory of the computer system to facilitate the validation of the second digital signature by the first portion of the CE2 loader.
- 19. A method comprising:
a customized execution environment (CE2) providing, on each processor of a computer system over which the CE2 has full control, only a single thread for execution of an application and a set of system services within the CE2; and the application performing both normal application tasks and tasks that occur as a result of events external to the application using only the single thread on each processor.
- 20. The method of claim 19, further comprising responsive to an interrupt, an interruption control service receiving control of the single thread, setting state to cause control of the single thread to flow first to one or more interruption service routines (ISRs) corresponding to the interrupt and later to flow to one or more deferred interruption service routines (DISRs).
- 21. The method of claim 19, further comprising:
an I/O driver of a minimum set of I/O drivers operating solely using virtual addresses and generating encoded directives specifying steps needed to perform an I/O operation; and the I/O driver calling platform control services to control an I/O device, the platform control services using physical addresses by following encoded directives supplied by the I/O driver.
- 22. A method comprising:
a caller executing within a customized execution environment (CE2); the caller invoking a system service call of the CE2; and the system service call causing a call return address associated with the system service call by the application to be verified.
- 23. The method of claim 22, wherein said verifying a call return address is performed via an intermediate system service of the CE2.
- 24. The method of claim 22, wherein said verifying a call return address is performed with reference to one or more data structures initialized during loading of the CE2 and application.
- 25. The method of claim 24, wherein a first data structure of the one or more data structures comprises a call table and a second data structure of the one or more data structures comprises a path table.
- 26. The method of claim 25, wherein the path table contains one or more random numbers at specific locations, and wherein the call table includes the call return address, one or more random numbers supplied by a CE2 loader, a specific path table entry location, and a disposition parameter indicating modifications, if any, to the path table to be executed during the system service call.
- 27. The method of claim 26, further comprising verifying flow of the caller had reached the call point after passing through a back dominating instruction in the flow path to the caller by comparing a first random number of the one or more random numbers in the call table to a second random number of the one or more random numbers at a specific location in the path table.
- 28. The method of claim 25, further comprising verifying a random number associated with the back dominating instruction.
- 29. The method of claim 22, wherein the caller executes at a first privilege level of a plurality of privilege levels, wherein the called system service executes at the same or higher privilege level of the plurality of privilege levels.
- 30. The method of claim 22, further comprising:
an I/O driver of a minimum set of I/O drivers operating solely using virtual addresses and generating encoded directives specifying steps needed to perform an I/O operation; and the I/O driver calling platform control services to control an I/O device, the platform control services using physical addresses by following encoded directives supplied by the I/O driver.
- 31. A method comprising:
a customized execution environment (CE2) providing a minimum set of I/O drivers for a particular application; an I/O driver of the minimum set of I/O drivers operating solely using virtual addresses and generating encoded directives specifying steps needed to perform an I/O operation; and the I/O driver calling platform control services to control an I/O device, the platform control services using physical addresses by following encoded directives supplied by the I/O driver.
- 32. The method of claim 31, wherein the encoded directives specify I/O controller addresses indirectly through an I/O controller descriptor residing in a compartment accessible only by one or more of the platform control services.
Parent Case Info
[0001] This application is a continuation-in-part of application Ser. No. ______ (Attorney Docket No. 73153-302255, Express Mail No. EL 971197699 US), filed Feb. 27, 2004 and claims the benefit of Provisional Application No. 60/451,848, filed Mar. 4, 2003 and Provisional Application No. 60/497,870, filed Aug. 25, 2003, all of which are hereby incorporated by reference in their entirety.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60451848 |
Mar 2003 |
US |
|
60497870 |
Aug 2003 |
US |