Haiku has hired an existing contributor to work on Haiku full-time
haiku-os.org
haiku-os.org
Or you can go make a (tax-deductible) donation to Haiku, Inc. directly to support my contract: https://www.haiku-inc.org/donate/
What are the top three features that you like the most with Haiku?
That is, it's not like Linux/BSD desktop environments where the kernel, display server, window manager, desktop shell, file manager, distribution ... are all developed by separate teams in separate code repositories with separate goals, schedules, standards, etc. In Haiku, you can change the UI toolkit, display server, and init system all in a single commit to one repository.
This has a massive array of advantages. It means we never go back and forth about where responsibility for a bug lies, only where it should be fixed. It means we can decide to go with or against trends and standards as it makes sense to (our package manager is probably the biggest example of this.)
Virtually everything else I like about Haiku stems from this, whether it's the timeless UI, the overall system architecture, or even the code itself (which is a genuine pleasure to just read, not something that one can often say about any project.)
there is mention of R1 and R2.
what are the goals for R1? any time estimates when R1 will be ready?
what's in store for R2?
there is discussion of multi user support for R2. what other interesting goals are there?
The Haiku kernel and CLI already supports multiple users, you can add them and SSH into them already. Permissions checks aren't quite there yet, and the GUI is totally non-multiuser-aware. It is a R2 requirement, but it could come sooner...
FreeBSD has fallen behind a bit, so you may want to check model numbers carefully before buying something. Intel hardware of the "9200" series and anything before it generally works (though it may not have all features enabled.) Atheros hardware is the next best, with anything before the "Killer" series especially well supported.
Slightly older ThinkPads tend to do very well. I have an E550 (from 2015) and a T60 (I dunno, 2009?) that are pretty great. My main machine is a custom Ryzen desktop where I carefully picked out hardware that I knew either was already supported or would soon be (e.g when I bought it, the NVMe driver was still in an unstable state and I had more work to do on it, but now it's pretty solid.)
FreeBSD has one WiFi driver ("iwm", or on Haiku we call it "idualwifi7260") that supports 802.11ac hardware, and supposedly the 802.11 stack is ready for ac (there is an out-of-tree driver that crashes a lot but does get ac speed), but nobody added ac support to the "iwm" driver.
Actually both my laptop and desktop use that driver, so who knows, maybe I'll poke at adding 802.11ac support to it one of these days.
I also believe there's a hack floating around to forward ac from a Linux VM, which some use.
(Haiku has its own troubles with FreeBSD drivers, for sure, but generally this seems to hold true: either it works nearly perfectly or it completely fails to recognize or initialize the hardware. Almost all tickets on our tracker now or in the past about such drivers have been along those lines.)
I find that I tend to prefer the FreeBSD take on things as well, so the Linux angle just feels weird the past few years.
I've considered donating funds to FreeBSD with the idea of earmarking them specifically for Wifi, but I don't know how much that actually helps...
Now we are three who could donate to FreeBSD-Foundation and wish for ac on Intel wireless.
Not criticizing, just observing how hard it is to work through new alphabet soup of standards without hardware vendor support.
C++ finally has modules as of C++20.
Do you think there's any chance that the Haiku source code will be organized around modules instead of header files at some point?
I think if we had sufficient time and energy, we might have started our own programming language that takes a lot from C++ but would diverge sharply after the "C with Classes" part (we have joked about it before, at least.) For one, some of the paradigms we use a lot in Haiku might serve well as baked-in language features, or could be taken further with compiler support. Memory safety is also another big one; I know Rust is now the "C++ successor with memory safety," but at least to me I think it does not quite fit the bill; though we have an especially esoteric view of what "C++" is (notably I haven't put in the time to really learn Rust, honestly, though some of the other Haiku contributors are fans, and the Rust port to Haiku is sufficiently solid at this point)
The biggest thing I think we would ultimately change in any wildly hypothetical programming language we might come up with, though, would probably be ABI stability. C++ is just a huge pain to keep ABI-stable (C is as well, to a lesser extent), and there are all kinds of tricks that are clearly possible now in compilers, in ELF, etc. that there is clearly room for a slightly different language design coupled with a radically different language ABI to make ABI stability much less of a chore to maintain. (We are very big on dynamic linking and stable ABIs, something Rust seems to have basically given up on if it ever really tried, and the same in Go and other newer languages.)
I would imagine that modules instead of headers might come about as some kind of development along with ABI stability if nothing else.
On OSes that happen to be written in C, most devs tend to misunderstand the OS ABI for C ABI and then use both interchangeably.
A new OS update can bring changes, also on platforms whose OS isn't written in C, several C compiler can opt for different kinds of ABI thus not allowed for cross compiler linkage without extra steps.
It seems to be well deserved
Good luck and have fun!
i booted haiku on a linux laptop that is using btrfs and it wasn't able to mount the linux partitions. (mounted it as almost empty with some broken entries, so it looks like btrfs needs more work)
i would expect that ext4 is most popular and thus more likely to be stable
the worst irritation with dual-boot is having to reboot to access data that's on the other OS disk. but this way i can boot and test haiku without having to move all my data over
I'd love to play around with them for fun but is there more to it?
Nostalgia, curiosity, and hobby
This of course involves many trade-offs (losing access to common "modern" tech like containers, slower performance) but for my company the trade-offs were justified.
Tell me more! I cut my teeth on ipchains/iptables back in the early 90's, and feel very familiar with it. That said, I know that doesn't mean it's the best/easiest at all. I've tried to grok Pf once or twice, but never ended up getting very far. I wanted to ask you if you began with Pf, or if you came from something else? More or less, I'm trying to figure out if Pf was difficult for me just because it wasn't my first.
My favorite feature of pf is the configuration file, which is a human-readable/writable file which sets the state in a consistent way, rather than iptable's preferred mechanism of using a bunch of CLI commands executed in just the right sequence. I want a guaranteed consistent state when I'm configuring firewalls across a fleet, and pf.conf makes that not only easy to achieve, but the default behavior. Just modify the conf file, copy that to all the boxes, reload pf, and your firewalls are all updated and guaranteed to be in the same state, regardless of whatever state they were in before.
You can read the pf.conf file from top to bottom to figure out what's going to happen to any packet. All the rules are included right there.
I would just read the man page for pf.conf which gives helpful examples (https://man.openbsd.org/pf.conf.5#EXAMPLES) as well as this resource: https://www.openbsd.org/faq/pf/config.html.
In the 20 years since, I have not used an OS that has made me as _happy_ to use as BeOS. Early OS X around 10.4-10.5 came closest.
Do people have love deep in their hearts for Windows or even macOS 11?
It's hard to explain these days, but back in the late 90s it was just so far ahead of everything else except maybe NeXT and NeXT was entirely out of reach for 99% of the world.
The UI was ridiculously smooth and fast and everything worked together like a well oiled machine.
- https://youtu.be/cjriSNgFHsM?t=350
Here they play an mp3 and a video that continue to render while you move the windows around, on a 133mhz machine without it even putting up a sweat. Clearly that's nothing today but that was unheard of at the time.
Beyond that it had amazing features you still don't see on operating systems today like the file system being an actual queryable database. Common metadata like ID3 tags from MP3's were entered into this and queryable.
The standard email client stored emails as individual files and just queried the file system. I believe the address book did the same for people.
The tabs of the individual windows stack together across apps! There were just so many little wonderful fit-and-finish things like that you don't get these days.
- https://www.haiku-os.org/docs/userguide/en/GUI.html#stack-ti...
I feel like most desktop OS's strive for parity with eachother. BeOS was trying to be better.
Windows 2000, yes.
Amazing OS, insanely fast, and lightweight. With only a handful of background running processes and a couple dozen services it was possible to know exactly what was running on your computer at any time.
On at least one occasion I was able to detect malware on my machine by noticing unexpected background network traffic via the light on my network hub blinking when it shouldn't have been.
Windows XP will go down in history as the OS that an entire generation is nostalgic for, but Windows 2000 was its fiddly, hard to setup, but rock solid once running, older brother.
What kind of difficulties?
It was on AMD systems. :-D
And getting gaming to work was a separate challenge.
It wasn't terrible, but it did require knowledge of what chipset your motherboard was running and you had to know that certain magic patches were needed to the OS.
Absolutely, i love W2k. No bling-bling no bloat, the last lean and honest windows....serenity-os devs think the same it looks ;)
I used w2k until windowsXPsp2 was released, XP was a least for me bloody unstable before sp2.
That's golden. Would deserve a blogpost on its own.
If you weren't actively loading a webpage or playing a game, there wouldn't be any network traffic.
This was back before the days of auto updates or telemetry!
So basically if I was doing something locally, and I saw the lights blink on my hub, and my (tiny!) process list didn't have any obvious suspects, I knew something was up.
Malware wasn't nearly as well hidden back then, so uncovering it wasn't all that hard.
> Malware wasn't nearly as well hidden back then, so uncovering it wasn't all that hard.
Yeah catpicture.jpg.exe was definitely easier to identify than modern viruses are.
-- posted from netsurf on 9front.
Why would I do this? It is more than nostalgia or fun, although that is part of it. I believe that diversity is vital to keeping the technological landscape healthy. Most people are happy to go with the status quo, fewer are willing to work to make positive changes and even less are willing to fund their efforts.
Will something come of Haiku because of this? Directly or indirectly, yes. Someone will be working on a vision that may differ from that of Apple/Microsoft/linux, etc. This will have a ripple effect as either Haiku succeeds, or those who work on it take their viewpoints and knowledge to other companies and efforts. Either way, this sort of diversity helps out in keeping the technological ecosystem from becoming more and more of a monoculture.
My interest in FreeBSD began about 12 years ago, when a friend of mine told me about the BSD operating systems and he said that the one he was using was very secure (OpenBSD) and that it had good documentation and that these BSD operating systems (FreeBSD, OpenBSD, and others) are each developed "as a whole", as opposed to Linux which I had recently begun seriously using but which is developed as a bunch of separate much more loosely-tied projects and then bundled together in the form of various distros.
I installed FreeBSD and liked it a lot. I just felt at home, somehow. And for a good while I was running FreeBSD also on my desktop and my laptop.
Fast-forward to present day. On my laptop I run macOS. On my servers I run FreeBSD. My MacBook Pro M1 laptop is my daily driver. I have a desktop that I run Linux on but I rarely boot it because mostly I have no reason to. Almost everything I do I can do with my MacBook Pro M1 and with my servers that run FreeBSD.
But even though I like FreeBSD so much, I feel and fear that Linux keeps advancing in much bigger strides than FreeBSD, because of the many many more people contributing to Linux compared to how many people are developing FreeBSD.
I really want to get into eBPF on Linux soon and explore that. It seems like it could help me gain both insights into the execution of the software that I develop, even more than is possible with DTrace maybe. And I want to explore what can be done on Linux using kTLS and eBPF together. And I am curious to find out more about things like what they talk about at https://pchaigno.github.io/ebpf/2020/11/04/hxdp-efficient-so...
And all of those things have me thinking a lot about whether the positives of using FreeBSD (jails, OpenZFS in base, a system that is developed as a whole, etc) actually justify staying with FreeBSD. Or if I should ditch FreeBSD and focus my energy on Linux instead of on FreeBSD.
well this would be one motivation really.
personally, i like the ability to break with conventions and do things differently. especially on the user interface level.
like hurd or plan 9, haiku has some unique aspects.
now i just need to find a machine to actually run it.
Since then I've kept an eye on it and plan on going back to it with some more powerful and better supported hardware to really get to play around with stuff like the interesting filesystem and get some things I use all the time ported over. Would love to switch over from mainly using Linux to having a Linux home server, and using Haiku as a daily driver and sshing in for Linuxy stuff.
> The system is not all that well optimized, uses a 15 year old compiler which does not uses any modern CPU features, and by default, the kernel is built in debug mode which makes it much slower than it could be.
> How do other operating systems still manage to feel slower? I have no idea.
(Those kernel debug options are no joke, they are a massive slowdown. The ones for the TCP stack alone take network throughput down to 1/5 of what it is without it; the ones for SMP, the virtual memory manager, lock facilities, etc. combined make the system visibly less snappy. We disable these on beta builds, but they are enabled on nightlies, and back in 2011 they were on by default.)
[1]: https://discuss.haiku-os.org/t/why-is-haiku-so-fast/6317
Also, many modern distros and desktop environments are bloated: you either have a choice between a full-featured, resource-hungry desktop (Gnome/KDE) or an efficient minimalist window manager (i3/sway). I believe the same applies to different parts/layers of the system.
Haiku doesn't have the same feature set (yet) as full-featured modern desktops and doesn't have to deal with dozens of compatibility layers, so maybe that's also part of the reason it fares better.
existing contributor
who will work full time
Any mention of Haiku
Creates a cascade
hmmmmmmmmmmmmmm
is haiku a two or three syllable word? In Japanese it would be three syllables ha-i-ku and it is also a Japanese concept, so I figure it would matter
existing contributor
who will work full time
One question I've always had about Haiku is how faithful it is to the underlying implementation and architecture of BeOS, not so much its resultant API compatibility? Because it was the guts of BeOS which seemed to make it so special, not its component interfaces.
I thought that came from Palm OS, and I wasn't aware of any link to BeOS.
Most of the code wasn't open sourced, but it leaked and yellowTab released a version using the actual BeOS source code. The entire system compressed down to 90MB and you could ftp all.tgz and build the whole system.
Looking at the architecture critically, is it a good idea to have a C++ API and have to deal with fragile base classes? I remember stuffing classes full of placeholders to create space in the vtable for future changes.
BeOS was well documented and the BeBook is still nice to read. Looking at the Haiku source, I see that they have all the kits, with the same API. When I look at the source for Looper, the code is a shadowy reflection of the "real" source. It may even be much better!
If Haiku feels good to use and program, then I think it is faithful to BeOS. Cyril was constantly improving the kernel, Dominic was constantly improving the filesytem, Benoit was constantly improving the window server, Pavel was constantly improving Tracker, etc. There wasn't really a dogma about what BeOS should be except fast, responsive, forward looking and fun for users and developers.
Some of our community members who remember BeOS well and still boot it up from time to time remark that Haiku feels like a much more polished and stable system than BeOS at this point, even when using classic applications.
It looks like there's an OpenJDK port - that'd open up a lot of possibilities[0].
Nothing prohibits porting Chromium or Firefox, they are just huge projects with a massive surface area. (Even WebKit, smaller than both of those, is larger than all of Haiku itself.) So we have put our time into WebKit instead.
There is Qt Creator already in the package repositories, and I think someone got Code::Blocks to at least build if not start. I've heard NetBeans used to work, though I'm not sure it still does. Eclipse would require much more work.
Not sure how good that experience is but it's very impressive nonetheless.
that pretty much proves the point that the webbrowser is an operating system in itself.
let's hope that webkit can keep up with web standards development. and that maybe someday someone will port firefox to haiku.
As for an IDE...
Fun fact: Despite the name, “Haiku, Inc.” is actually a 501(c)(3) non-profit (^_^)
I wonder if it would be simpler building on top of one of the linux or BSD kernels (I've heard NetBSD's is pretty cool)
i can't imagine how that would work. while i can imagine that a company may not instruct people to work for them for free, wouldn't that also prevent me from making code freely available that a company then just uses?
it makes no sense. if that were the case companies would not be able to use any software that is available for free.
there can't be many countries where that is actually the case.
---
Haiku has hired
existing contributor
to join us full time
---
Heat waves, drawing to a close
On the horizon, a form appears
haikuOS.employees++;
I think though that it would be more accurate to say that there are now two haiku formats - the Japanese one, and the English one which was originally a misunderstanding of the Japanese one but which now has a life of its own, for better or for worse.
That said, I'm still surprised Haiku, the company, does not seem to employ any haiku.