Posted on November 30, 2007 at 8:42 pm
OS X to run Windows applications natively?
Many in the IT world consider this to be a Holy Grail, a true ultimate in software milestones. Imagine you have a Mac, you like it, but you need to run Excel - and then running it without any other tool in between, just doubleclick it. No Parallels, no VMWare, not even Boot Camp. How does that sound to you? Amazing? It sure does to me.
And here’s the real juicy part: There seems to be an undocumented and so far very well hidden feature in Mac OS X Leopard, which could be counted as evidence that Apple’s developers are indeed brewing on the recipe for Windows apps and might add it to the meal.
This is not the first time that this subject come up. Rumor had it a lot of times that Apple might be working on such a thing, as there was one Code Name which never took form, but was mentioned. When Apple’s systems were older, and just called Mac OS, the layers for each framework (such as Carbon and Cocoa) were put in symbolic boxes, so that the entire thing was easier to understand.
Yellow Box:
The Yellow Box is the application environment for “Rhapsody” software, whether on the PowerPC or Intel platform. It is preemptive (applications must share the CPU; no program can take over), multithreading (several applications can run at the same time, not just coexist in memory), and memory protected (an application may crash, but that will not crash the operating system).
Blue Box:
Blue Box is how you run Macintosh applications under Rhapsody for PowerPC. It fully duplicates the Mac OS right down to its limitations, such as memory management and concurrent multitasking. (If it went beyond that and offered more robust services like Rhapsody does, many Mac applications might not work properly.) The first Blue Box release runs in full-screen mode, hiding Yellow Box; this may change in the future.
And the Holy Grail read as follows.
Red Box:
Red Box, although not confirmed by Apple, would be how you run Windows applications under Rhapsody for Intel - and possibly under Rhapsody for PowerPC as well. Like the Blue Box on a Power Macintosh, the Red Box will give Rhapsody users a way to run Windows applications.
A little more detailed information about the tree boxes can be found here.
But Red Box never took some interesting shape. Steven Edwards on the WINE mailing list points out that he has found some VERY interesting behavior of Leopard while trying to test something with WINE. It seems as if he has uncovered a hidden and undocumented feature that might lead show that Apple is indeed trying to make native Windows execution a reality. Without Windows.
In the below I have left out some parts, so that the more important information is directly visible.
When tracking down a crash in the kernel32 loader test, Dmitry found a
bug in the Mac OS loader when Wine tried to load his dummy PE file.
Upon further research I found that the Mac loader seems to have its
own undocumented PE loader built in. I did some further testing with a
windows binary and got some really interesting results.[...]
Its trying to load the dlls. I get this output:
[...]
steven-edwardss-imac:temp sedwards$ file procexp.exe
procexp.exe: MS-DOS executable PE for MS Windows (GUI) Intel 80386 32-bit
steven-edwardss-imac:temp sedwards$ open .
steven-edwardss-imac:temp sedwards$ ./a.out
dlopen(./procexp.exe, 258): Library not loaded: MPR.dll
Referenced from: /Users/sedwards/Library/Application
[...]So this leads to the question. Whats going on? Is Apple going to be
adding a win32 compatibility layer to OS X?
On the second reply he himself wrote in the thread, he has again listed outputs of commands, and further states:
PE Files were rejected on Tiger, which is interesting to me because I don’t
think that this is just a hold over from EFI support. I think it may be a sign
of future addition of a Win32 subsystem to OS X.
On the third (and in the moment the last) page, he states:
More information
(Link to more information at Apple Open Source)
[Note: You must be registered in Apple Developer Connection to access this code!]which contains
# local symbols to suppress
*PE*
*Win*The project file references ImageLoaderPE.cpp, but that isn’t included
in the source…
all the other files are here, so yes it really looks like they are
trying to hide support for
PE. Why would they go to all this trouble to hide Windows Binary support?
So. Steve. What’s happening here? Is you or is you ain’t implementing Windows Executable support in OS X 10.6 maybe?!
If you want to see all the output, go to Steven Edward’s WINE mailing list thread and read the three entries he has done, which do uncover very interesting information.
This could be a leftover from an earlier, unfinished project. But then, how are the same things rejected when attempted on Mac OS X Tiger, Apple’s previous system? Is Red Box taking shape? Or is it just weird behavior of Apple’s system, maybe throwing oil into the fire on purpose? I guess we won’t find out at the next MacWorld, but maybe at WWDC 09 or so.
Stay iTuned.

Who is into video games, knows this guy. Red cap with a capital M, blue overall. He has defeated the enemy in countless adventures just to save his princess, and he doesn’t get tired of it, nor do his enemies, especially Bowser, the boss of the bad guys. I am speaking of course of Mario, the most recognizable video game character in history.