Linked by Thom Holwerda on Fri 27th Apr 2012 22:00 UTC, submitted by koki
BeOS & Derivatives "Ultimately, Haiku represents a different way of viewing your personal computer. If you think that software shouldn't be riddled with bugs and incompatibilities and inefficiencies, if you hate being forced to swap out your hardware and software every few years because 'upgrades' have rendered them obsolete, and if you find that the idea of using an operating system that's fast, responsive, and simple is refreshingly novel and appealing, then maybe, just maybe, Haiku is for you." What fascinates me the most is that Haiku's not working on a tablet version. How delightfully quaint.
Thread beginning with comment 516076
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[5]: Uh what
by Brendan on Sat 28th Apr 2012 15:38 UTC in reply to "RE[4]: Uh what"
Brendan
Member since:
2005-11-16

Hi,

"While Haiku does support POSIX, it is not a "POSIX system", and not a *NIX. POSIX is simply an addition, not the base for it.


Correct me if I'm totally wrong here, but POSIX on Haiku is a first-class, and in many cases the only, API[1].
"

Ok, you're wrong. The primary/native API used by Haiku is the same API that was used for BeOS. This API is described here: http://www.haiku-os.org/legacy-docs/bebook/index.html

Notice that it looks nothing like POSIX.

I'm not sure how well integrated their POSIX API actually is; but I also doubt it matters. Haiku/BeOS is different (lots of message passing and multiple threads) and applications designed for POSIX (that don't use message passing, etc) will always be a poor fit regardless of how well implemented the POSIX API is.

Unfortunately, for a new OS there's always a "chicken and egg" problem - it's hard to attract developers when there's no applications and hard to get applications without developers. I'd assume that the only reason they bothered with POSIX at all was to break this "chicken and egg" problem (by making it easy to port "better than nothing" applications from elsewhere).

- Brendan

Reply Parent Score: 1

RE[6]: Uh what
by The123king on Sat 28th Apr 2012 17:00 in reply to "RE[5]: Uh what"
The123king Member since:
2009-05-28

POSIX is a second-class citizen to the Be API, and as such, most of the POSIX API that Haiku supports is just "bolted" on top of Haiku to provide a certain level of compatability with non-native code. In fact, a lot of the POSIX compatability has only been implemented in the last few years for this exact reason.

BeOS, although it had a certain degree of POSIX compatability, was nothing compared to what Haiku has gained in the last few years

Reply Parent Score: 1

RE[6]: Uh what
by Vanders on Sat 28th Apr 2012 20:29 in reply to "RE[5]: Uh what"
Vanders Member since:
2005-07-06


"Correct me if I'm totally wrong here, but POSIX on Haiku is a first-class, and in many cases the only, API[1].


Ok, you're wrong. The primary/native API used by Haiku is the same API that was used for BeOS.
"

I knew that was going to be the answer.

The Be API is NOT the kernel API. It is a user space library which sits on top of the kernel API. Using the Be API on Haiku is the same as using Qt on Linux. Neither invalidates the fact that the kernel API is POSIX.

Reply Parent Score: 3

RE[7]: Uh what
by zlynx on Sat 28th Apr 2012 22:40 in reply to "RE[6]: Uh what"
zlynx Member since:
2005-07-20

I just grabbed the Haiku source (It's available via git) and here is a sample of some of the thread functions available from the kernel:

extern thread_id spawn_thread(thread_func, const char *name, int32 priority,
void *data);
extern status_t kill_thread(thread_id thread);
extern status_t resume_thread(thread_id thread);
extern status_t suspend_thread(thread_id thread);

Do those look like POSIX?

The Haiku file interfaces do use open, close, fcntl. The socket interface does use socket, bind, listen.

But that doesn't make it POSIX.

Reply Parent Score: 3