Linked by Thom Holwerda on Thu 5th Nov 2009 23:05 UTC
Linux As we all know, Mac OS X has support for what is called 'fat binaries'. These are binaries that can carry code for for instance multiple architectures - in the case of the Mac, PowerPC and x86. Ryan Gordon was working on an implementation of fat binaries for Linux - but due to the conduct of the Linux maintainers, Gordon has halted the effort.
Thread beginning with comment 393175
To read all comments associated with this story, please click here.
If I might express my own opinion?
by gabrielwalker on Fri 6th Nov 2009 06:18 UTC
Member since:

I'm surprised to see so many Linux-folk up in arms over "what a stupid idea" FATbinaries are - at how it's "a solution finding a problem", and how package managers are clever as hell.

There's a few things I like to express about what appears to be the general opinion. First up, I thought it was a clever idea. The guy admitted it was more work, but only because the tools weren't mature yet. I can imagine hitting 'compile' (or 'make' or whatever) and getting a fully matured FATbinary out of it, compiled for the various architectures - as long as your code was up to snuff.

If you go to a Linux distro site, you have to identify what platform you're on. For techy folks, that's fine. But if Uncle Steve is sick of Windows always being infected with viruses, it means he has to call someone to help figure out what he's supposed to download - or ask to have shipped his way. Admittedly in the Windows world you have to know if you're 32-bit or 64-bit, but the good news is Mom and Pop don't really care. It runs on x86 or x64, and you're done. Not so in Linux-world, where it runs credit card terminals and I'm sure some toaster somewhere.

Being able to hit up, say, Mandriva and download a DVD ISO that "just works" would be fantastic. Like how Mac OS X does. Or Windows 7, to a point.


As for package management, yes, it's neat. I like it, I do. But they're only as good as your repos - and say my Grandma sees a new Scrabble game she wants. She's on Ubuntu and starts up Synaptic to search for Scrabble, and the one she wants isn't there. Now what? Well, now she has to go find it on Google, and hope they have a .deb package for her version of Ubuntu, for her architecture. She doesn't know how to add repos, but she remembers from her Windows experience how to click "download", then go back and double-click the installer.

If there's an error, like, "No, stupid, you're on ARM and you downloaded something for x86", guess who gets a call at 10:30 at night? It would simplify things for the average user.

Yes, I know, proper instruction is important and everyone's responsible for their own knowledge of hardware and software. But that sort of thinking won't win you market share or take over the world. It'll keep Linux a niche operating system with a small, but vocal user base -- while the rest of the world continues to run Windows, Mac OS X, or (in the future) Android. Sorry gang.

-- Not to make it sound like FATbinaries is the cure-all for all of that. I don't mean to imply that -- just that the whole "you can run this script" or "stick to the repos, stupid!" mentality is harmful to the future of Linux and the possible marketshare.

Then again in a year or two we'll probably all be on Android or ChromeOS having similar arguments over... I don't know... icon spacing.

Reply Score: 6

3rdalbum Member since:

If there's an error, like, "No, stupid, you're on ARM and you downloaded something for x86", guess who gets a call at 10:30 at night? It would simplify things for the average user.

I agree, it's a problem with Debian packaging that isn't properly solved by setting the package architecture to "all".

The cross-architecture problem can be solved without Fat binaries. Have the source code in the package, bringing in all the dependencies required to build it, and then build it on-the-fly. Or, have the package install a number of different architecture's binaries into a folder like previously proposed (with an invisible script that selects the correct one). Or, have the package download the correct binary from the web. Or, write the program in an interpreted language.

At first I thought "FatElf sounds cool, that's shocking that Ryan was given a whole lot of 'meh' and discouraged from developing it", and then I thought about it and realised that Fat binaries are not actually necessary. As long as you can cross-compile (and you can), you can have basically the same thing as Fat binaries - and the user or Computer Janitor can remove the ones that are unnecessary to save disk space.

Reply Parent Score: 3

jabjoe Member since:

Fat binaries are the wrong solution. It's inferior to package management because it doesn't take into account dependencies, updates, etc etc. It basically an install.exe with a single step toward management in terms of architecture. Silly.

So grandmas doesn't need to learn about computers, all that is really required is to take "apturl" and add the ability to seamlessly add repositories. Maybe with a trust system, warning the users if you are installing an untrusted repository. This direction seems to be in progress. The problem might be a solution that meets both grandmas and techies needs, in that situation, grandma looses, and rightly so for the sake of the system. But in this case, I think a small friendly wrapper can automate adding a repository and installing an app from it for grandma without interfering with the techies.

Reply Parent Score: 1

jabjoe Member since:

Looks like it exists in some form already.

Reply Parent Score: 1