“There’s quite a few interesting tidbits of information surrounding [Apple’s] ‘Universal’ or fat binaries. First of all, this isn’t the first time Apple has packaged binaries for multiple architectures into one file. The current scheme, however, was used by NeXT to provide binaries for multiple architectures, and again by Apple in to provide support for both 32 and 64-bit PowerPC architectures, well before the term Universal Binary was being thrown around.”
They also packaged PPC and 68K binaries as one FAT binary back during the 68K to PPC transition.
Next Technology seems to have quite a legacy in Apple technology
Neal Saferstein
Its the old story, if it ain’t broken, don’t fix it.
Microsoft had a great operating system, Xenix, based off SYSV r3, what did they do? they ditched it, and went for the buzz word compliant Windows NT; which was supposed to something enspired by Cutlers OpenVMS experience, the net result was, they threw out all the things that made OpenVMS good – the use of BLISS and MACRO, nice secure language, and instead used C/C++ and went hell for leather in the buzz word department – ‘object orientated’, ‘micro kernel’ etc. etc.
Maybe this is Steve Jobs Next v2 to eventually get his vision at NeXT eventually to the desktop, via the Mac platform – the benefit of this is simple, its proven technology, already done once, its just a matter of importing it into MacOS X, thus, Apple have a large treasure trove of things they can call upon. Couple that with good discipline when it comes to features being promised, they’ve done a wonderful job so far.
yes, hence most of the class, functions, and constants start with ‘NS’ (Objective-C needs namespaces badly, IMO)
As for fat binaries, I think in OPENSTEP (the OS) – where they supported 68040, i386 and something from HP (anything I’m forgetting?) – used multiple files for each architecture, whereas now they use a single file. Does anyone know if this is the first time they’ve used a single binary for more than one arch.?
As for fat binaries, I think in OPENSTEP (the OS) – where they supported 68040, i386 and something from HP (anything I’m forgetting?)
NeXTstep supported 68k, x86, PA-RISC, and Sparc.
[i]used multiple files for each architecture, whereas now they use a single file. Does anyone know if this is the first time they’ve used a single binary for more than one arch.?</>
AFAIK, it works the same way. There isn’t a single file per se — multiple binaries can live within the application container (e.g. Mail.app). If you look around at the NeXTstep warez sites (if you can really call a ten-year dead OS warez), you’ll see filenames like warez-1.3.2-NIHS.tar.Z. That would be warez 1.3.2, with binaries for all four platforms. On OSX, you’ll see these files in .app/Contents/MacOS
It makes sense, really. With ObjC’s dynamic linking, and considering that a good portion of any program is going to be platform-independent anyway (a jpg is a jpg is a jpg), it doesn’t bloat things too much. Stick the platform-independent stuff in .app/Contents/Resources, and off you go.
F.A.T is a file system. Can y’all pick a different word. In this industry, I think many people purposely create confusion.
F.A.T. is an acronym that stands for File Allocation Table while the word fat is used as an adjective when describing a binary that has multiple target architectures. You can tell the difference because FAT the acronym is always written in allcaps, while fat the adjective is a word and is wrtten as such.
I agree–tell that to the first guy who made a post on this article.
Get over it, we are an industry that loves TLA’s and doesn’t mind reusing them
Everybody’s eclipsing words these days. I think the first person who used “fat” for a binary did so intentionally. I decided to join the fun. For my operating system, I made a demo called “DotNet” which makes a net pattern of lines with lines made from dots spaced by 3 pixels.
I removed FAT file system support after I saw an article on this site saying it was in patent limbo.
This universal binary thing might be good when I port it to a 64-bit computer, but mostly it doesn’t use binarys. When you run applications, it compiles them and runs them, so it’s 100% universal. Source code is more portable than binary. (The compiler is really fast.)
http://www.losethos.com
Are you familiar with the Tower of Babble story?