—With the advent of x86-based Macintosh computers, Universal binaries, originally known as "fat" or multiple-architecture binaries, appeared in Mac OS X.
Universal Binaries
for one or more architectures
along with a header that describes each constituent binary.
a wrapper that contains Mach-O binaries
a "4-way fat" executable could consist of Mach-O executables for the i386 (32-bit Intel), x86_64 (64-bit Intel), ppc (32-bit PowerPC), and ppc64 (64-bit PowerPC) architectures
Mac OS X does not provide any kernel-level or user-level interfaces to extend binary format support.
we'll need to write special software
new kernel functionality
software will involve a kernel extension.
extend the kernel
and execute them through specified handler programs.
Let us call the new software that implements these features XBinary.
binfmt_misc
Those familiar with the Linux kernel will realize that functionality similar to what's been described here exists in Linux as the binfmt_misc kernel feature. XBinary is conceptually similar
XBinary also has some Mac OS X specific features.
download and install the XBinary package
a command-line tool (xbinary
a kernel extension (xbinary.kext)
research software at this point
choosing the best library from an extended fat library file.
for developers, researchers, and power users
take XBinary for a spin
XBinary: extended binary format support for Mac OS X
Copyright (c) 2009 Amit Singh. All Rights Reserved.
http://osxbook.com
The XBinary software allows you to extend the Mac OS X kernel such that it
can recognize arbitrary binary formats and execute them through specified
handler programs. (Mac OS X natively supports executing only Mach-O binaries,
Universal (fat) binaries, and interpreter scripts.)
XBinary consists of a kernel extension (xbinary.kext) and this command-line
tool, which lets you control the XBinary facility. This requires superuser
privileges, so you should run this tool using sudo(8). The XBinary kext must
be loaded for the facility to be available.
You can add and manipulate in-kernel entries that enable recognition of
binary formats.
You can also specify flags that affect how a matched entry is processed. By
default, the argument vector IS adjusted and setuid/setgid binaries are NOT
allowed.
make experimentation involving new binary formats easy
Let us look at Java applications
then specify this wrapper script as the interpreter
and subsequently invoke the Java application launcher.
the extended fat feature as implemented by XBinary is not a complete implementation
These examples assume that you are on an x86 (little-endian) machine.
XBinary requires Mac OS X 10.5.x (Leopard).
Executive Summary
This document discusses XBinary, a new software that lets you add kernel-level support for executing files in arbitrary binary formats on Mac OS X.
Extending Executability
recognize arbitrary binary formats
using the xbinary tool
copious "help" output
Each entry must have as its name a unique identifier string up to 31 bytes
in size. Additionally, a set of other arguments specify to the kernel how
to recognize that binary format and which interpreter to invoke to handle
it. XBinary can recognize a binary EITHER by matching magic bytes within
the first page of the file OR by matching a file extension. OTHER_ARGS must
be a valid combination of the following arguments (some are optional).
that will determine the startup class name
Bonus Feature: Extra Fat Binaries
Since XBinary is experimental, why not experiment with such a feature too?
XBinary wouldn't be able to help the dynamic linker
Gmail changed all that. Google’s free Web-based e-mail service offers a so-good-you-forget-it’s-there spam filter, multi-gigabytes of storage, custom addresses, and more, all for free.
On the Gmail Labs settings page (click on Settings, then select the Labs tab), you’ll find a list of more than 40 experimental Gmail features which you can selectively enable or disable. Google warns that these features may “change, break, or disappear” at any time, but I think a few of them are well worth the risk:
Canned Responses If you find yourself typing the same message over and over, you can instead type it once, save it
Multiple inboxes You don’t have to stick with the default inbox view. You can instead stack additional groups of messages—all messages with a certain label, or drafts, or all messages from your spouse, for example—beside, above, or below your main Gmail inbox. This multiple inbox view is particularly effective if you have a widescreen display.
Mailplane
Gmail’s built-in mail fetcher lets you consolidate all your POP3 e-mail accounts into your Gmail inbox. In Gmail’s Settings, on the Accounts and Import tab, click on Add POP3 e-mail account. From there, you can enter your other accounts’ credentials; they’ll then appear in your Gmail inbox
Voice and video chat
You can skip Skype or iChat entirely and chat via voice and video from inside Gmail. You’ll need a microphone, iSight or other Web cam, and the free voice and video plug-in (compatible with OS X 10.4 and above).
Managing Gmail deprives you of one (evil but necessary) feature of a desktop client: new mail notifications. You can remedy that by downloading the free Google Notifier for Mac to
Forgotten Attachment Detector When you compose an e-mail that promises a document and hit send without attaching the file, this embarrassment-saver asks if you meant to attach a file first.