Solaris vs Linux debate between Eric Schrock and Greg K-H
Wow. There's an interesting debate going on between our Eric Schrock and Greg K-H on different philosophies of Solaris and Linux.Eric Schrock's first post:
http://blogs.sun.com/roller/page/eschrock/20040924#gpl_clarifications
And Greg K-H's rebuttal:
http://www.kroah.com/log/2004/09/23/#2004_09_23_sun_rebuttal
Then Eric's rebuttal of the rebuttal:
http://blogs.sun.com/roller/page/eschrock/20040924#rebutting_a_rebuttal
Eric's last post is very good, so I don't have much to add except for one thing. From Greg's rebuttal:
Here's why the Linux kernel does not have binary driver
compatibility, and why it never will:
...
* compiler versions and kernel options. If you
select something as simple as CONFIG_SMP, that means that core
kernel structures will be different sizes, and locks will either
be enabled, or compiled away into nothing. So, if you wanted to
ship a binary driver, you would have to build your driver for
that option enabled, and disabled. Now combine that with the
zillion different kernel options that are around that change the
way structures are sized and built, and you have a huge number of
binary drivers that you need to ship. Combine that with the
different versions of gcc which align things differently (and
turn on some kernel options themselves, based on different
features available in the compiler) and there's no way you can
successfully ship a binary kernel driver that will work for all
users. It's just an impossible dream of people who do not
understand the technology.
There you have it. A binary driver compatibility is "an impossible dream
of people who do not understand the technology". Yikes. So all those
commercial unix vendors (or even Microsoft) who provide the binary compatible
driver are idiots who do not understand the technology. Also, as a compiler writer, it's mystifying, to say the least, that he blames compiler versions for structure size or alignment changes. If you have a proper application binary interface which defines the structure layout, no matter what compiler you use, they won't change. If they do, then the compiler has just broken the ABI. If I didn't know better, I would have thought gcc doesn't even provide a proper and stable ABI that it adheres to - it does. So don't blame it on gcc - linux's binary driver (non-)compatiblity issue has nothing to do with gcc. ( Sep 24 2004, 02:22:22 PM PDT ) Permalink Comments [1]
Post a Comment:
Comments are closed for this entry.


Posted by Rashper on September 27, 2004 at 08:28 AM PDT #