Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


FATE of BeOS and Haiku

September 16th, 2009 by Multimedia Mike

Once upon a time, all the way back in 1998, I remember downloading a demo version of BeOS on some kind of live HD partition hosted under Windows. I booted into it twice and couldn’t find a good reason to do it a third time. However, there is that bustling community of developers developing the clone of BeOS named Haiku. This article at Ars Technica leads me to believe that the Haiku OS has reached some kind of development milestone (R1 alpha1).

Of course, this all reminds me that FFmpeg does have 1 or 2 developers who like to make sure that the application still builds and runs on Haiku. But are there any takers for running FATE continuously on Haiku? I installed the ISO image in a VMware session but was unable to connect to a network. I’m a little surprised Haiku doesn’t at least support the VMware network device (or does it? Perhaps I need to manually configure it somehow).

Haiku terminal and logo

I think I may finally understand the compelling reason to continue supporting gcc 2.95 in FFmpeg: that’s the default one installed in BeOS. This strikes me as odd since BeOS was alleged to be based largely on C++ and gcc’s C++ language support as of 2.95 was known to be less than stellar. Perhaps the OS builders simply limited themselves to a sane subset of the language which could conceivably make Be programming halfway tolerable.

For my part, I’m wondering how to program Haiku/Be in the first place. Haiku is supposed to reimplement Be’s C++ API, but where is that defined? Is O’Reilly’s online Be programming book the last word on the matter? I should check my boxes and see if I still have a giant book of Be that a friend gave me a long time ago for no good reason. He must have gotten the impression I was interested in hacking operating systems or something.

Posted in FATE Server | 4 Comments »

4 Responses

  1. Reimar Says:

    Haiku uses 2.95 by default because that is what BeOS originally used and they seem to aim for binary compatibility (when was the C++ ABI change? Around 3.4? Then they probably picked the most usable compiler with 2.95, not sure if 3.3 manages to not miscompile anything).
    As for network support, try a different network adapter. Network works with qemu and the Intel i82557 (though I don’t know if it will work without all my patches for it that are waiting for months to be applied or get any response at all).
    Not to mention that “ifconfig -a” would be more surprising to make sure it isn’t just DHCP that failed.
    And the documentation seems to be these: and
    Though I personally am not much of a fan of an OS where most things can _only_ be done with C++ and not in C.

  2. Ben Says:

    Actually Haiku alpha ships with both gcc 2.95 and gcc 4.3. You can compile Haiku with only gcc 4.x, there are also downloadable 4.x builds. As for programming on Haiku (Beos) there’s not alot of new documentation as of yet, but you can download legacy docs from here: and also view the slowly evolving new documentation.

    I’d say the ‘BeBook’ and ‘Programming the Be Operating System’ would be the best references for getting started with Haiku programming.

    I have never tried Haiku in VMWare but it works flawlessly in VirtualBox.

    On another note, any new benchmark comparisons on the horizon?

  3. Multimedia Mike Says:

    @Ben: New compilers warrant new benchmarks and we have seen some gcc version bump recently. I wouldn’t expect significantly different results from the previous versions (though I guess that’s what controlled experiments are for– confirming or disproving our hypotheses).

    Fortunately, I have a grand new architecture in mind for FATE that will be able to incorporate automatic benchmarks.

  4. David McPaul Says:

    The default network driver for VMWare is not supported in Haiku.

    You will need to change your VMWare config file to use the e1000 adapter.

    See this web page for more details about using Haiku under emulation

    This is a vmx file that should be setup correctly