Notes on OS X
Richard W.M. Jones
rjones at redhat.com
Tue Feb 10 11:16:54 UTC 2009
On Mon, Feb 09, 2009 at 04:02:42PM -0800, Conrad Meyer wrote:
> This is very interesting! I think more work in this direction is a
> good idea.
Thanks for your support.
> Theoretically though isn't OS X just some other unix?
It's better to think about it in terms of APIs:
Linux: glibc (POSIX), glib, cairo, gtk, Qt, ...
Windows: Win32, GDI, DirectX, ...
Mac OS X: BSD libc (POSIX), Quartz, Cocoa, ...
Programs that confine themselves to just POSIX calls (ie. opening and
reading files, and other simple command-line operations) can compile
on both Linux and Mac OS X no problem.
However we want to be much more adventurous and port graphical
applications. We have done this for Windows by bringing lots of those
Linux APIs shown above over to Windows. The situation on Windows
looks more like this now:
Windows: Win32, GDI, DirectX, glib, cairo, gtk, Qt, ...
There is still no libc, but as long as a program uses Linux APIs
such as glib, gtk, Qt etc it can now run on Windows.
The situation for Mac OS X is essentially going to be the same. We
need to provide the Linux APIs on Mac OS X, specifically glib, gtk, Qt
and the rest.
Mac OS X: BSD libc (POSIX), Quartz, Cocoa, glib, cairo, gtk, Qt, ...
Luckily again there is work on porting these APIs that we can
reuse so it is "just" a simple matter of packaging this up.
 I say "We" did this, but in fact the porting work was already done
by many others - we "just" packaged it up and made it usable.
 Because there is no libc, we end up rewriting some direct libc
calls, as described here:
Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
More information about the mingw