Hacker News new | past | comments | ask | show | jobs | submit login
Haiku R1/beta1 has been released (haiku-os.org)
296 points by hakfoo on Sept 29, 2018 | hide | past | favorite | 79 comments



Posting this from HaikuOS! Greetings earthlings! Man I feel like I've opened a time capsule.


Tell us more about it -- what have you discovered? What do you like so far? Can you use it productively for things?


I'm still discovering what's going on with this OS. Apparently we can install VMWare tools. It's been over 15 years since I've touched anything to do with BeOS but in the words of Celine Dione.. It's all coming back to me now


Incredible progress, very cool! I used BeOS back in ‘99 and loved it. Applications were straightforward to build with C++ and the BMessage system. It had a great little community, even in Germany (“BeGeistert”!). Does Haiku run on ARM nowadays?


Yes:

https://download.haiku-os.org/nightly-images/arm/

It's even buggier than the x86 version though, and you don't have any software beyond what you compile for it yourself.


I thought the ARM version didn’t have a GUI yet...


The Application Server is in progress, but it builds. The problem is that on x86, you can fall back on the BIOS w/ VESA to display video; while ARM lacks that functionality. If you can find/build a video driver it should Just Work(tm).

You can see the current video drivers here:

https://github.com/haiku/haiku/blob/master/build/jam/images/...

Which are all x86/amd64-based. The RPi would actually be relatively simple to throw a framebuffer video driver together for, though:

* https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/s...

* https://github.com/raspberrypi/firmware/wiki

* https://github.com/dwelch67/raspberrypi/tree/master/video01


Err ... no? The problem with the ARM port is the lack of device drivers, and the fact that there is no userland/syscalls ABI set up yet at all. So there's still a lot to be done here.


BeOS in '99 what a glorious time to be alive! Such potential, it's been 20 years in the making!


was the OS api that better ? I only saw bits of the [db]FS part, it was lovely.


It was built with threading in mind throughout, which was unusual for the time. Remember, it took until C++11 until threads became part of the language.


It was one of those OSes where you could move the video window around without artifacts/frame drops. Took a while until Linux achieved the same.



Loving how they list Pentium II as a minimum requirement. I still have an old netbook with Intel Atom that I use when travelling to certain parts of the world and while it is clocked at 1.6 GHz and has 2 GB of RAM many of the modern Linux desktops are extremely sluggish.


Haiku would definitely bring it to life. I had a similar Atom based netbook and it was a perfect Haiku machine. I also have a PIII based laptop from 2000 with 512MB RAM that runs Haiku (and BeOS 5.0 Pro) extremely well.


Good news. I'm just about to try it on my Asus eeePC 701 4G, I've upgraded the RAM to 1Gb and have an 8Gb SD card for additional storage. Fingers crossed!


I have an eee 701 --- there are graphic driver problems but it works find in safe mode. (I think there's something weird about the eee's smaller-than-normal screen.)

Incidentally, I recall the early eees (like mine) having a faulty SD card slot and were unreliable writing to SD cards. Real MMC cards work fine. But that was years ago, so maybe there's a workaround now.


Thanks for the graphic driver tip. I've never had an issue with SD cards, but the 4G is (I think) the last iteration of the original 700 series, so presumably it was fixed by then.


This is a very faithful reimplementation if BeOS, which means it shares one unfortunate limitation with it: The lack of drivers.

Already back in '99, not leveraging 3D hardware was a problem for adoption. These days even more so, as not only 3D software but also 2D, audio and scientific software leverage GPUs.


There has been discussion [0] on porting FreeBSD's linuxkpi framework to get Linux drivers working on Haiku. So far I do not think anyone is actively working on it, but it would be a very similar solution as was used to get FreeBSD's networking drivers working on Haiku.

[0] - https://discuss.haiku-os.org/t/plans-for-3d-acceleration/727...


That would be wonderful. If I could get OpenGL support for current generation NVIDIA or AMD hardware, ideally with OpenCL or Vulkan too (CUDA is probably too much to ask for), I would even be able to use Haiku for my daily work.


I wonder if it would be worthwhile for small OS projects like this to pivot toward running on the Raspberry Pi instead of on generic PC hardware.

The downside for Haiku would be that they're giving up on the original goal of maintaining binary compatibility with original BeOS software. But that ship may have largely sailed, anyway, with the decision to go 64-bit.

The upside is that it would reduce the number of different hardware devices that they would need to support in order for people to perceive it as useful software by approximately 5,367 orders of magnitude.

(Well, that and a bunch of rework to get over to the different hardware, ofc.)


I also commented on a thread above, there are plans to support running BeOS GCC 2.95 applications on the x64 version of Haiku.


Back in the day, BeOS was smaller than the size of some modern web pages. I wonder if this could be leveraged with WebAssembly to have completely portable operating systems?


Are you sure you mean BeOS and not QNX, which had a floppy demo disk with network or modem support? http://toastytech.com/guis/qnxdemo.html

I know that even BeOS 4 came on CD, and I think the free PE version of BeOS 5 was about 50 Mb (although that might have been a virtual hard disk image? It's been a few years...)


A page I use for work is no joke 100mb. They pre-cache like every single asset because ???


C’mon Mozilla, make a smart move and bring Firefox to Haiku OS. Just kill that Chrome OS thing.


From what I've read in the release notes, Haiku uses GCC version 2 for ABI compatibility reasons. Can anyone elaborate on whether this is the case, or whether modern GCC can be/has been modified for the OS to maintain binary compatibility. Also, what is lost in this case?


There are two versions of Haiku, the hybrid 32-bit version uses the older GCC for compatibility with software written for BeOS, plus GCC 7.3.0 for modern app support. The other is a 64-bit release with only the modern GCC and no backwards compatibility with BeOS apps.

https://download.haiku-os.org/


What aspect of newer versions of GCC breaks the ABI? Are these things that can't be controlled?


First, to add to the parent comment, you can install later versions of GCC on the x86 gcc2 builds as well. There is also a port of LLVM.

Second, not directly related to what changed with the ABI, but it I think it would be more hassle than it is worth to try and make newer versions of GCC emit compatible binaries. There is work to run Haiku GCC 2.95 libraries alongside binaries built with a newer version. The runtime loader would be responsible for picking the correct so files. This also would work on the x64 builds as well, similar to how Linux (and others) can load x86 programs on x64 OS's. This feature is close to working but there were some last minute issues found, so it was left out of the Beta.


Ah, so BeOS programs could work under 64 bit haiku?


Yes, that is the plan if I understand correctly.


The GCC C++ ABI got a major overhaul in 3.4 so any C++ API won't be compatible. There may have been more platform-specific ABI changes too, I know mingw had one in the 4.x series.


My Thinkpad 240 is ready, now waiting for an USB to IDE adapter to install Haiku on its disk.


I tried on mine but it wouldn't boot last time.


What are the advantages to using HaikuOS vs other OSes?


It's a very lightweight single-user OS with an excellent GUI and a Posix command-line environment (i.e. bash, make, gcc etc).

It's not a server OS, and it's not particularly secure, so it's not a particularly good choice in any environment where it's faced with the outside world: it assumes that you own the machine, trust it, and control what software runs on it. Remember it came out of the DOS and Win95 era.

But it's really good at giving you a comfortable Unix-ish development environment on old Pentium-grade hardware which Linux struggles on.


Watching the 97 demos of multithreaded gui and decoupled subsystems (could change rendering parameters on the fly for each different screens) I was as sad as moved. Quite a peculiar bit of history.


Same dev team does whole stack, from kernel, kits, drivers, servers to user space. In theory, it is all integrated and has direct path from server to kernel, resulting in more efficient system.

BeOS core API was designed for multi core systems from day one, so the design is more modern than older systems.

The core API is C++, from kernel to user space.

Lots of things to like, it just needs more polish and devs to flourish.


> Same dev team does whole stack, from kernel, kits, drivers, servers to user space. In theory, it is all integrated and has direct path from server to kernel, resulting in more efficient system.

Except, while that's often what the blurb says, the implementation is typically paste in whatever somebody else wrote and call it a day.

For example years back Haiku announced it was going to have WiFi. Its own WiFi stack, far more integrated and reliable than things you were using on other systems. Very exciting.

And then as a "stop gap" it pasted in FreeBSD's PCI 802.11 driver subsystem, and the WPA Supplicant you've seen on all your Free Unix systems. And that's where they stopped. Last time I checked they had a version of WPA Supplicant vulnerable to KRACK but I'm sure they'd updated for the Beta.

How does their "integrated" solution handle your WiFi credentials? They use the powerful Haiku "KeyStore" password protection system. Here's how that works: You write the plaintext password into a file. Don't worry though, in KeyStore they wrote "TODO: Actually encrypt". Which I think you'll agree is almost as good as using encryption ?

> BeOS core API was designed for multi core systems from day one, so the design is more modern than older systems.

More modern is relative. "Older systems" in this context is stuff from the 1980s, because BeOS is roughly the same age as Linux, started in 1991.

However in Haiku you won't find anything like IO Completion ports, or futexes. You won't find any privilege separation because everything runs as "root". Everybody else moved on and Haiku is stuck being really quite good by 1990s standards.


Well, BeOS is the same age as Linux but Linux was an implementation of older concepts (Unix) while BeOS was designed from scratch.


That was 1991 Linux. Modern linux has moved much further than the original implementation, introducing all kinds of non-old-time-UNIX concepts (starting from Plan9 ones).


It still needs to catch up with mainframes' security, though.


In general I don't know enough to disagree, but keep in mind the context here is comparing to Haiku, which is not great at security, particularly of the multi-user sort to which you refer.


There is a Multics security research paper that describes out-of-bounds as practically non-existent thanks to PL/I features.

According to the Linux Kernel Security Summit 2018, 68% of kernel exploits are caused by out-of-bounds errors.

That is just one example, there is plenty of material available to anyone that wants to dive into the subject.

So just because GNU/Linux faires better in security towards Haiku, doesn't mean there is nothing left to improve.


> You won't find any privilege separation because everything runs as "root".

The GUI runs as root, but you can start applications as non-root users (in fact the sshd does run as another user by default, etc.)


You can, although the instructions published actually result in you still being root (and using password authentication, erk)

However, privilege separation doesn't really work, even if you go out of your way to become a genuinely non-root user, you can still read, modify and replace system files for example.


> You can, although the instructions published actually result in you still being root (and using password authentication, erk)

Huh? Maybe this was true on alpha4 (I have no idea), it certainly isn't true now.

> even if you go out of your way to become a genuinely non-root user, you can still read, modify and replace system files for example.

Root can't even replace system files anymore due to packagefs; but in general, there was a massive refactoring and cleanup of the VFS layer between alpha4 and beta1 which means filesystem permissions are actually enforced now.


> Huh? Maybe this was true on alpha4 (I have no idea), it certainly isn't true now.

I followed these instructions on a live Haiku Beta ISO:

https://www.haiku-os.org/guides/daily-tasks/netservices/

Following these instructions resulted in me connecting to the Haiku machine as root (named "user" but with user ID zero and thus root rights). I was able to "kill" processes run by the desktop user and so on.

> Root can't even replace system files anymore due to packagefs

While packagefs prevents a naive user from being able to modify their system files, it actually makes it easier for an attacker because you can just add a package to modify things or remove one that's in your way.

Even after creating a separate non-root user and logging in to that rather than the root equivalent user, I was able to continue manipulating the system in this way without trouble, at first removing documentation in the desktop user's language and then gradually replacing software with my own.


> Following these instructions resulted in me connecting to the Haiku machine as root (named "user" but with user ID zero and thus root rights). I was able to "kill" processes run by the desktop user and so on.

Well ... yes, because you set the sshd to allow root login, and then logged in as the root user. This is the intended behavior, yes? You can leave that option off, `adduser`, and then log in as the new user instead.

> Even after creating a separate non-root user and logging in to that rather than the root equivalent user, I was able to continue manipulating the system in this way without trouble, at first removing documentation in the desktop user's language and then gradually replacing software with my own.

Hmm, well, that is a bug then; last I tried I thought this was impossible. Perhaps the directory permissions on /system/packages are incorrect.


>servers to user space

Yeah, but isn't most user space one would want to use some GNU util or another or from any number of third-party projects?


As Apple and Microsoft have found out, one just needs to provide a UNIX/Linux userspace layer and it's a win.


Apple does not have a Unix user space shim, macOS is a Unix OS with non-Unix userspace built on top of that.

But, yes, WSL proves the point.


Layer != shim, unless I got my English wrong.

My remark was into the sense of those using OS X and WSL as pretty GNU/Linux.

In this context, a certified UNIX has a couple of surprises to those that never left GNU/Linux.


So if it were to be used as a server OS, would it have the potential to be faster/more integrated than Linux? Or at least as well?


> Same dev team does whole stack, from kernel, kits, drivers, servers to user space.

This is why I use FreeBSD.


FreeBSD doesn't develop their own desktop environment, window manager, compositor, or display server. Haiku does all of those things.


That's why Freebsd lost it's technical lead 15 years ago.


> The core API is C++, from kernel to user space

That was what made me get interested in BeOS in first place.


I just had an idea to use KVM and PCIe passthrough to piggy back windows driver support for Vulkan into a PCIe device running in Haiku so Haiku could use the latest graphics cards w/o having to write their own video drivers. Bonus points for implementing mmap across to guest OSes. There should be a generic hardware description for a Vulkan based paravirt PCIe graphics card. Then the backend of the pvirt GPU could either pass it through to the driver, send it over the network or re-translate it on the fly to AVX, WebGL, etc.

Because the first question that popped into my head was, "How do they enable modern GPU support?"


We already have a roadmap for that, see here: https://discuss.haiku-os.org/t/plans-for-3d-acceleration/727...

We don't want to be confined to VMs forever; in fact we already have a sizeable number of users running on bare metal.


Can this run on VMWare?


I am running it on VMWare and it works like a charm. I am writing from WebPositive, the integrated browser, and it's prety awesome.


As others have noted, yes.

You may want to install the VMware add-ons via HaikuDepot after installation:

1. Applications > HaikuDepot

2. Tools > Refresh repositories

3. uncheck "Show only featured packages"

4. search for or scroll down to "VMware add-ons"

For access to shared folders, use christiaan's suggestion found in the Ratings tab (instead of the instructions found in the About tab):

    -> mkdir /boot/home/VMware
    -> mount -t vmwfs -o localhost/Volumes/VMware /boot/home/VMware


Yes! It most certainly works on VMWare, I chose the Other/64Bit setting with legacy BIOS


I have never used VMWare to run Haiku, but it should run. I use VirtualBox and the one thing that I have to do is switch the network driver to the Intel Pro device to get networking working. So with VMWare you might need to do something similar.


Totally, but I've had the best experience using KVM over VMware or VirtualBox. They have built in a lot of support for virtio hardware so KVM works very well.


I still think Apple should have bought NEXT and BeOS. Can’t wait to try this out though. Loving the idea of virtio drivers


They tried buying BeOS, but the BeOS people absolutely refused to sell out to a company like Apple. NeXT was their second choice, and they succeeded in buying it (NeXTSTEP became Mac OS X).


IIRC, Jean-Louis Gassée named a price that Apple was unwilling to pay. I don't know his motivation for doing that - was it all about the money? Or was it to stick it to Apple and name a stratospheric price as a way of sending a message?


Jean-Louis Gassée is an ex-Apple executive. He's why Jobs left Apple. For him the point of Be Inc. was to show Apple they'd been wrong to subsequently get rid of him in 1990.

When Apple were looking at BeOS / NeXT what they were really trying to decide was whether to have Jobs or Gassée back. They picked Jobs.

After Be, Inc. sank JLG arranged to run Palm's software spin-off. This produced the version of PalmOS that's remarkable because instead of being used more palmtop devices than previous PalmOS versions it was used in none at all, even the Palm hardware company never used it.

IMO Gassée would be nobody you've heard of if not for the fact of his being in a position to force Jobs out of Apple. Everything else follows from that.


Gassée probably thought his price was fair - and it was less than what Apple paid NeXT to take them over :)


Loved a BeOS when it came out but is not the whole concept outdated now? C++ all over the place seems like a bad idea for enabling the usage of other languages as C++ is terrible at interoping with anything. Multi threading all over the place BeOS style does not seem like way concurrency is done today with higher order APIs.


Sure it’s probably outdated but that doesn’t mean it shouldn’t exist. A Porsche 911 is outdated but it has its place in our lives.


17 years in development. Just WOW!


Any way to get 802.1x working?


Yes, it's supported out of the box using FreeBSD's WiFi drivers, so it should support most chipsets FreeBSD does.


Does PEAP work as well?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: