LWN.net Logo

Advertisement

Front, Kernel, Security, Distributions, Development. See your byline here on LWN.net.

Advertise here

Linking

Linking

Posted Jun 26, 2008 10:29 UTC (Thu) by tialaramex (subscriber, #21167)
In reply to: Linking by lrosen
Parent article: A position statement on closed-source kernel modules

Firstly congratulations on entirely avoiding an actual answer to my hypothetical, masterfully
done. Still, I think you've made your position clear enough.

You're in the situation of the lawyer who tells his client that of course it's OK for him to
keep an alligator in his home, and then only subsequently finds out that alligators aren't the
cute little furry things that go "Meow" but the big reptiles with the bad breath and the
protected wildlife status. Whoops. In the light of this new information the alligator advice
would be wrong.

You seem to have confused "linking" in the sense meant by the distributed hypermedia
community, where a link is just a machine readable "look at this" like your version of the
Moby Dick book - with the "linking" needed to take a piece of software that's incomplete,
non-functional or even meaningless and combine it with one or more other pieces of software
into a whole.

The linking process itself is purely mechanical, like assembling a car, but for it to be
possible at all the creators of the two (or more) pieces of software must agree on a number of
essentially arbitrary (as arbitrary as the choices of adjectives to describe a whale would be)
decisions. In a very trivial piece of software this might be just one or two decisions, in a
significant application like GCC it will be practically uncountable. In a GPL'd work these
choices are incorporated into the work made available for licensees to copy and redistribute,
but not without restriction.

I don't know how technical you are, my guess is "Not very". But get someone to show you how
'ar' works. That's a piece of software which takes two object files and merely aggregates them
into a single file, you can easily separate them again, even without specialist knowledge.
Now, get them to show you how 'ld' works, that's the linker. This combines many pieces from
several files into a single file, like my stickering process, interconnecting and changing
them so that they work as a whole. This is effectively irreversible. After you've seen what's
actually going on I think you might have a different opinion of whether it's "verbatim
copying" or the creation of a derivative work. That would be your "alligator" moment.

Yes, in theory you could sidestep the copying problem with clean room reverse engineering. But
you ought to know enough about the history of IP to realise that it's not a cost-effective
choice, it's the last resort. If I see that someone has used my GPL'd library to make a $10
shareware with a restrictive license, I'm not going to assume that they hired an army of
people to reverse engineer the library, but that they're simply infringing.


(Log in to post comments)

Linking

Posted Jun 27, 2008 20:48 UTC (Fri) by Tet (subscriber, #5433) [Link]

But get someone to show you how 'ar' works [...] Now, get them to show you how 'ld' works

As a complete aside, anyone wanting to know how ld works is unlikely to do better than reading Levine's excellent "Linkers and loaders" book.

Linking

Posted Jun 27, 2008 22:12 UTC (Fri) by nix (subscriber, #2304) [Link]

Ian Lance Taylor also wrote an excellent series on ELF linkers on his 
blog, which I seem to have mislaid the URL of (I think LWN linked to it at 
one point).

Linking

Posted Jul 2, 2008 4:18 UTC (Wed) by roelofs (subscriber, #2599) [Link]

Ian Lance Taylor also wrote an excellent series on ELF linkers on his blog, which I seem to have mislaid the URL of (I think LWN linked to it at one point).

Here you go. I didn't bookmark the LWN article, but it would have been from late March--probably either the 20 March or the 27 March edition.

Greg

Linking

Posted Jul 2, 2008 19:25 UTC (Wed) by nix (subscriber, #2304) [Link]

Thanks! (akregator tends to randomly lose feeds you put into it, I 
think because it only saves its feed list at session save time...)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds