Notes on OS X

Richard W.M. Jones rjones at
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.[1] The situation on Windows
looks more like this now:

  Windows:  Win32, GDI, DirectX, glib, cairo, gtk, Qt, ...

There is still no libc[2], 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[3][4] so it is "just" a simple matter of packaging this up.


[1] 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.

[2] Because there is no libc, we end up rewriting some direct libc
calls, as described here:



Richard Jones, Emerging Technologies, Red Hat
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 mailing list