A very interesting discussion is taking place in the Haiku mailing list right now. A developer has created a working prototype implementation of the BeOS API layer on top of the Linux kernel, and he is wondering if the project is worth pursuing. He's got the App, Interface and Networking Kits in good shape within a few months' work.
While there are some minor downsides to having the kits on top of Linux (or one of the BSDs), the upsides include all the drivers in the world (well, the gpu driver situation could be a tad better), a rock solid kernel that works on all kinds of devices (who says BeOS can't run on a phone, mine can), and a working BeOS clone with comparatively little effort (as a musical engineer, my biggest worry was sound system latencies, but it turns out many Linux schedulers can easily be tuned to handle the loads I expect in a BeOS system.)
I think the Haiku project made a monumental mistake in not using an existing kernel - it's simply no longer practical for a small project to keep up with the hardware evolution, handling security requirements and so on. Sad but true, and it was sad but true back in 2001.
A very interesting and in-depth discussion follows. Both 'sides' make a lot of compelling arguments, and it gives a lot of insight into decisions that went into the Haiku project, both past and present. For once, I have no clear opinion on this matter; both sides have merit, and it in the end comes down to what the actual developers want to work on (hint: it's not Linux).
Still, the developer in question will be putting up a repository of his Linux work, so we'll get to see what it's like.
My area of interest is broadly defined kernel development. In the spring of 2013 I implemented ASLR and DEP which caused minor confusion due to "activation" of bugs that have been hidden but I think that overall it worked out well for Haiku. Later I tinkered a bit with RTM (Restricted Transactional Memory), new extension introduced in Haswells but the code will need a lot of work before it will become usable. From October to mid-January, I was employed by Haiku, Inc. to work on the scheduler and adaptating Haiku for work on systems with more than one logical processor. Among other things, I got rid of the 8 processors limit, which was quite firmly rooted in the ABI inherited from BeOS.
Great interview with a low-level Haiku developer.
PulkoMandy of the Haiku operating systems reported that he has successfully added HTML5 video support to WebPositive (the default Haiku web browser) as part of his ongoing contract work. The report on the Haiku website gives some more details about the work that went into getting HTML5 video to work.
In a blog post from Haiku developer Pawel Dziepak he describes the work he has been doing on improving processor support. Most notably removing the 8 processor limit. From the blog post:
The main scheduler logic has been completed and now I am concentrating mainly on bug fixes, adjusting tunables and some minor improvements. I also removed gSchedulerLock, a spinlock I mentioned in my last post, and replaced it with more fine grained locking. An new interfaces for cpufreq and cpuidle modules has been created together with a cpufreq module for Intel Sandy Bridge or newer cores and cpuidle module for all processors that support C-states and invariant TSC. Furthermore, IRQs (including MSI) can be now directed to an arbitrary logical processor. Implementation of inter-processor interrupts has been improved so that it avoids acquiring any lock if it is not necessary and supports multicast interrupts. And, last but not least, 8 processor limit has been removed.
I'm proud to announce that, at last, the package management branch has been merged into the main development line, aka master branch. The builds and nightly images from hrev46113 on will include the new feature.
I only notice now that I should probably have given Matt a heads-up upfront, since due to the somewhat changed build process the build bot will need an update. So there might be a bit of a delay until the first Haiku PM nightly images will hit the website. Sorry for that.
Onwards to beta 1.
Although I have been a lazy blogger lately we haven't been lazy working on our remaining tasks at all. So, unsurprisingly, since my previous post we have reached and passed a few nice milestones. The latest one is that we're finally able to build the gcc2/gcc4 hybrid Haiku images again, including all the software needed for the official release.
While that in itself isn't a particularly impressive feat - after all we were already able to build the complete gcc 2 part before - the interesting aspect is how we are doing it.
Interesting progress for Haiku.