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.
I must thank Pawel for removing the eight(8) CPU limit as it was the major reason to convince me to buy a I7-4770 machine.
While it presently gives me eight virtual CPUs, it will be up-gradable to Intel’s new CPU projected to be available this fall that gives 16 virtual CPUs.
Again thanks.
Not without upgrading your motherboard it won’t. The 8-core Haswell variant that’s coming out later this year will use a new socket that’s not compatible with any existing chipsets. If you bought a current 8-series (Z87, H87, H81, etc.) motherboard, you won’t even be able to upgrade to Broadwell CPUs that will arrive later this year.
What! I was told it would use the same socket.
Are you sure?
So they worked 13 years on an OS that’s still far from being production quality, it looks about as dated as Windows 2000 and doesn’t run any of the software people need. Will people be intrigued? No.
I worked on commercial software for BeOS (Easybase port for beos appliances and Opera 4) in the olden days, but I have to admit I don’t understand the approach of this project.
They should have used Linux (or one of the BSD’s if the license is a problem) as the kernel with a BeOS emulation layer. Think about all the driver they’d get for free, along with a rock solid foundation. The rationale they give for going ahead with their own kernel is just weird. There is no reason why the various API kits wouldn’t run on top of Linux.
Here’s their own reasoning for not picking Linux as the kernel:
“Linux-based distributions stack up software — the Linux kernel, the X Window System, and various DEs with disparate toolkits such as GTK+ and Qt — that do not necessarily share the same guidelines and/or goals”
Wait. What? How is that even relevant, since Haiku would obviously create its Haiku specific composer/window manager stack (as they do now), and expose that as the API we’re used to in the Haiku world.
I don’t get it.
Edited 2014-05-11 10:49 UTC
That much was clear when you suggested they use the Linux kernel.
Can you elaborate? I also suggested one of the BSD’s. Anything but writing a kernel and a billion drivers from scratch, since that’s just too much work in the modern world…
I honestly want a BeOS clone to succeed, but these days, building an OS from scratch is just not possible. The hobbyist OS days are numbered.
With a Linux or *BSD foundation, you could even have BeOS on phones quite easily. Their code base is solidly unportable and insecure as is, unfortunately (for instance, the network stack lacks a number of basic security measures.)
Users really really don’t care if the kernel is this or that. How many android users know they’re using Linux? This is a silly NIH thing that will prevent Haiku from going anywhere.
Edited 2014-05-11 11:07 UTC
BeOS wasn’t a UNIX system.
Putting a UNIX like kernel de-virtuallizes the whole experience.
Ok, so I doubt that anyone has time to give you a course on OS development & the various tradeoffs involved. If you were around for the BeOS days & you really kept track of Be, then you’d know that they shopped around for a kernel & couldn’t find one that suited their needs. The kernel that Haiku uses was created by an ex Be, Inc. developer -they merely joined him, helped him work on it, then forked it when it was feasible. You should look it up, it’s called NewOS. In all of these years, the original BeOS kernel & Travis’ kernel are the only ones that do exactly what they do (that I know of).
Unless you have expansive experience in this, which you seem not to, then this statement is unqualified. Perhaps it’s not possible for YOU, but that doesn’t map to other people. After all, they already have developed an OS that works. What they’re doing now is improving it.
No, you’d have Linux or BSD on the phone & that’s already the status quo.
Well, those users can go use Linux. Haiku is for BeOS users. If you want another Unix, then go use a Unix. If you want to use BeOS or Haiku, then use that. Putting horns on a pig doesn’t change it into a bull.
Since you apparently did not read the interview, in one part the developer talks about using an alternative kernel, such as Linux. Apparently it is something the Haiku developers have actively discussed doing.
Apparently *you* didn’t read the interview. All he said was:
“Actually I was wondering if it would be better if Haiku have used Linux […]”
That’s not active disussion in the Haiku project, although it should be.
http://arstechnica.com/information-technology/2011/06/hands-on-runn…
If this is so simple and cool, why nobody did so far? For example, a Linux evangelist.
They’re not using the Linux kernel because that doesn’t interest them. What I’ve never understood is the goal of binary compatibility with BeOS 5.0, a platform without a single piece of software I or anyone else would want to use today, or even five years ago. It’s added several years and a number of bugs and unneeded restrictions to Haiku (like the 8 CPU limit mentioned above).
It’s also been the reason TuneTracker updated their commercial radio management software to run on Haiku. The one thing that bugs the hell out of me is that there’s no 3D acceleration – at all – available on Haiku even though they use Mesa.
Currently, their 3D is software only. They’re working on porting Gallium3D, but that’s not easy work. Give them time. Besides, there’re so much other work that have higher priorities than 3D.
I’d say proper GPU support is pretty darn important for a multimedia-focused OS, especially given that even simple playback of high resolution video requires GPU assistance these days.
Thus proving that you never used Haiku-OS lately.
I watch HD movies all the time with it.
What Haiku-OS lacks is the 3D drivers for gaming, but for media play-back Haiku-OS works fine.
I’ve been using Haiku off and on since 2010. HD video playback has been consistently laggy and with screen tearing for me.
“Proper GPU support” is vague & highly subjective. I said that they were working on 3D support. No one said that you wouldn’t watch videos on Haiku. Hell, Be were constantly working on OpenGL drivers & never released those drivers for R5, but almost everyone knows that BeOS could simultaneously play multiple videos without skipping frames. So, what exactly makes you think that Haiku can’t play videos, since they don’t have the Gallium3d drivers up & running???
I figure Thom could save people a lot of time by adding a “I don’t get it” button that people can just click on to post their identical replies in every single alternative OS thread ever and then you can go back to doing whatever it is that’s so desperately important to the world, unlike those suckers who are obviously just wasting their time not doing whatever it is you’re doing, which is obviously far more important and useful.
Edited 2014-05-11 11:41 UTC
Your attitude seems to be “Since I don’t understand it, it must not be!”. I hate to be the one to tell you this, but not everything is about you. The fact that they are building what they want is irrelevant to your personal wants and needs. If you don’t like it, go elsewhere and use something else, or build your own. That’s the beauty of open source.
Meanwhile, the rest of us will continue to look forward to any progress the Haiku team makes.
I’m merely questioning the technical choices, not the project itself.
Get a clue.
It would be fine if that was all you were doing, but your attitude and language indicate otherwise. It’s fine to not like a project, but don’t lob petty insults like a child and expect a warm, friendly response, especially on a site with deep roots in BeOS history.
You’ve been on this site all of a week and your comment history is already full of bitterness, accusations, and tantrums. Grow up.
Okay, Morgan, now you’re just attacking me personally, while I have just expressed my technical concerns.
Your comment history (and the fact that you check other people’s comment history) indicate that you need to get a life. Really.
Except I’m not attacking you at all, I’m making observations. As I said, you’ve been here a week and all you’ve done is try to cause trouble, and not just in this thread. You accused someone you don’t even know of lying about working on a project years ago. Besides the fact that you would have no idea whether that’s true, it’s a douchey thing to do and makes whatever point you were trying to get across irrelevant.
You’re continuing that pattern here, and again contributing nothing to the overall discussion. That’s not a great way to introduce yourself to a community of your peers. I’m done with you. Have a nice day.
Thanks god, your input wasn’t exactly relevant or interesting.
They wanted a microkernel following BeOS’ philosophy. What I didn’t understand is why they didn’t use one of the modern ones that existed back then like Fiasco or Pistachio (they are even written in C++ just as they like).
Well, they forked NewOS, which isn’t even a microkernel. They call it a hybrid kernel, although I can’t see why. It’s basically just a modular monolith.
If I remember correctly NewOS was created by one of Haiku’s contributors with Haiku in mind.
Edited 2014-05-11 13:09 UTC
You remember wrong, NewOS was a kernel created as a hobby project: http://newos.org/
… by Travis Geiselbrecht who worked at Be Inc.
http://tkgeisel.com/
That’s incorrect. NewOS was created by Travis Geiselbrecht, who was a developer at Be, Inc. once upon a time. He’d already started NewOS before OpenBeOS (Haiku) started.
I have not looked in a while but they used to address that suggestion pretty directly. They are not just trying to port the API. They are trying to design a highly multi-threaded multi-media desktop OS. This is a different set of design goals from UNIX (and therefore Linux and the BSDs).
It is certainly taking them a while but basing it off Linux or BSD would likely not get them to THEIR finish line any faster. Linux is a beast. Experimenting with it or moving it in a different direction is not necessarily an easy task.
What has really slowed them down is the desire to be ABI compatible with BeOS.
Anyway, I really like having Haiku out there. Each time I have tried it, I have been impressed with the speed and fluidity even though you really cannot do much with it yet.
But Linux is already an multi-threaded multi-media desktop OS, and surely they could tweak the scheduler easily to fit their particular media oriented workload (such schedulers already exist…)
Don’t make me laugh. Linux is a clusterf**k as a multi-media OS. Even with a real time kernel the latency is sky high compared to BeOS. Keep Linux on servers where it does best and leave multi-media to a OS that’s geared for it.
Yet amusingly, with the proper scheduler the latency beats that of Haiku easily.
Get a job.
Could you give numbers/examples or are you just trolling?
tacks posted….
I’m guessing you’ve never heard of BlueEyedOS? Don’t feel too bad, not many others have either considering their last update was in 2003. See: http://www.blueeyedos.com/
There’s also ZevenOS, which intends to recreate the look and feel but without the APIS. See: http://www.zevenos.de/
Maybe it’s just not as easy as you seem to think to build a new operating system?
–bornagainpenguin
You’re mocking the wrong guy since I have actually build an hobbyist operating system and I know how much work it is. That’s why I advocate using a well-known kernel.
The fact that BlueEyedOS failed doesn’t say anything about the merit of building on top of Linux. It’s just show how blue eyed (stupid) they were not to make it work.
The Haiku guys would have succeeded, and quickly (the SkyOS guy managed to refactor his UI to run on top of Linux with little effort, having a Haiku-like design to start off with.)
Edited 2014-05-11 20:23 UTC
Ah yes, SkyOS. Now there’s a pinnacle of OS design. Say who’d porting SkyOS to Linux work out for Robert? Ah, it died soon after you say? Funny.
I wrote a compatibility layer that implemented Syllable ABI’s on top of Linux, too. Even got the UI to run (on top of SDL). That didn’t make it a good idea.
Every time I see someone say “Why not use Linux” I read “I lack any imagination and have a weird fanboy worship of Linus Torvalds, so obviously Linux is perfect for every need ever invented and I’ll hear no criticism of it and you’re an idiot if you think otherwise” and then I ignore you and move on.
I won’t call SkyOS thriving, but I will point out there was a release back in August (IIRC). So it isn’t exactly dead yet either.
However to succeed Haiku is going to have to do a lot better than SkyOS, or MorphOS for that matter (from what I can tell they have less than 2,000 users).
Elsewhere I gave my thoughts on what it would take for Haiku to be a success, but upon reflection I think all the criteria I gave can be thought of in a different way: Haiku needs to be popular enough to support a community of developers actively creating Haiku specific software. Not just little utilities and dev tools, but the kind of apps that allow someone dedicated to use Haiku as their primary operating system.
You can’t tell volunteers what to do, they’ll do what interests them. And apparently, there are more people that are interested working from a BeOs Compatible kernel, than a linux one. The community has spoken, regardless of what common sense would dictate.
In any case, given the amount of growth and change in the Linux desktop stack over the last ten years, I’m not sure it would have been that much easier. The Xorg changes, the toolkits and now the coming wayland.
In the long run, the kernel isn’t even the majority of the work. Still, there’s a reason that Be, Inc. didn’t use a Unix or Plan9 or L4 or any other kernel. They evaluated plenty of kernels & had the money to by commercial kernels -none were suitable. So, what makes you think that one would be suitable?
Ok, then why don’t YOU make it work?
Making your OS run on top of a different kernel isn’t the same as making your OS run well on a different kernel. Switching to the Linux kernel didn’t save SkyOS. I seem to recall that he evaluated Linux & BSD. So, look where that got SkyOS…
BlueEyedOS was a project bound to fail from the start: they were quite fuzzy in their explanation of the license that they were going to use..
renox commented…
As I seem to recall that didn’t seem to bother the yellowTab\magnussoft Zeta crowd all that much for quite a long period of time. It was amazing how far those guys got with their shenanigans, even to the point of selling Zeta on German RTL TV shopping channel! Not bad for an operating system whose licensing was so incredibly fuzzy it was like they didn’t actually have a right to distribute or sell it at all…
Heh.
–bornagainpenguin
AFAIK the starting point of Haiku was BeOS. They replaced it part by part to the point they had replaced everything.
That would not have worked with Linux.
NewOS was much closer to BeOS so was a better starting point.
They were also concerned with licenses. Haiku is MIT, not GPL.
Using a Linux kernel would have had advantages but they would have to had spent a lot of effort on keeping it up to date.
and Linus could have just used Minux…
But the point is it didn’t fit HIS needs (for various reasons). Not the needs of the community, or the needs of his colleagues, or the needs of random forum posters on the internet – his needs.
Same thing here – the Linux and BSD kernels don’t fit their needs. What is there to “get”?
Linus’ chose to write his own monolithic kernel (despite lots of people probably telling him he was naive and/or crazy) because of lack of options, and he thought that monolithic was the right way to do it. This was at a time when everyone in academia thought that was a dead end proposition. Ironically this is the primary reason why it ended up being successful. At least in term of the last 25 years, Linus was right and everyone else turned out to be wrong.
Maybe the Haiku team is naive and/or crazy too…
That’s Minix not Minux
Stop confusing the issue by bringing historical facts into the discussion.
“Historical facts”… “highly subjective opinion.” Same difference.
> and Linus could have just used Minux…
No, he could not have. Minix was not GPL’d, and according to Tannenbaum in his own book on Minix he actively resisted efforts/requests to make Minix a more complete operating system because he wanted it to remain an small, readable OS for aspiring OS writers (such as Linus).
Removed after reading other comments that I had duplicated in mine.
Edited 2014-05-12 12:54 UTC
That’s highly subjective.
Then, it’s good that you developed applications, rather than operating systems.
Then, they would’ve created a Linux distro or BSD OS. People would’ve spent more time trying to run Unix style programs, rather than BeOS style programs -which is NOT what they wanted.
So, people aren’t entitled to their own reasons for their own work???
You’d know how this was relevant, if you knew the intricacies of OS development & the difference between operating systems from an implementation perspective.
Undoubtedly.
Depends a lot on what you call a Linux distribution..
Something which use the Linux kernel? Then yes of course.
Traditional GNU/Linux distribution which runs Unix style programs? NO!
Reusing the Linux kernel, doesn’t mean that you have to reuse the rest: if you want you’re not even obliged to use glibc!
It’s a lot more work of course, but much less than using a kernel without drivers..
Android is a good example of a Linux distribution which is quite different from normal GNU/Linux distributions..
And even with GNU/Linux distribution, some of them are different from “just another distribution”: for packaging for example: NixOS, GoboLinux, for the GUI: Bodhi Linux..
That’s where you’re mistaken -there is no rest of it. Linux is only a kernel. The other stuff constitutes the distribution of it. The specific stuff that is usually bundled with the Linux kernel serves to put it into the Unix catagory. Were you to wrap another userland around the Linux kernel, it’d still be a Linux distro -it just wouldn’t be recognizable as a Unix clone. So, while it wouldn’t be fair to call it a Unix, it’d still be Linux.
In the whole “they should have used [insert established kernel]” debate I think it all comes down to what their priorities are. The Haiku team wanted to recreate BeOS, which for them meant a kernel as well.
I think there were good arguments for using an established microkernel and not the relatively unknown and untested NewOS (regardless of who created it; but that is all water under the bridge now.
Were it me, I would have started on top of linux so that they could focus on the APIs. Let us face it, without strong compatibility with BeOS, without something that users could use and fall in love with; it doesn’t matter how great your kernel is.
But now we are more than a decade in, memories of BeOS are fading, and they aren’t even at R1.
I think it is an important detail to remember a number of teams *DID* try that approach at the same time Haiku was being developed.
They had access to the Linux code.
They has access to Haiku’s code.
They all boasted about how fast and easy it would be to develop their versions since the Linux kernel was so powerful/complete compared to NewOS.
But they all failed, why?
An OS is more than just it’s kernel.
At least back then Linux did not have some features that BeOS/Haiku needed.
The different directory structure causes some problems in porting many programs.
Haiku still has different APIs which will cause still more problems porting GUI programs.
I bet you can compile 90+% of my CLI programs with very little change if any at all and run them on a Linux system. I doubt you could recompile a good Haiku GUI program for Linux without a major rewrite.
Haiku is not Linux and Linux is not Haiku, changing the kernel would be a major work to support BeOS/Haiku APIs yet would cause endless work if they wanted up/down stream support with the main branch. But if they forked the code they would in the long run end up with a mass of code that was not Linux and still their support. Far better to start with what they knew plus they got the licence they wanted keep.
A couple of teams tried that (there weren’t that many) but I very much doubt you can make a case that that is why they failed, but I bet I can explain why: Those other projects didn’t have the personnel and willpower needed to carry on.
Most projects fail for those reasons. Initial progress is made, then things start to get tough as the easy wins go away, and it becomes harder and harder to put in the hours.
My point is that Haiku (or any other BeOS clone) will live and die by the interest it maintains. Trying to do everything right out of the gate made their project even harder, because even if they had a perfectly compatible kernel right out of the gate they needed to clone the whole API/ABI and work on device drivers, et al.
By starting work with an established kernel (you will note I also mentioned established microkernels) they could have focused on the single most important thing for the health of the project first: compatibility. I only said that if it were me I would have used Linux, The minix 3 microkernel could arguably been a good option, not to mention any number of microkernels.
Instead it is 13+ years later, interest and memories of BeOS are waning, and they aren’t anywhere near R1. By the time they get there, will there be enough people left who care to maintain momentum?
Edited 2014-05-12 03:43 UTC
Probably not, but NIH syndrome is more powerful than getting things done..
That said, in Linux the GUI part would have been difficult to handle: X11 isn’t a good fit for BeOS and Wayland didn’t exist at the time..
No reason they had to use X11. They could have gone right to the framebuffer; or used SDL or maybe even Cairo (2003). Windowing / Graphics systems are not hard to write. Everyone and their dog wrote one back in the late 80s (and I am just as guilty as anyone else).
I am not saying it should have been just a distro, but they should have waited on the kernel until the rest was ready. Then people would have had something useable that could have been improved.
I think that criticizing people for working on something they want to is not a good choice.
People work on things because they want to. People work on these OSes because they want to learn how to program one. This is invaluable experience. Plus, it makes them happy to do so.
Just because something is not modern or cutting edge does not mean that someone is wasting their time working on it.
This is a site about Operating Systems aimed at people who love to discuss differing technologies, Taking an attitude toward someone for doing something different is contrary to that.
What people do with their time and effort is their own business, and I don’t feel anyone is entitled to rush onto a high horse in order to criticize other people’s personal choices or preferences.
However, I feel that others should be perfectly entitled to criticize the results/production derived from those efforts, from a technical context/perspective. Specially once they’re in the public domain.
Edited 2014-05-12 19:35 UTC
Which was exactly what we did not see. We saw ad hominem attacks by someone who chose to insult people.
Technical criticism is one thing, esp. in the public domain. Outright slagging someone is another.
You are going to have to point me to it, because I don’t see any ad hominem. It is possible I missed it, but as I say you are going to have to point it out.
I do see a lot of criticism, but none of it was personal (from what I can see); it was about the approach taken by Haiku.
As a side note, I have seen lots of attempts to clone existing operating systems: Windows, BeOS, VMS, OS/2, PalmOS, etc and none of them have gotten that far. Trying to maintain compatibility with an existing OS (and especially binary compatibility) is just an uphill battle.
Linux did so well because Posix is well documented, and other parties supplied the userland, windowing system, et al. AROS/MophOS is the closest to a success story I can think of.
But more power to the Haiku guys, I think they need to get to R1 this year in order to remain relevant. I would love to see them succeed, I just am not holding out a lot of hope.
What does “succeed” mean for Haiku in your eyes?
This is what it would be for me:
1) Get to 1.0 in the next 18 months
2) Have a growing base of developers and users
3) Have at least 10,000 users who use Haiku as their day to day operating system
4) Achieve binary compatibility sufficiently to run Gobe Productive without obvious issues
5) At least 10% of linux users aware of what Haiku is and how to download and install it
Personally I suspect Haiku is at its apex of interest right about now (or we are just passed it), and unless they can meet some criteria like I mentioned then they will be on a collision course toward their nadir…
I don’t mean to be confrontational, but if Ad Hominem arguments are a no no in you opinion, why are you using one yourself?
(Not that I’m agreeing or defending the poster I assume you’re referring to).
Best part of the interview:
Well, being an Amigan in the past, I really wodner, why some ppl react so negatively to just – another opinion.
You know, in the Amiga land, there was red side – AmigaOS, blue side – MorphOS and neutral side – Aros. Well, and tonnes of hatred, stupid infights, community split and slower progress …
I think that what tacks had in ming was not any ultimate statement, just an opinion, or his preferred way. He surely did not want to bash another point of view.
My perspective is, that we can’t judge the past with current metrics. Back at the time, ppl simply wanted multimedia OS with good latency. I too remember, how amigans fought choosing between Amiga kernel rewrite, BeOS kernel adaptation, QNX and Linux kernels.
It imo all depends, where you want to get, and how quickly you want to get there. If the goal was to spend xy years to mimicking BeOS kernel, then everything is OK, if ppl enjoy the project. But if the plan was to create a bridge for already available apps, and getting on the feets of new replacement OS as fast as possible, I can imagine goint the Linux kernel way as an interim solution, simply to get the job done and the replacement plan running.
But – such discussions are simply running in circles. Not only in an OS area, but in the language area too. Why another language? Well, why not? And some members of BeOS community simply showed their hostility, when one guy tried to port Rebol, LOL 🙂