BeOS and Haiku discussion

I am a former BeOS user and am now increasingly using Haiku.I am following Genode development closely, although I am not ready to switch yet.

In particular the Haiku on Genode work instigated by @ttcoder is intriguing. The opportunity in due course to use my Haiku apps exactly as I am used to doing on a new system. This will increase the market for Haiku apps and therefore the likelihood more will be written - or indeed comprehensively adapted to Haiku from other operating systems. The main benefits of Haiku apps over, say, linux is their more consistent user experience.

I hope this thread becomes a space for those of us with a fondness for Haiku and BeOS to introduce ourselves, discuss Haiku matters relevant to Genode, and build bridges between these operating systems.

Good to see you join this forum

It wouldnā€™t be appropriate for me to ā€œadvertiseā€ my work here, this is a forum about Genode.

With that said, I can at least support something you obliquely refer to and add emphasis to it, namely, the fondness for the Be/Hai API (and the end-user-facing consequences of it) : itā€™s a huge part of what I love about it, I canā€™t imagine coding ā€˜personnalā€™ apps (apps that I do for fun, not for money) using any other API. Even with its imperfections and all. So itā€™s a big reason for starting that project in the first place. To be fair though, Iā€™m lagging on what I would call ā€œthe other halfā€ of the look and feel : things like app_server behavior when manipulating windows, for instance. Iā€™m nowhere near working on that ā€“ itā€™s far down my ToDo list.

I suspect if we keep the discussion more or less circumscribed in this one thread it will be welcome, Norman and his team have always been super supportive of projects aiming to create Genode-based OSes, including my own. And I know he hoped to build exactly that, ā€œbridgesā€, and was surprised that the intent to build them was one-sided only. So in a word, welcome. (and if you have questions, ask away!)

In contrary! Iā€™m pretty sure that I am not the only one who would very much appreciate reading about your work in this forum. If this wouldnā€™t be appropriate, I wonder what is? Please donā€™t hold yourself back.

3 Likes

Very well then, since it is with your blessing it will be a pleasure ^^
So Iā€™ll ā€œpingā€ this thread whenever a significant milestone is reached in h/o/g with a short description (ā€œwhat does that buy me ?ā€) and appropriate crediting (ā€œwhat benefits did implementing this on Genode bring, compared to other OSes ?ā€). That latter aspect is one I often feel like editorializing about, but commit messages are not a good place for that --now Iā€™ve found the right format to do so.
And if there are questions posed about said milestones, even better. That kind of ā€œpro bonoā€ project works on motivation, and motivation does not grow on trees, it comes from curious users :sunglasses:

3 Likes

Be-on-Genode latest: just pushed my last commit for Genode 24.05 ; itā€™s mainly clean-up stuff, except for adding Normanā€™s build of bubble-universe to GeDepot. So instead of hilighting that commit, Iā€™ll wait and post the next one instead, which will upgrade the system to Genode 24.08 ā€“ then Iā€™ll post my plans for the next development cycle.

3 Likes

I like that Genode runs on L4 microkernels and Linux drivers. Are there other advantages over Haiku?

Thank you for asking!

For the sake of objectivity I ought to go beyond the question and list both the list of ā€˜prosā€™ of running Be stuff on Genode, but also the (way longer) list of shortcomings of that project in its current state, i.e. all the ā€˜Beā€™ stuff that I did not bring over to Genode yetā€¦
But since you asked about the former :slight_smile: , hereā€™s a few thoughts in no particular order:

  • Falkon: I was never able to run a web browser to my satisfaction in Haiku ever since I got on board with Alpha1, even with Haikuā€™s build of Falkon. By contrast, Falkon on Genode does most of what I want. Heck, it even shows Telegram pages better than FireFox on Linux for some reason I canā€™t fathom (my T410 gets horribly hot and laggy in Debian, whereas Falkon on Genode does not break a sweat). It has come to the point where I installed the package on all 4 comptuers here (even the family one) so that I can do my daily web browsing anywhere at home. I kinda hoped for that when I started using Genode, now itā€™s a reality.
  • VirtualBox: unless Iā€™m mistaken, Haiku does not have a port of VirtualBox yet, though I seem to recall itā€™s in the works. In Genode VB is a ā€œdaily stapleā€. Iā€™m not a VM guy so canā€™t speak more about it (I plan to give it a try though)
  • Now we come to the reason I moved to Genode in the first place : stability. Some of our stations started crashing once a day right out of the gate, due to their usage patterns (and we had to refund them of course, until we decided to throw the towel), with KDLs. Guess what: there is no such thing as a ā€œKDLā€ with Genode. The difference in stability is very very very obvious when looking at the infamous ā€œsea of redā€ graph (and yes, all we ever hear is ā€œyour KDL is not reproducible hereā€, so we lost hope they would be resolved).
  • Next, probably equally as important : file system stability ; I lost count of the number of files we lost (or even whole filesystems, needing to reformat) with our stations over the years, not counting C++ files lost on my own development machines. With Genode I have 100% peace of mind, thatā€™s priceless. Donā€™t get me wrong, Iā€™m grateful for the work Axel did over the years, but I simply canā€™t use the Haiku BFS implementation in production for our stations, just the idea of going back that way gives me cold sweats.
  • security: thatā€™s not my paygrade, but I understand Genode has lots of potential for being a super secure OS ā€“ and, unlike say, OpenBSD, it reaches that goal by design, rather than by applying hard work/sweat to an unsecure foundation. Someone more knowledgeable might express this better. Our stations tend(ed) to get ā€œprobedā€ by script kiddies a lot, which would sometimes seemingly trigger KDLs (!!), so itā€™s more important than it would appear at first.
  • from a developer point of view, I understand Haikuā€™s code base better than other competitors (say, e.g. Linux) obviously, but I also understand Genodeā€™s codebase better than Haikuā€™s. Plus the team is always world-class professional and responsive to my requests for help. So much lower chance of behing ā€œhung out to dryā€ and S.O.L if I run intro trouble with a customer.
  • one could add lots of ā€œsmallā€ features that add up, like the ability to S3 suspend the system. Of all the OSes we use at home, all can do it (windoze, linux, Genode etc) but Haiku cannot.

EDIT: another item in the ā€œsmall things that add upā€ category : Genodeā€™s nitpicker has full-fledged composition and transparency, which means itā€™s easy to create round-shaped ā€œpie menuā€ BWindows, unlike in Be/Haiku where this requires crazy hacks.

Anyway all that is nice but still, as things currently stand, the above is going to be of interest to a narrow segment of people. It would take tons more development efforts for this project to 1) fully use all of Genodeā€™s features and 2) bring over all Haiku features on this side of the divide. At the snail pace Iā€™m going, it will occur when the sun goes super-nova :slight_smile:

EDIT: To bounce on the ā€œkernel-landā€ debate, since I hear distant rumbles about it elsewhere:

I know itā€™s not easy, explaining the benefits of a micro-kernel to people who are used to the miseries of multi-thousands (millions ?) of lines of code residing in the fragile kernel space, and think of all the grief as ā€œthe cost of doing OS businessā€, or ā€œas certain as taxes and deathā€, or as ā€œcompletely inevitableā€ā€¦ Itā€™s like trying to describe vision, to someone who was born blind. If all they ever knew in their life was Amiga-like ā€œall non-user components live in the same memory spaceā€, then they canā€™t imagine there could be an alternative. Itā€™s the same as everything else in life, really : people donā€™t know what they donā€™t knowā€¦ And often donā€™t want to know.

I think it bears repeating, though, that there is no-one to ā€œput in the spotlightā€ and no-one to ā€œblameā€ for the original design of Be and Haiku. It made sense back then to take shortcuts to fit an Operating System in the then-limited hardware of the day. I remember BeOS R3 ran with 32 MB of RAM if you really had to, but the Be engineers had managed that only with some special kernel tricks and memory layout. So using a micro-kernel was probably beyond their concern. There were talks about it in comp.sys.be.misc and BeDevTalk, but no-one was really convinced it would be a realistic idea back then. There werenā€™t a lot of ā€œprior artā€ in that department. So we canā€™t blame Haiku for using the big-kernel model. If it had to be done all over again (with the hardware that existed), it would have to be done the same way again. Thatā€™s just what made sense back then.
In a way, the situation reminds me of my transition from AmigaOS to BeOS (on the impulse of Dave Haynie especially, who saw it as a true ā€˜successorā€™). I migrated to BeOS, still cherishing the memories I had of my Amiga. I had to give up all my ā€œmuscle memoryā€, but it was worth it, going from a unified memory space (with all its ā€œGuru Mediationsā€) to one where, at least, the user-space was separated from the kernel-space (i.e. useland apps could not crash the kernel). Weā€™re in a much better situation here, though : I donā€™t have to ā€œgive upā€ much or anything, I can take Haiku with me on the Genode side. Still again cherishing all the good memories Iā€™ve had with kernel_intel (both the Be and Haiku one), but continue with the same API and (once thatā€™s implemented) user experience, and above all, benefit from true component separation, whereby no component can buffer-overflow into another component. That I now regard as the pre-history of computer science (a cherished pre-history, of course, rich in memories).

3 Likes

Iā€™ve finally ā€˜rebasedā€™ my project from Genode 24.05 to Genode 24.08ā€¦ and Iā€™ve made sure it can be built and run on Debian Linux. For example hereā€™s what shows up if you invoke ā€œjam -q -j4 hog-demos.emu6ā€:

That release/commit still refers to old package versions of Nano3D, Falkon etc, so they wonā€™t load until SculptOS 24.10 is released and I update the package IDs. If this stuff was in production, I would add a disclaimer like ā€œplease keep using the previous version for another month or soā€ ^^ .

Talking about packagesā€¦ In theory I could have my own depot (not sure where I would host it though, would need a server somewhere, together with FTP access to it to upload the files)ā€¦ The idea would be, not so much about duplicating official packages, but more about extending the set of packages to those that exist in genode-world but do not seem to be published, and more. If this was a multi-person project, I would task someone else with building said packages, but of course itā€™s just me ^^.

Anyway Iā€™ve updated the build instructions and added some Linux-tailored ones, it should be easy to build h/o/g on a Linux (Debian etc) host now : https://chiselapp.com/user/ttcoder/repository/genode-haiku/wiki?name=Setup:Main


Alright now. Iā€™m going on a ā€˜sabbaticalā€™ of sorts for the next few weeks. A friend offered me to make a few bucks doing wordpress sites. Beats zero-earnings by a long shot! I will still be monitoring discourse though. Maybe when I return Iā€™ll add a little poll asking ā€œwhat should I focus on, next?ā€. All you followers have fun (all three of you :wink: ).

3 Likes

Very impressive work! Thanks for sharing the updates and developer info!

Enjoy your brief ā€œchange of sceneryā€. The three of us will be counting the daysā€¦ :wink:

1 Like

Good work, enjoy your sabbatical.