Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 May 1999 23:46:42 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        licia@o-o.org (Licia)
Cc:        chat@FreeBSD.ORG
Subject:   Re: IBCS2 type question :)
Message-ID:  <199905072346.QAA01120@usr05.primenet.com>
In-Reply-To: <Pine.BSF.4.05.9905061413460.12729-100000@o-o.org> from "Licia" at May 6, 99 02:15:00 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Can anyone give me an idea of where to dig up information on IBCS2, and any
> related information? (Is there an IBCS3, any discussions of doing IBCS2 with
> Elf as well as COFF, etc?)

Hope this is useful to you:

-----------------------------------------------------------------------
IBCS/2 is the Intel Binary Compatability Standard, version 2.

IBSC/2 is documented in the AT&T UNIX manuals, in the addendum
for X86 processors.  It's about 300 or so pages.

There is not an IBCS/3.

IBCS/2 mandates COFF.

ELF is documented as it's own standard.  The SVR4 compatible
implementation of implies a system call mechanism, stack argument
layout, and other things (one of which is that the kernel is
expected to mmap the ld.so into the program image on behalf
of the program at the time the executable is run, allowing statically
linked programs to use dlopen, dlsym, et. al.; this is why the ELF
entry point is set so high).

There are several non-standard versions of ELF.  These versions
use system call interface and calling conventions that do not match
standard ELF.  As a result, in order to run non-native ABI binaries
on these systems, the ELF image must be "branded", using a non-standard
section tag that is missing from true ELF binaries (FreeBSD is one
such system).

Technically, FreeBSD is not an ELF system; neiterh is Linux.

The IBCS/2 documentation is not available online, only abstracts by
people who are documenting their own implementation of IBCS/2.


If you are attempting to build a binary that will run on multiple
machines, IBCS/2 is a better standard than ELF, since it specifies
not only an ABI, but all installation tools, filesystem layout,
system startup and shutdown integration, and many other things
not normally considered to be part of an ABI.

As of this writing, a "standard" platform for binaries uses the ELF
object file format, the implicit system call and calling convention
for SVR4.2 (and Solaris), and compliance with the Single UNIX
Specification (formerly Spec 1170, so named for the 1,170 API
entry points for the system call and system library interfaces
that must be implemented to obtain compliance).  In addition, there
is unspecified information which is legacy from IBCS/2, specifically
things like the init system and other daemon programs (System V has
it's own line printer model, etc.), which must be provided for a
system to be sure that it is capable of running code from a "true"
UNIX system.
-----------------------------------------------------------------------


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905072346.QAA01120>