Patent US5604905A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5604905A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for architecture independent executable files

Assignee: Next Software Inc
•
Filing: 1995-02-28
•
Granted: 1997-02-18
•
Expires: 2015-02-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention is a method that enables single release of applications for multiple architectures and operating systems and to provide ease of use of applications in multiple architecture environments. The present invention provides a single file that contains separate object code each of multiple architectures. A special header on the file identifies each section of object code and includes pointers to its starting location. When the file is to be executed on a particular architecture, the resident operating system identifies that block of object code most suited for that particular architecture and environment. That section of code is then loaded into memory for execution. Each architecture in the file is specified by CPU-type and CPU sub-type. For each CPU type or CPU sub-type, file offset, file size and alignment is also provided. Padded bytes are provided to place each member on its specific alignment. These padded bytes are undefined and can be left as "holes" if the file system cannot support them. The appropriate architecture can be picked at compile time and compilers that can run on any architecture are provided to perform the translation.

Inventors

  • 👤 Avadis Tevanian
  • 👤 Michael DeMoney
  • 👤 Kevin Enderby
  • 👤 Douglas Wiebe
  • 👤 Garth Snyder

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 19:33
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/47; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44536; G06F9/44542; G06F9/44547

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 92 words
A method for creating an architecture independent file containing multiple object blocks for use by multiple computer architectures comprising the steps of: converting high level language source code into multiple object blocks, each of said object blocks being compatible with a specific computer architecture; creating a header for said architecture independent file, said header identifying each of said multiple object blocks and said multiple computer architectures; combining said multiple object blocks and said header in said architecture independent file, said architecture independent file thereby comprising: said header; and said multiple object blocks.
Claim 2
Independent Claim 92 words
A method for creating an architecture independent file containing multiple object blocks for use by multiple computer architectures comprising the steps of: converting high level language source code into multiple object blocks, each of said object blocks being compatible with a specific computer architecture; creating a header for said architecture independent file, said header identifying each of said multiple object blocks and said multiple computer architectures; combining said multiple object blocks and said header in said architecture independent file, said architecture independent file thereby comprising: said header; and said multiple object blocks.
Claim 3
Dependent Claim 46 words
The method of claim 1 wherein said computer architectures are specified using an architecture type and a plurality of corresponding architecture sub-types, wherein a first of said object blocks is compatible with an architecture sub-type of the architecture type of a second of said object blocks.
Claim 4
Dependent Claim 48 words
The method of claim 1 wherein said header includes: a first identifier identifying said file as an architecture independent file; a second identifier identifying the number of object code blocks contained in said file; a plurality of architecture identifiers each associated with one of said multiple object blocks.
Claim 5
Dependent Claim 13 words
The method of claim 3 wherein said first identifier comprises a hexadecimal word.
Claim 6
Dependent Claim 36 words
The method of claim 3 wherein each architecture identifier includes: a CPU type identifier; a CPU sub-type identifier; an offset to an associated object code block; an object code block size identifier; and, an alignment identifier.
Claim 7
Dependent Claim 16 words
The method of claim 3 wherein said step of converting is performed using a single architecture.
Claim 8
Dependent Claim 15 words
The method of claim 3 wherein said step of converting is performed using multiple architectures.
Claim 9
Dependent Claim 14 words
The method of claim 1 wherein said multiple object blocks comprise executable program code.
Claim 10
Dependent Claim 12 words
The method of claim 1 wherein said multiple object blocks comprise data.
Claim 11
Dependent Claim 56 words
An article of manufacture comprising: an architecture independent executable file stored in a computer usable data storage medium, the file comprising; a first object block for use with a first computer architecture; a second object block for use with a second computer architecture; and a header for use in accessing said first and second object blocks.
Claim 12
Dependent Claim 56 words
An article of manufacture comprising: an architecture independent executable file stored in a computer usable data storage medium, the file comprising; a first object block for use with a first computer architecture; a second object block for use with a second computer architecture; and a header for use in accessing said first and second object blocks.
Claim 13
Dependent Claim 51 words
The article of manufacture of claim 10 wherein said header comprises: an architecture independent file identifier identifying said file as an architecture independent executable file; a number-of-architectures identifier identifying the number of object blocks contained in said file; a plurality of architecture identifiers each associated with one of said object blocks.
Claim 14
Dependent Claim 37 words
The article of manufacture of claim 11 wherein each architecture identifier includes: a CPU type identifier; a CPU sub-type identifier; an offset to an associated object code block; an object code block size identifier; an alignment identifier.
Claim 15
Dependent Claim 24 words
The article of manufacture of claim 10 wherein said first and second object blocks are executable on said first and second computer architectures, respectively.
Claim 16
Dependent Claim 114 words
A program storage device readable by a machine and comprising program instruction steps executable by the machine for causing the machine to retrieve a compatible object block from an architecture independent executable file, said file containing a plurality of object blocks for each of a plurality of Central Processing Unit (CPU) types each compatible with a desired CPU type of a computer system, the program instruction steps comprising: (a) determining whether a file is an architecture independent executable file; (b) determining whether said file has an object block that is compatible with the CPU type of the computer system; (c) retrieving a compatible object block from said file if a compatible object block exists.
Claim 17
Dependent Claim 114 words
A program storage device readable by a machine and comprising program instruction steps executable by the machine for causing the machine to retrieve a compatible object block from an architecture independent executable file, said file containing a plurality of object blocks for each of a plurality of Central Processing Unit (CPU) types each compatible with a desired CPU type of a computer system, the program instruction steps comprising: (a) determining whether a file is an architecture independent executable file; (b) determining whether said file has an object block that is compatible with the CPU type of the computer system; (c) retrieving a compatible object block from said file if a compatible object block exists.
Claim 18
Dependent Claim 48 words
The device of claim 14 wherein said step of determining whether said file is an architecture independent executable file further comprises the steps of: reading a header portion of said file; examining said header portion to determine whether said header portion contains an architecture independent executable file identifier.
Claim 19
Dependent Claim 64 words
The device of claim 14 wherein said step of determining whether said file has a compatible object block further comprises the steps of: retrieving from said file an identification of CPU types having corresponding object blocks in said file; and comparing said CPU types to the computer system's CPU type to determine whether the computer system's CPU type is one of said CPU types.
Claim 20
Dependent Claim 52 words
The device of claim 14 wherein said step of retrieving a compatible object block further comprises the steps of: determining the location of said compatible object block in said file; determining the size of said compatible object block; reading said compatible object block from said file using said location and size information.
Claim 21
Dependent Claim 17 words
The device of claim 17 wherein said location and size information is contained in said header portion.
Claim 22
Dependent Claim 134 words
The device of claim 14 wherein said CPU type and at least one CPU sub-type for each of the CPU types are stored in said file, and wherein step (b) further comprises the steps of: (b1) retrieving from said file the CPU types and CPU sub-types that have corresponding object blocks in said file; (b2) comparing said CPU types to the computer system's CPU type to determine whether the computer system's CPU type is one of said CPU types; (b3) comparing the CPU sub-types corresponding to the computer system's CPU type to the computer system's CPU sub-type; (b4) identifying the object block that corresponds to the computer system's CPU sub-type as the compatible object block if the computer system's CPU sub-type is one of the CPU sub-types corresponding to the computer system's CPU type.
Claim 23
Dependent Claim 83 words
A computer program product comprising: a computer usable medium having computer readable code means for creating a single file that contains separate object code for each of multiple computer architectures, said file comprising: a header portion for identifying each of a plurality of blocks of object code; a first block of object code for execution by a first computer having one of said computer architectures; a second block of object code for execution by a second computer having another of said computer architectures.
Claim 24
Dependent Claim 83 words
A computer program product comprising: a computer usable medium having computer readable code means for creating a single file that contains separate object code for each of multiple computer architectures, said file comprising: a header portion for identifying each of a plurality of blocks of object code; a first block of object code for execution by a first computer having one of said computer architectures; a second block of object code for execution by a second computer having another of said computer architectures.

References Cited (Backward Citations)

US5459854A Cited
US5339419A Cited
US5432937A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-02-18 2000-08-19 2001-02-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-02-18 2004-08-19 2005-02-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-02-18 2008-08-19 2009-02-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag