10 ms·
The Dawn of Haiku OS
- appleaintbad 14y ago"What really sets Haiku apart, though, is its efficiency and speed. On my three-year-old desktop computer, Haiku boots up from a cold start in 10 to 15 seconds, and when running it uses only about 170 megabytes of RAM." Sounds good to me, but 10-15 seconds running on what specs? Also, looking at the video, it seems like this OS is stuck in the 1990s. That is fine as long as it runs a standards compliant browser, but it just seems lacking based on this video- has this changed?: http://www.youtube.com/watch?v=ixvppiSB7hc http://www.youtube.com/watch?v=ixvppiSB7hc I do like that it is just the basics though.
- agildehaus 14y agoHaiku has a native browser called WebPositive, using Webkit, but it's probably a year or more out of date. I understand that there are efforts underway to sync the browser with a more recent Webkit and get features like HTML5 audio/video in. It'd be wonderful if someone more familiar with the issue would comment on the browser's status.
- mcantelon 14y agoYeah, just tried it. Web Positive has an HTML5 score of ~150/500 whereas Chrome on my Mac has a score of 400/500. As more and more applications are available as browser apps, if Haiku updates the browser it'll be a win. Haiku seems really snappy and responsive.
- mtts 14y agoBeOS booted up in 10 to 15 seconds on a fairly run of the mill Celeron 333 back in the day :-)
- GuiA 14y ago>it seems like this OS is stuck in the 1990s Sounds like you're saying this solely based on what the GUI looks like. Yes, it's extremely dated and doesn't have all the fancy glitz of modern desktop environments, but the underlying system itself is quite modern.
- thristian 14y agoI like the idea of Haiku OS, but from what I've heard, for binary-compatibility reasons (kernel drivers? All applications? I'm not sure) it still ships with GCC 2.95. Requiring a compiler over a decade old for a modern OS doesn't seem like a good long-term strategy.
- zred 14y agoHaiku now uses a hybrid system so that it can support GCC 2 applications while using GCC 4. http://www.haiku-os.org/news/2008-05-18/steady_progress_towards_alpha_1 http://www.haiku-os.org/news/2008-05-18/steady_progress_towa...
- DHowett 14y agoHaiku can be built with/for GCC 2 or GCC 4 and ship with libraries for the other. Some time after R1, the gcc2-hybrid releases will probably be flipped to gcc4-hybrid, and the gcc2 libs kept around for backwards-compatibility purposes only. The current setup is really only used to the benefit of applications - the kernel interface is not ABI- or API-compatible, for the most part, with that of BeOS R5.
- cageface 14y agoIIRC one of the reasons Apple passed on BeOS was that the lack of a stable C++ ABI made app dependencies on the OS classes very fragile. For example, API classes had to be padded out with dummy members to make room for later non-breaking additions to apps. Is this still a problem? Isn't this why just about every other OS exposes it's lowest level APIs as C apis?
- pmjordan 14y agoIf the Apple story is indeed true, there's a certain irony to it: device drivers in the OS X/iOS kernel are written against a C++ API called I/O Kit. For forward-compatibility with newer kernel versions, all the public classes contain a significant number of dummy virtual functions, and many also have a pointer member variable called "reserved" so they can later add new fields if they need to without changing the class size. E.g.: http://www.opensource.apple.com/source/xnu/xnu-1699.24.23/iokit/IOKit/IOMemoryDescriptor.h http://www.opensource.apple.com/source/xnu/xnu-1699.24.23/io... - note the ExpansionData * reserved; member variable and the block of private: OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 0); #ifdef __LP64__ OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 1); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 2); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 3); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 4); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 5); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 6); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 7); #else /* !__LP64__ */ OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 1); OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 2); OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 3); OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 4); OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 5); OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 6); OSMetaClassDeclareReservedUsed(IOMemoryDescriptor, 7); #endif /* !__LP64__ */ OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 8); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 9); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 10); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 11); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 12); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 13); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 14); OSMetaClassDeclareReservedUnused(IOMemoryDescriptor, 15); dummy methods. There is also a system in place for the linker to patch the vtables of dynamically loaded classes (i.e. third-party drivers). They've also built an Objective-C-like Class/metaclass system in C++ via macros for I/O Kit, for some very basic reflection (mainly to keep track of whether instances of a class exist, and if not, unloading the kernel module).
- grandpoobah 14y agoAt some stage they must have asked themselves, with all the effort they had gone through, couldn't we just make a serious offer to buy the BeOS IP?
- wmf 14y agoPalm/HP probably wouldn't have sold it for strategic reasons or something.
- bane 14y agoit's apparently owned by http://www.access-company.com/home.html http://www.access-company.com/home.html
- zred 14y agoPalm bought BeOS for $11M (and those assets were later transfered to PalmSource which became Access). In 2001 (when BeOS was bought), it might have made a bit of sense. Be was pretty modern then - competing against Windows XP and either the Classic Mac OS which it was far better than or OS X which was very new and so incredibly slow it was nearly unusable - I don't miss those days being a Mac user. However, in 2001 it had just been bought. Palm wasn't going to turn around and say "we spent $11M on this, you guys want it on the cheap?" Today, Haiku has probably surpassed BeOS in any relevant way. The issue is that the world has moved on. Imagine a really well-made car/engine from 1990 (and imagine that it was like code which doesn't corrode and such). It can still be a great car today in many respects - maybe its performance characteristics still make it a lot nicer than many modern cars. However, you then start thinking about how it doesn't have anti-lock brakes, traction control, electronic slip protection, air bags, a CD player, iPod hookup, bluetooth; plus, it has a an analog carphone installed in the center. That's a bit like was BeOS would be like today. For example, Haiku just got preliminary WPA support in October. Frankly, if an operating system doesn't have wonderful WiFi support, it's missing a key practical piece for me. Likewise, other operating systems have put considerable energy into compositing window managers to provide things people take for granted today like shadows, transparency, minimization effects, etc. Plus, and this is pure speculation since I haven't used Haiku recently enough to really comment, I'm guessing the web browser ports aren't quite as mature/good as they are for other systems that have a lot more users/developers. So, licensing the BeOS IP isn't the issue. It would basically be buying an operating system that hasn't been updated since Windows XP came out. Sure, Windows XP isn't terrible today, but part of that is because Microsoft continued to update and maintain it since its release in 2001. Even then, it seems old. If BeOS was open-sourced in 2001, it might have seen decent adoption. It had a nice GUI, was really ready for the multi-core processors to come, and it might have gotten the traction to see things like Mozilla concentrate on it as a platform. When OpenBeOS (Haiku's former name) started, I think there was a lot of hope. Of course, as they were concentrating on replicating BeOS R5, the world moved on and Apple, Microsoft, and the Linux community had an army of programmers working on advancing their systems while Haiku had a small team trying to resurrect their beloved system. BeOS was very advanced for its day and in some ways I think it's still better, but BeOS today would just be old in many practical ways even if it was awesome in many other ways.
- eslaught 14y ago"Where BeOS drove ahead of other operating systems of its time (and where Haiku is still ahead of contemporary operating systems) is that each individual application uses many threads. The core of the application itself has one thread, and each window the application creates has a thread." I might not have been around when BeOS was first created, but this is certainly not a new concept today. I don't think I can name a major OS today that doesn't support this model. Both Android and iOS are well known for this technique, but they were hardly the first to adopt it.
- mhd 14y agoHmm, good question, concurrency and UIs seem a natural fit, what was some prior art and who used it first? I can name Modula-3's Trestle and Pike's Newsqueak language/GUI from the top of my head. Didn't Xerox' Mesa use threads for this?
- wmf 14y agoBeOS's (intended) competition was MacOS 8 and Windows 95, which probably weren't that thread-savvy. In retrospect, the forced multithreading certainly improved responsiveness but also made porting software painful (since all other GUIs have a single event-loop thread).
- DHowett 14y agoiOS doesn't actually spawn a new thread for every window in an application. All of the UIKit calls are still very thread-unsafe and expect to be used only from the main thread. This doesn't really cause much of a problem, since apps are page-based: you don't need to update more than one or two windows at one time, anyway.
- chc 14y agoYeah, for anyone who doesn't believe this, do a search for _WebThreadLockFromAnyThread sometime. All those Stack Overflow questions are from people who thought it was safe to have threads anywhere near UIKit.
- wtracy 14y ago
- sslemon 14y ago"Generally, there is one thread for each application and one for the operating system’s user interface as well." I think the article writer meant "process" -- there are many threads per process, and that is present in most "contemporary operating systems". If this is their (Haiku Inc.'s) attempt at PR... they are not doing it well.
- Schweigi 14y agoThe writer meant exactly what he wrote. Thats the reason you have to delegate UI updates from worker threads to the UI thread.
- icebraining 14y agoThere can be many threads per process, but plenty of applications ("Generally") are still single-threaded or even if they aren't, they only use one for the UI.
- javert 14y ago"Linux, by contrast, has hundreds of APIs..." Wait, there's only one set of system calls into the kernel. What exactly are they talking about here, anyone know?
- chmike 14y agoKernel and user interfaceS
- derleth 14y agoStill doesn't quite answer the question. For example, are they counting libcurl in Linux's total? How about Gecko, WebKit, and KHTML? As it stands, the statement sounds either wrong or indicative of a completely bizarre design on the Haiku peoples' part.
- derleth 14y agoOK, here's more context: "Linux, by contrast, has hundreds of APIs and about as many user interfaces, so you can’t just switch seamlessly from one version of Linux to another. The version you use can greatly alter the appearance of your computer screen, the way programs boot and execute, and various other things, all of which make it quite difficult to develop software that consistently runs well on all Linux systems." That's a mix of true and false statements. The false is that UIs necessarily change by distro: Different distros pick different default UIs, but all of them can run all the same window managers and desktop environments. My telling you I'm currently running Ubuntu tells you nothing about how my screen currently looks. Also, switching from one distro to another is hardly a difficult process; switching from one computer to another is more annoying. It's true to some extent in that some distros ship with modified kernels, but that usually isn't a problem for anyone: The changes distros make tend to be invisible to most applications, which sit directly on higher-level APIs anyway. Finally, implying having fewer APIs is a good thing is disingenuous: An API is a tool and, therefore, a way to organize thought; having fewer APIs implies artificial restrictions on thought.
- kisom 14y agoBack when I wanted to get involved (I had a lot more free time), I saw it as an opportunity to have a graphically friendly operating system á la OS X, but actually completely open source.
- dbaupp 14y ago> Linux, for instance, is based around a core—called a kernel—that was originally designed for use in servers and only later modified for desktop systems As far as I understand the history of Linux, this is just plain not true: Linux was originally a toy project with little focus on either desktop or server systems. Am I missing something?
- baddox 14y agoI'm not sure what Linus' personal intentions were when he first started it, but perhaps the article is talking about the fact that Unix was originally developed for mainframes.
- rwmj 14y agoUnix was originally developed on what were called minicomputers[1]. These were a distinct class from mainframes, which have always run a whole separate class of proprietary OSes such as IBM's MVS. Of course nowadays Linux runs pretty well on IBM's mainframes. [1] https://en.wikipedia.org/wiki/Minicomputer https://en.wikipedia.org/wiki/Minicomputer
- rbanffy 14y agoAnd its first incarnation ran on a PDP-8. I think my analog watch has more computing power than that ;-)
- mtts 14y agoI think what this is referring to is that Unix is not especially designed to give priority to desktop processes. BeOS was.
- rbanffy 14y agoIndeed, that's completely untrue. What BeOS did was to make the front-end as multithreaded as possible and as high-priority as possible. Which is reasonable for a desktop single-user OS, but completely unacceptable for a multi-user server OS.
- niels 14y agoI remember trying BeOS back in the days. It had a nifty feature where you could download an executable and install directly from inside windows, and then boot up in BeOS afterwards. I used to hang out at OSNews where OpenBeOS was heavily promoted and discussed when they started the project. Sure is a long time ago.
- mahmud 14y agoUbuntu has that today, it's called Wubi. http://www.ubuntu.com/download/desktop/windows-installer http://www.ubuntu.com/download/desktop/windows-installer
- pazimzadeh 14y agoThe problem with open-source OS's is that they can't take advantage of things like attractive fonts for the user interface. There has got to be a better open-source font than what Haiku is currently using (http://www.haiku-os.org/docs/userguide/en/deskbar.html http://www.haiku-os.org/docs/userguide/en/deskbar.html).
- timc3 14y agoI don't think it's so much the font as the font rendering. Not sure because I need to get a Haiku system up and running, but Windows, OSX and now Linux have spent a lot of time getting the rendering working with tricks like clear fix. Interestingly much higher resolution displays will probably help to offset the need for rendering tricks
- AlexFromBelgium 14y ago"The problem with open-source OS's is that they can't take advantage of things like attractive fonts..." My thoughts while reading this: haha good one, yeah make fun of the non-open source stuff... oh wait, this guy is serious
- pazimzadeh 14y agoI'm not making fun, and I don't dislike open-source software. The typeface is ugly.
- rbanffy 14y agoSo, it's not like they can't take advantage as much as most of its developers don't care about type.
- DHowett 14y agoExcept that in this case they do, and have had numerous discussions about default fonts and wanting to not step on patent issues over things like ClearType (for RGB subpixel rendering).
- beosrocks 14y agodr_dank's comment on Slashdot ( http://slashdot.org/comments.pl?sid=66224&cid=6095472 http://slashdot.org/comments.pl?sid=66224&cid=6095472 ) pretty much sums up its awesomeness: BeOS was demonstrated to me during my senior year of college. The guy giving the talk played upwards of two dozen mp3s, a dozen or so movie trailers, the GL teapot thing, etc. simultanously. None of the apps skipped a beat. Then, he pulled out the showstopper. He yanked the plug on the box. Within 20 seconds or so of restarting, the machine was chugging away with all of its media files in the place they were when they were halted, as if nothing had happened. If you've never played with BeOS on an old Pentium II, it's hard to imagine the kind of performance it was able to squeeze out of that hardware. Here's a rough idea: http://www.youtube.com/watch?v=BsVydyC8ZGQ#t=17m36s http://www.youtube.com/watch?v=BsVydyC8ZGQ#t=17m36s
- falling 14y agoand now that Lion reimplemented the feature people are hating it.
- nkoren 14y agoI'd be more forgiving of Lion if it could play even one movie on my Macbook pro without occasionally going into frame-dropping VM-swapping. There's no question that my hand-built BeOS box, 15 years ago, had a far snappier userland experience.
- batista 14y ago>I'd be more forgiving of Lion if it could play even one movie on my Macbook pro without occasionally going into frame-dropping VM-swapping. Try my MacBook Pro then, I play movies all the time on it with no problem of frame-dropping or swapping. And it's a 2007 model.
- nkoren 14y agoWell, that's weird. Mine's a 2009 model and I sorely regret installing Lion on it. The thing absolutely crawls.
- timc3 14y agoI am really happy that there is a project like this. more choice in operating systems can only be a good thing. Well done to all involved.
- nitinmartolia 14y agoJust started downloading Haiku ,looks cool to me.
- rbanffy 14y agoWe have machines scattered throughout the office for meetings (mostly Jira or other web applications). One of those has Haiku running and people seem to like it just fine. I do find, however, the ergonomics of the window manager to be atrocious. The little tabs, while faithful and part of the visual identity of BeOS, are, perhaps, the worst idea since the invention of overlapping windows. I'd suggest focusing on the 80's icon style and 45° perspective as visual identify and ditch the title tabs.
- tqh 14y agoThe stack and tile functions might make you reconsider: http://www.youtube.com/watch?v=4Y-6YmGd30A http://www.youtube.com/watch?v=4Y-6YmGd30A
- mesec 14y agoAmazing stuff, thanks for the link!
- rbanffy 14y agoCool, but I still think tabs should be as wide as the window when not stacked. Small tabs only make hitting them harder.
- drivebyacct2 14y agoProtip (sorry for using the term), stop using the titlebar to move Windows. I feel physically encumbered when using Windows or OS X because I can't Alt+Drag windows around. It will make you so much faster because you just hold Alt and click and drag. No more searching for that tiny little microscopic bit of window to drag. (For example, Chrome on OS X has almost NO hit space to drag the window). I guess this post is sorta useless if you don't use Linux, but take it for what it's worth I guess.
- ldng 14y agoCould someone knowledgeable comment on SSD support ? How does Haiku behave on SSD ?
- brackishlake 14y ago"Haiku is probably the best positioned to challenge the mainstream operating systems like Microsoft Windows and Mac OS." This is an absurd statement. Stop wasting time solving problems that don't exist for 98% of the market. "More choice" is not a better than if the choices suck. "Within 20 seconds or so of restarting, the machine was chugging away with all of its media files in the place they were when they were halted, as if nothing had happened." This was really cool in the early days of BeOS. But that was more than a decade ago. People of earth: there is a talent crisis right now. The world needs great developers to build awesome apps for a whole new class of machines. If you feel an urge to "start from scratch" — help rebuild everything for mobile. It's a big job, there are too many projects and not enough developers, and you'll be contributing to a seismic shift in computing. Stop solving problems that don't exist for most people. Build apps that people will use. Do big things that address 98% of users. These guys clearly have dev chops that I admire, so don't waste them on a project like this.
- neckpunch 14y agoWhat makes you so angry about people making things? Would you be happier with another fart app?
- SkyMarshal 14y ago> If you feel an urge to "start from scratch" — help rebuild everything for mobile. Given that mobile hardware is about where desktop hardware was when BeOS was invented, I wonder if some company could use it as a new smartphone OS. There's an unfinished ARM port in progress but would probably need commercial support to complete. The thing about innovation is, it's not always possible to predict what will be valuable or not. Not many people would have predicted Linux back in Linus's early days, for example.
- rbanffy 14y agoYou know Palm (or was it Access?) bought Be (and BeOS) for reasons then (and, to be fair, now too) unfathomable. Now they can say "That's what we intended all along" ;-)
- nsomething 14y agoI was an occasional user of BeOS 4 and 5. Got the free upgrade to 5 in the mail. It's anachronistic I know, but I think the biggest issue with the OS was timing. If the FOSS movement had as much commercial maturity as today, I think the story of BeOS would be way different. It was pretty well placed at the time in terms of offering a solid media experience coupled with a POSIX compliant environment. I'm pretty sure it would be used like OS X is today by many devs, but without the hardware lock-in. It was super fun to use BeOS, I just didn't have a workflow that matched it at the time.
- crusso 14y agoI LOVED BeOS back in the R3-R5 days. I switched over to it completely for a time and started writing software for it. Work carried me in a different direction, and my hobbyist enthusiasm lost steam as I saw that Be was going nowhere corporate-wise. Once Apple decided to go with NeXT instead of BeOS as the basis for its new OS, that was all she wrote. I was disappointed with the technology decision by Apple, but that was way offset by getting Jobs back into the company... and we all saw how well that turned out. Anyhow, the C++ API of BeOS was amazing. OSX/Objective-C still don't give you that OO access to the OS feel that BeOS had. My one major gripe with their approach was in the way that they managed run-time binding -- it was very brittle from release to release of the OS. As a developer, you had to ship separate binaries for each OS release you wanted to support. Nasty. I'd love to see Haiku take off and become a viable platform. If for no other reason, just to have a reference version of how things CAN BE DONE. That cheerleading aside, I have to say that with a fresh OS install, my OSX Lion 2009 PB performs great. Very snappy, runs cool, starts up quickly. It's only when you start installing all your apps, VMs, widgets, drivers, and misc. junk that it slows down. Would Haiku do any better if it had that rich of a software environment?