2009-10-26 15:50:47

by Rayson Ho

[permalink] [raw]
Subject: FatELF & patents

Just a heads up...

Apple (NeXT) patented the technologies behind universal binaries:

"Method and apparatus for architecture independent executable files"

http://www.google.com/patents/about?id=MQQnAAAAEBAJ
http://www.google.com/patents/about?id=b3wiAAAAEBAJ

(Patent 5432937, 5604905)

Rayson


2009-10-26 16:01:05

by Anton D. Kachalov

[permalink] [raw]
Subject: Re: FatELF & patents

Rayson Ho wrote:
> Just a heads up...
>
> Apple (NeXT) patented the technologies behind universal binaries:
>
> "Method and apparatus for architecture independent executable files"
>
> http://www.google.com/patents/about?id=MQQnAAAAEBAJ
> http://www.google.com/patents/about?id=b3wiAAAAEBAJ
>
> (Patent 5432937, 5604905)
>
Hmm... looks like patents talks about objects that stored in one file
with arch-independent header.
My implementation (that is differ to Ryan's) do not use any headers
except ELF header and just 3 bytes in it to store next location. So,
it's patent clear.

PS. Patents is evil. This is very common way to store different arch
binaries...

Rgds,
Anton

2009-10-26 17:59:20

by Rayson Ho

[permalink] [raw]
Subject: Re: FatELF & patents

On Mon, Oct 26, 2009 at 11:01 AM, Anton D. Kachalov <[email protected]> wrote:
> Hmm... looks like patents talks about objects that stored in one file with
> arch-independent header.

Actually, the example in the PDF is an executable.


> My implementation (that is differ to Ryan's) do not use any headers except
> ELF header and just 3 bytes in it to store next location. So, it's patent
> clear.

However, there are 20 claims in the patent. Just using a different way
to store the architecture independent header might not be enough.


> This is very common way to store different arch binaries...

The patent mentions only one prior art:

"One prior art attempt to provide a method for providing a single
application for a variety of architectures and formats is the ANDF
system, developed by OSF. This is an architecture neutral binary
format. A disadvantage of this scheme is that it requires conversion
to the native architecture at installation time."

I don't think there is anything similar to Apple's fat binary or
universal binary -- a single executable that can be executed on
different processor families.

The closest thing I can think of is the mixed of 32-bit / 64-bit
object files in a single archive on AIX.


> PS. Patents is evil.

Hence the heads up.

And yes, thanks but no thanks, I won't need an iPhone!!

Rayson



>
> Rgds,
> Anton
>

2009-10-26 18:42:34

by Ryan C. Gordon

[permalink] [raw]
Subject: Re: FatELF & patents


> However, there are 20 claims in the patent. Just using a different way
> to store the architecture independent header might not be enough.

I'm not a lawyer, so I don't have anything to add to this except that
FatELF has a few fields that Apple's format doesn't, so the flow chart
they specify isn't the same. I don't really know enough about how
patents work.

Any lawyers around that can comment on this? Is this something to be
concerned with (and if so, what sort of changes would make FatELF not
violate the patent), or is this all just business as usual?

--ryan.

2009-10-26 21:54:07

by David Miller

[permalink] [raw]
Subject: Re: FatELF & patents

From: Rayson Ho <[email protected]>
Date: Mon, 26 Oct 2009 12:59:22 -0500

> The patent mentions only one prior art:
>
> "One prior art attempt to provide a method for providing a single
> application for a variety of architectures and formats is the ANDF
> system, developed by OSF. This is an architecture neutral binary
> format. A disadvantage of this scheme is that it requires conversion
> to the native architecture at installation time."
>
> I don't think there is anything similar to Apple's fat binary or
> universal binary -- a single executable that can be executed on
> different processor families.

A variant of the Sparc SILO boot loader, called TILO, was
doing this with Sparc Linux kernel images 15 or so years ago.

It packs a 32-bit and a 64-bit Linux kernel into one blob and figures
out which one to actually boot once it figures out what kind of
machine it is executing on.

2009-10-26 22:15:46

by Rayson Ho

[permalink] [raw]
Subject: Re: FatELF & patents

On Mon, Oct 26, 2009 at 4:54 PM, David Miller <[email protected]> wrote:
> A variant of the Sparc SILO boot loader, called TILO, was
> doing this with Sparc Linux kernel images 15 or so years ago.

Patent 5432937:
Filing date: Aug 20, 1993
Issue date: Jul 11, 1995

According to the files' copyright header (excluding inflate.c, which
is actually the gzip stuff), the project was started in 1995 or 1996.

http://www.ibiblio.org/pub/packages/infosystems/ultrapenguin/sparc/misc/src/trees/tilo-0.2/src/

Rayson



>
> It packs a 32-bit and a 64-bit Linux kernel into one blob and figures
> out which one to actually boot once it figures out what kind of
> machine it is executing on.
>