1. 28
  1.  

  2. 10

    Kind of amazing the progress this project is making. On the flip side I can’t help but wonder what is attracting people to it over Haiku. They’re both BSD licensed, both use C++. Both hark back to a similar era. Both GUI first. Haiku is arguably a lot more functional and further along though.

    Some ideas that come to mind:

    • I wouldn’t be surprised if at least part of it was that Serenity is on GitHub and uses a GitHub pull request workflow.
    • Serenity looks easy to build and supports a wide range of build hosts (Linux, macOS, FreeBSD, OpenBSD).
    • Being newer it’s easier for someone to just show up with an idea, implement it and have it accepted.
    • Perhaps it appeals to a broader audience since it’s Windows inspired vs. BeOS.
    1. 9

      Once upon a time in the early/mid ’00s, there were a plethora of operating system projects that existed “just for the heck of it”, and most of them are essentially dead at this point for one reason or another. Haiku had a purpose that most of them did not: an unrealized vision of a better future for computing.

      To me, at least, SerenityOS feels like a callback to those days when developers got together and learned something about computers and operating systems by building one. Which is ultimately pretty cool; but it’s a pipe dream to think you will be able to use it as your primary OS anytime soon. Most of the people working on SerenityOS seem to be doing it for the fun of it, which is great! Obviously Haiku has a ton of “solved problems” that SerenityOS, being newer, does not, and you can learn a ton by working on it.

      But in terms of being a realistic possibility for a “daily driver”? Yeah, SerenityOS is years and years away from that. And at least when this project first made the rounds, I know some of the developers at least then said that they wanted to get there. That’s not a sentiment uncommon to new OS developers, but, well, Haiku has been around for two decades, and once made progress as rapidly and as impressively as SerenityOS, but as you can see, our install-base is still rather small, and people still have lists of things that we would need to do in order for them to make the jump.

      It’s also worth noting here that SerenityOS has (or had?) a policy of not using any imported code whatsoever, even for things like ACPI, where Linux, *BSD, Haiku, etc. all use Intel’s ACPICA (and even the OSDev wiki recommends hobbyist OS developers do, too, simply because of how absurdly complicated ACPI is), or the libc, or the coreutils, or the shell, or any number of other things which Haiku et al. reuse from one another. That means that SerenityOS has a task ahead of it that is unbelievably massive even in comparison to Haiku, which uses the GNU coreutils, bash, musl’s libm, etc. and does not completely and totally re-create every wheel. Again, doing those things is an excellent way to learn; but it’s more or less incompatible with using the system as an actual daily driver.

      1. 3

        Linux, *BSD, Haiku, etc. all use Intel’s ACPICA

        Except OpenBSD. They have to deal with some fun bugs due to their own implementation sometimes :)

        1. 1

          Inspired by this thread, I spent some time on the SerenityOS issue tracker. I am interested in a well-designed permissively licensed OS that is not written in C. I was not convinced that SerenityOS is going to be that system.

          It currently targets x86-32 and has a single userspace ABI. Adding good layering for these with a clean set of abstractions is really hard to get right and causes massive pain later on if you don’t. Their approach is to just incrementally refactor to get x86-64 support, without thinking about a final design. Once you have two architectures supported, cleaning up the abstractions is hard because your testing burden is high. Once you have three, your mistakes are basically baked in forever.

          The BSD family was quite lucky here, because the VAX port required them to think hard about these abstractions, get them wrong, and then copy the ones that Mach built based on their experience. Linux was less fortunate and so ended up with a split between architecture-specific and architecture-agnostic code that is quite painful in some places (for example, system call numbers are architecture specific, managing signal delivery for the product of architecture and ABI is quite ugly).

        2. 11

          I’ve played a lot with Serenity and made a couple of modest contributions. I have also played about with Haiku a little bit. For me, I was more attracted to the former, for a few reasons. Firstly, the GUI is much nicer - it’s almost exactly what I want in a classic style desktop environment, and makes me feel a little nostalgic for the Windows interfaces on which I learnt to use computers. For the most part I find Haiku’s interface to be a little ugly - although I do love the boot screen! Secondly, Serenity is a clean sheet design - built in a thoroughly modern way simply in accordance with the intuition of Andreas and the other developers, rather than in an attempt to cling on to compatability with an obscure OS that was dead before I was even old enough to use a computer. Thirdly - and this is mostly as a consequence of Andreas’ videos - Serenity felt to me like a system that was alive and blossoming, that I could jump into and make a difference to, while Haiku seemed to me an anachronism kept alive by a cabal of mysterious maintainers who refuse to let go of the past. I’m sure that’s not the case, and that Haiku’s community is welcoming and forward thinking, but it’s hard to be inspired into lending a hand by simply seeing a new set of patch notes every two years.

          TL;DR - Haiku is clinging to the past while Serenity is taking interfaces of the past back to the future.

          1. 13

            For the most part I find Haiku’s interface to be a little ugly

            If you are speaking purely of the “look and feel” of Haiku, why not just write a Windows “Decorator” (window border styling) and “Control Look” (control theming)? You could get almost a pixel-perfect recreation of the Serenity GUI on Haiku. We personally just like the way Haiku looks now, but anyone can customize it!

            rather than in an attempt to cling on to compatability with an obscure OS that was dead before I was even old enough to use a computer.

            I think you will find that we are more modern-minded than even Linux in terms of how the system is put together. Maybe not quite as modern-minded as Serenity, but the Be origins have not constrained us. The package filesystem is proof enough of that, as are the use of C++ in the kernel and quite a lot of other things under the hood.

            while Haiku seemed to me an anachronism kept alive by a cabal of mysterious maintainers who refuse to let go of the past

            Dude, when I started contributing to Haiku the better part of a decade ago, I was in high school. We’re not all (or even at this point, mostly) “old geezers”. We have forums, an IRC channel, mailing lists, a bug tracker, and it is pretty easy to see who we are; and our technical decisions are pretty good proof that we absolutely know how to let go of the past.

            but it’s hard to be inspired into lending a hand by simply seeing a new set of patch notes every two years.

            We’ve been publishing monthly Activity Reports on the blog detailing what’s been going on in the Haikusphere for multiple years now, and new software (and screenshots) appear in the Depot on a weekly basis.

            1. 4

              If you are speaking purely of the “look and feel” of Haiku…

              My impressions are naturally, if unfairly, formed off what the system looks like in its default state, not what could be achieved with a weekend’s worth of programming.

              I think you will find that we are more modern-minded than even Linux…

              Fair enough. I always got the sense skimming through the project that it was a bit tied down by its adherence to BeOS but I happy to be wrong on this point.

              We’re not all (or even at this point, mostly) “old geezers”.

              Again, I don’t doubt you’re right, but the impression I got of the community was of a very old project, and the assumption I made from that was that it would be quite set in its ways. Perhaps I am completely wrong about that.

              We’ve been publishing monthly Activity Reports on the blog

              Like most people, the honest truth is that with the exception of a few blogs that I go out of my way to check, I only really see what bubbles up on HN, lobsters, Reddit, /g/, etc. Hence my exposure to Haiku is pretty limited.

              I really don’t want my original post to be interpreted as ‘this is why Serenity is better than Haiku’. My intention was to rather explain ‘this is why a bored student browsing the techy parts of the internet might be more drawn to Serenity than to Haiku’. I have a great deal of respect for your project and your comments in this thread have inspired me to perhaps check in on it with a little more regularity :-)

              1. 2

                The website indeed could use a refresh with more information as to what we do and what we are about, sure. But, I mean, if you go look at Fedora or Ubuntu or something, are their websites really that much more engaging as to getting involved with the project? Not really. So it’s a hard balance to find for us; because on one hand we are initially if not ultimately targeting the same market the “Linux Desktop” is, while we have a fraction of both the volunteers or the financial support they do.

                1. 1

                  It’s perhaps natural, then, that hobbyists with a bit of time on their hands are more likely to feel able to get stuck in with a GitHub project which features, front-and-centre, a YouTube channel of a guy making near-daily coding logs, rather than something like Haiku, which - to its credit - looks far more like a professional endeavour than an amateur collective’s labour-of-love.

                  1. 1

                    Well, the “ports” portion of the Haiku project lives on GitHub, and there is a GitHub mirror of the main repository with a very friendly README.

                    Yes, we are more focused on actually getting development done in what precious little spare time we have than making YouTube video logs about it. But Kyle Ambroff-Kao, one of the newer names (he was granted commit access last month :) has started doing development screencasts, so maybe some of us do have the time…

            2. 7

              I’m not sure I completely agree with some of your characterisation of Haiku but I get your point.

              and makes me feel a little nostalgic for the Windows interfaces on which I learnt to use computers. For the most part I find Haiku’s interface to be a little ugly

              It’s funny, I grew up on Mac OS and consider classic Windows supremely ugly. To me Haiku (or Platinum Mac OS) is my ideal classic vibe. So, for me the appearance of SerenityOS puts me off a little, I guess in the same way Haiku might for you. :)

              Anyway, thanks for responding. It seems my intuition might be on the right track. I’m interested to watch how the project progresses.

              1. 3

                From its home page, SerenityOS’s key selling point seems to be it’s “a love letter to ’90s user interfaces” … something I don’t grok at all, the 90s being that awkward age of “wow, if we color the top and left edge darker and the bottom and right lighter. It looks like it’s inset!!” in GUI design. But at least they’re not aping Motif…

                And this matters, because all those sharp contrasts and hard lines create a ton of visual noise that makes it hard to parse the interface and focus on the important stuff. I freely admit today’s GUIs have their problems and silly fads, but they’re so much better.

                Behind the GUI, I don’t see the website describing any new and different architecture that would entice me to work on this, or pick it for a desktop over a stable Linus or BSD distro.

                tl;dr: You damn kids and your “retro” stuff! You don’t know how much better you have it now than in the old days. Now turn off that “vaporwave” and get off my lawn!

                1. 2

                  I am completely willing to put my hands up in the air and say that my impressions of Haiku are just that - my impressions - formed from the collective sum of the few times I’ve seen the project pop up on aggregator sites and an hour and a half playing with an ISO in qemu. That is to say, I am in no way qualified to make reasonable assertions about the Haiku project, either technically or with regards to its community. At the end of the day, Serenity just captured my imagination more than Haiku, and that’s what ultimately matters when it comes to deciding whose codebase to spend your afternoon trawling through.

            3. 4

              very nice to see Gemini protocol built right into SerenityOS web browser.

              Totally ‘out of the blue question’… support for mobile/tablets UIs, CPU ISAs – is that something that the author(s) are thinking about?

              1. 1

                Is anyone trying to port rust on Serenity? Maybe we can assemble a working group. I can’t wait to port my projects on Serenity

                1. 2

                  It’s something I’ve thought about. I don’t need another side project right now but I would be interested to see if someone made progress on this.

                  1. 1

                    I don’t need another side project right now

                    Me too, but I probably could do stuff as part of a group. Perhaps there can be an easy but hacky enough solution in cross-compilation, how is Serenity’s libc POSIX compliance?

                    1. 2

                      I think it’s pretty compliant. For reference, here are the patches that had to be made to get a version of Python sorta-working:

                      https://github.com/SerenityOS/serenity/tree/master/Ports/python-3.6/patches