[HN Gopher] SerenityOS: Year 3 in Review
       ___________________________________________________________________
        
       SerenityOS: Year 3 in Review
        
       Author : ingve
       Score  : 207 points
       Date   : 2021-10-10 11:31 UTC (11 hours ago)
        
 (HTM) web link (serenityos.org)
 (TXT) w3m dump (serenityos.org)
        
       | tejohnso wrote:
       | Custom OS, custom GUI, custom browser, custom libraries. All from
       | scratch, c++. All working. Within a few years. Very humbling.
       | 
       | I took a few minutes to look at the included snake game because I
       | recently wrote a cross platform snake game using SFML and thought
       | I could quickly get a feel for how things were done. Simply and
       | efficiently, it turns out.
        
       | mythz wrote:
       | One of SerenityOS goals I find as its most compelling USP is that
       | it aims to be a "pure" OS free of any 3rd Party libs/binaries so
       | that everything is in the project source tree and nothing needs
       | to rely on or sync with any other upstream project, resulting in
       | anyone can always fix & test any issue or add any feature
       | immediately. A good highlight of this is in the Diablo port to
       | SerenityOS:
       | 
       | https://www.youtube.com/watch?v=ZOzZ8R4gphE
       | 
       | Whether it's missing C++ APIs, unsupported lang features, missing
       | SDL port impl, toggling kernel features - it all gets done in a
       | 1hr sit down session to produce a shiny new Diablo port.
       | 
       | It was a characteristic Andreas experienced at Apple where all
       | code and expertise for macOS was maintained in-house. This does
       | mean everything inc. the OS, Kernel & all default Apps like the
       | Browser needs to be developed from scratch for SerenityOS, but
       | its Browser is making good progress as seems the SerenityOS
       | project and development approach resonates with a lot of devs
       | where it's been able to attract a vibrant community with a number
       | of active contributors.
       | 
       | I see a number of benefits of this approach starting with
       | SerenityOS has to be one of the best code-bases to study and
       | learn about OS development where you can see how all components
       | integrate together in a consistent code-base (as well as being
       | able to follow it being developed in real-time with 100s of
       | videos on youtube.com/andreaskling), it enables cohesive behavior
       | and appearance with everything using the same singular library
       | set, it's easier to implement OS spanning features like being
       | able to capture full-system profiles in its profiler, the code-
       | base is easier to improve and refactor with full static code
       | analysis and no need to maintain legacy/frozen ABIs.
        
         | skybrian wrote:
         | That seems nice for educational purposes, but what would happen
         | once it became popular and many applications were built on
         | these API's? Then it's not a closed world where you have all
         | the source anymore. Backwards compatibility with existing apps
         | becomes a big issue.
        
           | papacho wrote:
           | That's correct however the purpose of the project is not to
           | become the next Windows or MacOS but to always be a hackable
           | operating system.
        
         | [deleted]
        
       | notorandit wrote:
       | > Can we do [a] better [OS]? can we improve security and
       | robustness? can we prevent unexpected interactions between
       | applications?
       | 
       | No, you cannot as long as you don't completely ditch all those
       | considerations that lead to the crap that pretends to be an os.
        
       | 1_player wrote:
       | I so wish this could become an operating system a dedicated
       | hacker could use full-time. I think the biggest hurdle is
       | fleshing out their web browser, which is probably the hardest
       | thing to build and maintain in this day and age.
       | 
       | But my secret second wish, is that the whole UI side of
       | SerenityOS could be ported in its entirety to Linux. Finally, for
       | the first time in decades, a pragmatic kernel with a pragmatic
       | user interface. I would happily ditch GNOME, KDE, Sway, i3,
       | Wayland, Pulseaudio, pipewire, Freetype2, Network Manager and the
       | other myriad of components of the current Linux UI stack for
       | something designed with passion and a coherent vision.
       | 
       | I am thankful SerenityOS exists and Andreas is working on it full
       | time, well done people!
        
         | yjftsjthsd-h wrote:
         | If this GUI stack were ported tok Linux, it would just be
         | another Linux DE. You want coherent, just use and stick to
         | GNOME/KDE/XFCE/whatever; if ~3 options didn't help, ~4 won't.
         | And once it's on Linux, inevitably you'll want to run Firefox
         | (GTK) or wireshark (QT) or whatever, and there goes your
         | coherence.
        
         | rvz wrote:
         | > Finally, for the first time in decades, a pragmatic kernel
         | with a pragmatic user interface. I would happily ditch GNOME,
         | KDE, Sway, i3, Wayland, Pulseaudio, pipewire, Freetype2,
         | Network Manager and the other myriad of components of the
         | current Linux UI stack for something designed with passion and
         | a coherent vision.
         | 
         | All of what you have described already existed in projects like
         | RedoxOS, Fuchsia and Haiku.
         | 
         | Maybe those projects (Including SerenityOS) have more in common
         | of being a complete and unified OS than having tons of
         | fragmented system components and projects competing against
         | each other like what you see in the linux desktop ecosystem.
        
           | Apocryphon wrote:
           | Doesn't BSD also do that better than Linux too?
           | 
           | Maybe this whole confusion stems from the Linux model
           | dominating the FOSS space when other open source OS's don't
           | conform to that approach.
        
             | still_grokking wrote:
             | For the GUI stack?
        
         | Ygg2 wrote:
         | Yeah, and why Serenity OS?
         | 
         | Why not Haiku or something else?
        
           | ObscureScience wrote:
           | I would say that the premise of those are quite different.
           | While both are hobby OSes at this point, my impression is
           | that Haiku is more of a "product" something that the
           | developers want to provide to a general public. Serenity is
           | written just to tickle to itches of the contributors,
           | accepted by the judgement of Andreas. At least from the
           | inception, I suspect that the OS was not meant to be used by
           | people who also don't want to work on the code. But ofcourse
           | motivations may change.
           | 
           | From a development perspective I think this leads to Serenity
           | building just enough of a foundation for the
           | application/feature someone want. When the ad-hoc code starts
           | to smell, clean up and abstract. Then repeat.
        
         | hyproxia wrote:
         | >I so wish this could become an operating system a dedicated
         | hacker could use full-time.
         | 
         | Which problems with existing operating systems does SerenityOS
         | solve?
        
           | hyperman1 wrote:
           | GUI wise, I'd say focus .
           | 
           | All of gnome, kde, win10 and osx give me an endless stream of
           | distractions. Lots of superficial glitter, but every few
           | minutes something minor bugs out, which is incredibly
           | distracting. Alerts for the dumbest things everywhere.
           | Nanyware. Blah blah something something experience really
           | needs looking at. Oh no updates to install before next week
           | which requires a paternalistic message, no matter if I shut
           | of the computer daily.
           | 
           | The problem isn't what to add, but what to delete. And as
           | win95 was damn usefull with 4mb of RAM, there's a lot to
           | delete.
           | 
           | I'm using KDE as least worst option.
        
             | chayleaf wrote:
             | why not just use something like i3?
        
             | nbzso wrote:
             | As a recent switcher from macOS to Linux, I find KDE
             | configurability most comfortable and focused on
             | professional UX.
             | 
             | Gnome UI looks childish and overblown to me.
             | 
             | As an UI designer I can confirm that in recent years the
             | trends to maximize engagement trough overuse of animation
             | and unusable distractions is making me mad as hell. The
             | useful and really effective design is invisible.
             | 
             | Or as the new generations of "tech founders" classify
             | polished professional UI work - it is "not exciting
             | enough". I have a different view on interfaces: Never use
             | form over function methodology, the main goal of interfaces
             | are to be useful and accessible.
        
               | zozbot234 wrote:
               | Gnome UI is perfectly fine on a touch-driven device. Less
               | so on a desktop, but since there are a number of viable
               | alternatives (MATE, Xfce) that still integrate OK with
               | Gnome components the UI itself doesn't matter all that
               | much.
        
               | nbzso wrote:
               | In my professional view touch UI and desktop UI must
               | never be interchangeable or have similarities, the
               | ergonomic interactions of using a mouse pointer are
               | vastly different from the processes when using a finger.
               | 
               | UI matters for a vast majority of users and use-cases, I
               | can live comfortably with tiling windows manager, but
               | this is not the expected default.
               | 
               | That's why I stayed on Catalina for a long time, Apple
               | has lost the focus from the past (and must reread some
               | old HIG documentation for a change). Beauty is not a
               | function of usability (example: the new Safari), the
               | process of making interfaces more "exciting" and
               | "fashionable" has his roots in marketing, not in product
               | design.
               | 
               | I have tried in recent months all forms of DE's for
               | Linux, the simplicity of Cinnamon and Mate was appealing
               | but somewhat limiting.
               | 
               | KDE is modern and extendable, there are a ton of native
               | apps and the experience of customizing the UI is more
               | coherent and logical.
               | 
               | The only gripe that I have with KDE is the built-in
               | telemetry, but luckily PureOS KDE is older
               | implementation, so for now I am ok.:)
        
               | emilsedgh wrote:
               | KDE's telemetry is opt-in. It does no telemetry by
               | default. Why is that a concern? If you don't like it,
               | don't turn it on?
        
             | anthk wrote:
             | 4? Reallistically, you needed 12-16MB of RAM.
        
               | squarefoot wrote:
               | Win95 actually run quite good with 4MB RAM. At that time
               | I was using also OS/2 Warp as multitasker for networked
               | Clipper DOS programs (two DOS windows with shared storage
               | on the same desktop emulating two networked DOS machines)
               | and OS/2 although advertised as running with 4MB RAM
               | actually struggled with that amount and needed at least
               | 8MB to be usable, while Win95 run perfectly with 4MB. In
               | the end however I had to put 8MB and use OS2 since its
               | DOS subsystem compatibility was a lot better than the
               | Win95 one, which was very prone to crashes when used to
               | develop networked Clipper software that way.
               | 
               | Edit: minor typo
        
           | no_time wrote:
           | The constant schisms in the linux desktop community mean that
           | it's in a perpetual state of various levels of broken.
           | SerenityOS is breath of fresh air if you've ever tried to put
           | a pixel on a screen without relying on an ever increasing
           | pile of abstractions.
        
             | blondin wrote:
             | hard to stay consistent and coherent as your system grows.
             | hard to control every single aspect of it.
             | 
             | SerenityOS is shining right now because there is a modicum
             | of control from a few people over many aspects of it.
             | 
             | user land in linux is the wild west.
        
       | mysterydip wrote:
       | I like that one of the news posts is on exploits that were
       | discovered. He's not trying to sweep problems under the rug.
        
         | seiferteric wrote:
         | I don't think it's at the stage yet where exploits are worried
         | about. They are even still part of the fun, there is even a
         | playlist on the youtube channel about finding, exploiting and
         | fixing them. I do thing the youtube channel is the reason this
         | project has gotten popular. It even motivated me to make two
         | kernel PR's and drop a ruby port! It was a fun experience and
         | watching some of the videos demystified the process.
        
       | buryat wrote:
       | > I started building this system after finishing a 3-month
       | rehabilitation program for drug addiction in 2018.
       | 
       | not something I expected to read, kudos on turning life around
       | and being open about it
        
         | buryat wrote:
         | i recommend watching his video, a great and humble explanation
         | from a smart person about his fight with addiction
         | https://youtu.be/j3JkNGKZtqM
        
           | buryat wrote:
           | He quit his job to focus full time on the project. First time
           | for me supporting a project on github, the author seems to be
           | a good person to support
           | https://awesomekling.github.io/I-quit-my-job-to-focus-on-
           | Ser...
        
       | arduinomancer wrote:
       | Was curious does Serenity use _any_ external libraries?
       | 
       | For example crypto, font rendering, etc
        
         | mythz wrote:
         | None in the default OS, it uses existing C++ build tools to
         | build the OS, but the OS itself (inc. Kernel, GUI & default
         | Apps) was built from scratch. Including Font Editor (https://gi
         | thub.com/SerenityOS/serenity/tree/master/Userland/...),
         | rendering and Crypto impl (https://github.com/SerenityOS/sereni
         | ty/tree/master/Userland/...).
         | 
         | It does maintain a large number of ports you can install as
         | add-ons to be able to use existing software, tools, languages &
         | games, etc in SerenityOS.
         | 
         | https://github.com/SerenityOS/serenity/tree/master/Ports
        
           | arduinomancer wrote:
           | Wow just browsing the libraries directory is impressive
           | 
           | https://github.com/SerenityOS/serenity/tree/master/Userland/.
           | ..
        
             | surajrmal wrote:
             | It looks like they default to using recursive mutexes. In
             | my experience those are a recipe for hard to debug
             | deadlocks because if you acquire multiple locks, it's hard
             | to ensure you always acquire them in the same order.
        
               | ptomato wrote:
               | there's an old trick for that that works pretty well;
               | always acquire all locks you need in alphabetical (or
               | some sorted) order
        
               | jagger27 wrote:
               | Like anything and everything in Serenity, if you think it
               | could be better, make it so.
        
       | squarefoot wrote:
       | I wonder how good it will be wrt hardware support, drivers etc.
       | It's continuously moving target: you support a sound card, a
       | printer or some SDR dongle, all fine and dandy, then two months
       | later a new piece of iron is out and it needs adjustments to the
       | drivers when not a full rewrite, all while maintaining
       | compatibility with the old peripherals. So I wonder if SerenityOS
       | can count on some help by Linux drivers, I mean if they could be
       | roughly taken as a starting point to speed up native support of
       | hardware. Otherwise it would be a really time consuming task.
        
       | zamadatix wrote:
       | Quite a ways since the initial demo and HN thread!
       | 
       | https://www.youtube.com/watch?v=hE52D-zbX3g
       | 
       | https://news.ycombinator.com/item?id=19537807
        
       ___________________________________________________________________
       (page generated 2021-10-10 23:00 UTC)