Haiku is a new open-source operating system that specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn and yet very powerful.

Fundraising 2015

Goal: $35,000


The Haiku source is continually built and released for testing purposes nearly every day. You can download and install these latest snapshots to check out the latest features and bug-fixes.

Be aware that nightly images may be unstable. Additionally, some packages included with official releases need to be installed separately.

If you're OK with this, you can find further instructions at our Nightly image page.

Google Summer of Code 2008 and Haiku Code Drive harvest

News posted by axeld on Wed, 2008-10-08 09:18

We're very glad that Haiku has been part of Google's Summer of Code this year again. We were granted five student projects to improve Haiku. But since we had so many good and worthwhile project proposals, we set out to start our very own Haiku Code Drive. We asked for your help in the form of donations, and we were absolutely overwhelmed by the response we got from you, our community: we were able to sponsor 4 more student projects to work on Haiku.

Yes, of course, you know all of that already. The reason for this review is that, since both coding events are officially over by now, I wanted to give you an overview of what has happened, and how the students fared. Not all projects have been success stories, but we were lucky to have found some very talented students this year. We're glad we had you!

Google Summer of Code 2008

  • Andrej Spielmann has implemented sub-pixel antialiased rendering in the app_server. He was probably the only student that was always ahead of his schedule, and could even deliver more than originally anticipated. He also easily adapted to our coding style and produced a lot of quality code.
  • Dustin Howett intended to implement HPET support. At first, he struggled a bit with how to implement this in the best way, but eventually he found his way through this complex topic. However, he wasn't able to finish his project in time, and intends to keep working on it in the weeks to come.
  • Zhao Shuai implemented swap file support in the kernel that has recently been enabled. While it would be fair to say that the FreeBSD implementation and his mentor, Ingo Weinhold, helped him out a lot, he was very receptive of critics and always willing to try to understand how the kernel internals are working. In the beginning, he also wrote some overview documents about our virtual memory subsystem.
  • Alexandru Roman intended to add Zeroconf support to Haiku. However, he took a summer semester at school, and was surprised about the time commitment it asked for. He contacted his mentor, Ryan Leavengood, early on, and we're sad that he didn't manage to work on his project at all.
  • Adrien Lemaire was supposed to write a CIFS client for Haiku to let it access Windows shares. However, he was a bit overstrained with the project despite his nice application. He also didn't find the time to dig into the project, and unfortunately didn't deliver anything.

Haiku Code Drive 2008

  • Salvatore Benedetto intended to identify and fix most, if not all, of the remaining BFS bugs by first porting bonnie++ to Haiku. The plan was to add the missing functionality to Haiku that bonnie++ needs to run, in this case POSIX XSI semaphores. He experimented a lot with BFS, and we were able to fix several bugs together. He also implemented not only XSI semaphores, but also XSI message queues, and intends to complete his work by eventually adding support for XSI shared memory. During his project, he also ported the UDF file system to Haiku's current file system API. We're looking forward to see more from him :-)
  • Jovan Ivankovic was supposed to port CUPS, or parts of CUPS and integrate them with the Haiku printing layer. Unfortunately, he was not able to work much on it due to his health situation. We wish him the best!
  • Yin Qiu wanted to complete our ICMP handling in the networking stack. While he had a hard time with our coding style, he found his way through the stack, and came up with a good looking solution for error propagation and handling. Unfortunately it doesn't work yet okay, and is therefore not part of our repository yet, but he's continuing to work on his patch set. And we're patiently waiting for it :-)
  • JiSheng Zhang has written a DV media node based on the Firewire stack he ported as part of last year's Google Summer of Code. As far as I understand, he couldn't really test his work yet, though, as his Firewire hardware got lost at Olympia. In any case, he intends to stay with us to improve his work in the future.

So while we had our failures, overall we're very happy with our students. We hope to refine our selection process for next year, if we're lucky enough to be part of the Summer of Code in 2009.

And since our own Haiku Code Drive was so successful this year (even if we saved a bit of the money), we plan to continue this project in the future as well. On behalf of Haiku, let me thank you, the donors, again for making this possible.

I would also like to thank our mentors that have devoted much time for their students, and guided them through their projects.

BeGeistert 019 - Alphaville registration open

News posted by stippi on Sun, 2008-09-14 12:43

After the date has been known for some time, Charlie Clark in the name of BeFAN and the BeGeistert orga team is now officially inviting to BeGeistert 019 from October 11. - 12. 2008 in the youth hostel Düsseldorf. Reservations are now open and should be made as soon as possible. To learn more about BeGeistert, see the BeGeistert website. It includes more info on directions, car pooling and costs. BeGeistert has a long history as one of the most important, if not the most important BeOS developer and fan summit. In recent years, the focus has shifted more and more towards Haiku. Pretty much every European Haiku developer is usually attending. BeGeistert is also a platform for presenting independent BeOS and Haiku software projects to interested users or potential new developers for your team. BeGeistert is a great opportunity for getting to know in person a lot of people one only knows via IRC or e-mail.

The coding sprint, which has been so successful before the last BeGeistert in January, will this time be held the week after BeGeistert. If you are a developer and would like to attend at the sprint, please contact Stephan Aßmus, who is responsible for the planning. The stay at the youth hostel during the coding sprint includes three meals (35 EUR/night). The hostel is providing a small conference room during the days where we can setup our gear and have some fun coding.

Haiku Grows Swap Support

News posted by bonefish on Fri, 2008-08-29 15:34

Thanks to Google Summer of Code student Zhao Shuai successfully finishing his project Haiku does now feature support for swapping. As of revision 27233 it is enabled by default, using a swap file twice the size of the accessible RAM. The swap file size can be changed (or swap support disabled) via the VirtualMemory preferences.

Swap support finally allows building Haiku in Haiku on a box with less than about 800 MB RAM, as long as as the swap file is large enough. I tested this on a Core 2 Duo 2.2 GHz with 256 MB RAM (artificially limited) and a 1.5 GB swap file. Building a standard Haiku image with two jam jobs (jam -j2) took about 34 minutes. This isn't particularly fast, but Haiku is not well optimized yet.

Haiku's swap implementation was heavily inspired by that of FreeBSD. At the moment it is not as sophisticated, but Zhao intends to borrow more of FreeBSD's optimizations.

[HCD]: status report

Blog post by emitrax on Sat, 2008-08-23 08:51

It's been a bit since my last status update, so I guess it is time for another one.

First of all, I'd like to inform you that I received the first half HCD payment. Since it's a (fantastic) community based effort project, I thought you wanted to know where your donations ended up.

As of commit r27159 you should be able to read data from an UDF partition. The module has not yet been added back to the image, as I'd like to do some more tests, but as far as I can tell, the port of UDF to the new FS API is close to complete, and you can start testing by adding the module to the image and trying using DVD formatted with UDF, or iso image made with mkisofs. Feedbacks are welcome.

As for the other part of my HCD, in case you missed, bonnie++ was added in r26920 and it is available for the braves one, for testing purposes.

In r27052 I also fixed another BFS deadlock that would lock the file system when more then one thread was writing in the same directory. See this for more info.

Ok, going to back to UDF now. ;-)

LinuxWorld 2008 as I saw it

Blog post by koki on Thu, 2008-08-14 00:14

Haiku made its "big stage" debut at LinuxWorld for the first time this year. If you follow the feeds on our website, you have probably already read the nice reports that Urias posted on the website during and after the show (day 0, day 1, day 2 and day 3). I thought I would give me own personal recount of the event, in order to perhaps bring a little bit of a different perspective, and hopefully also complement what Urias has already written about the show.

I had never been to LinuxWorld before, but I knew from reading about the conference that it was bigger to other open sources conferences we have exhibited in the past. I also had an idea of the demographics of the event, as I had done a little bit of reasearch before proposing our attendance last year. Average attendance was said to be more than 10,000 people, and by the size of the exhibit floor at the Moscone Convention Center in San Francisco and the duration of the show (three full days), this seemed just about right; this was obviously a very compelling number from the point of view of getting exposure for Haiku.

Haiku Down Under 2008

Blog post by Sikosis on Tue, 2008-08-12 02:29

In May this year, I wrote to the Haiku Mailing List, proposing that the Australian Haiku Users and Developers hook up with an existing Open Source event to generate some Haiku interest in our Country. It was decided that the cost of heading to a central event, would be too costly and as we are spread out all over Australia, I then started thinking about plans of doing something online - a Virtual Conference, so to speak.

As Haiku's Anniversary is coming up on the 18th August -- I figured, we'd try and have an annual event centred around this date. Due to the short notice, I thought it would be best to keep it as simple as possible, and as this is the first event, it can then be used to generate more interest and discussions around Haiku.

BeOS Joystick Framework

Article contributed by ModeenF on Mon, 2008-08-11 13:53

This article are more of a compliment to ITO Takayuki’s “BeOS Joystick Driver ” so reading ITO’s article before this one are advisable.

I’m not a article writing person (not even in Swedish) but as I’m the 3:d that tries to implement the Joysticks framework in Haiku I think that it would be good to have something for the 4:th person to read if I drop this :)

When I started to look over the Joystick framework I thought that this would not be that hard, boy was I fooled :) , lol I don’t even know how to talk to hardware. Anyway after some testing (trial and error style) I think I have found some additional information about the Joystick framework, but first I would like to describe how I think the frame work works.

The BJoystick class in libdevice.so talks to a joystick published at dev/joystick/”portname”/”joystick name” this way both the generic gameport and ITO’s usb_joy works as they publish as separate devices.
usb_joy = dev/joysticks/usb/0 (for the first)
usb_joy = dev/joysticks/usb/1 (Second and so on)
gameport = dev/joysticks/gameport/201
emuxkigameport = dev/joysticks/ emuxkigameport /et18

emuxkigameport are a driver that was donated to Haiku that make’s gamport on a SB Live and Audigy soundcard work. I tried to add it to emuxki but then the sound was interfered when I moved the joystick. This driver uses the generic gameport.

So how does this work? You could say we have two ways of talking to Joystick’s, through usb_joy and emuxkigameport. First you must have a copy of a joystick description file in config/settings/joystick/”portname”/”joystick name”. I think that this need to be a copy of a description file as the Joystick Preference app does changes to the file so a link are not to recommend.

First usb_joy, when BJoystick sends a ioct (I haven’t tested but I think I have figured that one out right?) to the driver the usb_joy does everything by itself, collecting usb information and reading joystick description file from /settings/joystick/”portname”/”joystick name”.

How does the emuxkigameport work then? BJoystick sends the same information as with usb_joy but in this case the emuxkigameport forwared the ioct to a driver called generic gameport located under drivers/generic this one loads the file in config/settings/joystick/”portname”/”joystick name” with this file it knows what module to load and loads this module but it must be a joystick description file in this location or you will only be allowed to used the joystick in standard mode (same if the module don’t exist to your joystick).

Using BeOS Joystick Framework in Haiku. Yes this works but not usb_joy as it crashes the system.
You need to copy libdevice.so, Joystick preference app, etc/joysticks, media/joy, generic/gamport and Haiku’s emuxkigameport. I have only tested stickit and BeOS R5 joystick preference and not any games.

So what now? I will continue but perhaps focus on the usb_joy driver and figure out what’s wrong with this driver. I would like to have some help to determent if it would be a good idée to use modules in a USB drive to handle the difference in different joystick’s or does those difference not exist in a USB world?

If you like to read more about Joysticks in BeOS here are some links.

Syndicate content