Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Expanded Executable Loadable Format Operating System Header

IP.com Disclosure Number: IPCOM000116369D
Original Publication Date: 1995-Sep-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 82K

Publishing Venue

IBM

Related People

Gupta, P: AUTHOR [+2]

Abstract

Disclosed is the addition of two members to the Executable Loadable Format (ELF) header. The first of these is an offset to type information specific to the operating system. The second of these is the size, in bytes, of the information at that offset.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Expanded Executable Loadable Format Operating System Header

      Disclosed is the addition of two members to the Executable
Loadable Format (ELF) header.  The first of these is an offset to
type information specific to the operating system.  The second of
these is the size, in bytes, of the information at that offset.

      Currently, the ELF header supports members information for
different hardware types.  A requirement for two additional members
to the ELF header, to identify the different operating system types,
comes from operating system development on a microkernal-based
system, which can theoretically support multiple operating system
personalities on the microkernal.  This requirement can also come
from having a standard format for multiple operating systems without
a way to identify the operating system platform.  Without this
capability, the linker, upon encountering an object module or a
library from another operating system personality, has no way of
differentiating between operating system object modules.  Also
without this capability, the loader, when loading-in an executable
file, has no way of knowing in which personality or operating system
it resides.

      The ELF header does not contain information specific to
operating system platforms.  While this was not a problem when ELF
was only supported within the UNIX* environment, when ELF is used on
other operating system platforms moving to multiple personality
environments, such as microkernal operating systems, there is
potentially no way to differentiate between the different executable
or object files.  In such an environment, it is necessary for the
loaders to identify and validate executable files and shared
libraries needing to execute on a specific operating system.  One
reason for this check validation is the care of operating system
calls in modules only understood by a specific operating system.  It
is unusual to add operating system information to an object or
executable file, but there never has been a standard format across
multiple platforms.

     The current ELF Header information is as follows:
  #define EI_NIDENT        16
  typedef struct {
    unsigned char          e_ident[EI_NDENT];
    Elf32_Half             e_type;
    Elf32_Half             e_machine;
    Elf32_Word             e_version;
    Elf32_Addr             e-entry;
   ...