[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)