Hacker News new | ask | show | jobs
by waddlesplash 1255 days ago
(Haiku developer here.) This is actually a very common misconception that Haiku is not a UNIX, and it's sad to see The Register get it wrong.

It's debatable whether or not BeOS was a UNIX, but I think by most standards it is: the `fork()`-based process model, UNIX-style file descriptors (but no `mmap`), etc.

Haiku has all the bits BeOS had, of course, but we have far extended our POSIX compliance: of course we have mmap, but also pthreads, and /dev/ (including all the staples, like /dev/null, etc.) These aren't mere compatibility wrappers, but often the "native" APIs; some of the Be APIs are implemented on Haiku using them (while others use lower-level APIs.) There is no "POSIX compatibility layer" in the kernel, it's just natively POSIX all the way down.

1 comments

One big difference with POSIX/UNIX is the lack of multiple users. My understanding is Haiku is working to add support for multi-user/privilege separation of some kind, but at least for BeOS this was a fairly big difference.
Haiku already has support for multiple users at the kernel and filesystem level. You can `useradd`, `passwd`, and then `su` (or even SSH into your newly-created user on your Haiku install from another machine), and also `chown`, `chmod`, etc.

What isn't properly supported yet is running GUI applications as anything other than UID 0. Adding support for that will require some careful refactoring across a few different components. Actually, if you added a handful of hacks in a few places it might work already...