Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
SerenityOS demo at Handmade Seattle 2021 [video] (handmade-seattle.com)
786 points by awesomekling on Nov 18, 2021 | hide | past | favorite | 180 comments


I've been thinking recently that Windows 95/98/2000 had better UX than you can find nowadays on most websites, and while not "beautiful", it was still aesthetic.

That + a good console? Great idea. I'd love to see some innovation with the old school design ethos too; maybe there are even better ways of displaying controls? Or maybe a new way to think about controls that weren't around back then.


>I'd love to see some innovation with the old school design ethos too; maybe there are even better ways of displaying controls? Or maybe a new way to think about controls that weren't around back then.

Oh yeah, this is something we've been exploring (carefully) with SerenityOS! There's obviously been a lot of good UI/UX innovations since the late 90s, and it's super interesting to look for ways to integrate them with the classic aesthetics.

As an example, we use breadcrumb bars in our file manager, to display the current directory as a part of separately interactive segments.

And we also have "Assistant" which works similarly to macOS Spotlight, for fast access to a range of data providers.

I'm sure there are many similar concepts we have yet to discover :)


@akling, I want to take a moment to comment just how amazing recovery can be. As someone who's suffered some similar substance issues. Thank you for being a great example of just how amazing of a place the mind can be when its trained onto something that gives us meaning and direction. I am in sheer awe of what you've created. Its incredibly powerful but yet so simple its staggering. I am so following the progress of SerenityOS (i get the name too, btw) and look forward to seeing great things come of it and from you.


Just to second what this good person here has said. Having suffered with substance abuse myself, it truly is inspiring to follow your accomplishments Andreas! I love that your hostname is 'courage', and like my fellow poster here, Serenity makes a lot of sense. Much strength to others having walked/still walking on a dark path.


I'm sure you've seen this or similar paper before, but a good refresher from the windows 95 team: https://socket3.wordpress.com/2018/02/03/designing-windows-9...


Yes! That’s such a great post. For people interested in this, I strongly recommend getting a hold of the old Windows 2000 era user interface guidelines book from Microsoft.


What book are you talking about? Is it "Microsoft Windows User Experience" published by Microsoft Professional Editions?

Aside: Thank you for your video! It looks great and that's yet another OS I'd like to try and play with -- along with Plan 9, which Serenity made me think of a bit, and TempleOS because of the soul-saving effect of devoting to a hard piece of beautiful software craftmanship.


Yes indeed! “Microsoft Windows User Experience”. I got a used copy off of Amazon last year for $2


Did you look into Neumorphism?

It’s a recent thing, but in a way it is a callback to making it more obvious what is interactible and not.

For a while, quite recently, it seemed to be catching on. But then it didn’t really catch on like.

But I think SerenityOS with a Neumorphism style would be a really interesting experiment.

https://uxdesign.cc/neumorphism-in-user-interfaces-b47cef3bf...


Neumorphism is interesting, but as far away from Windows 95 style as can be.

It's tactile, yes, but low density, low contrast, borders are non existent, colours are used to create intense gradient background palettes, instead of using them to increase readability and usability.

Neumorphism has all the drawbacks of modern flat design, with none of the benefits of old UI design studies. But it looks cool.


The Windows 95/98/2000 interfaces are imo kind of just the low-res version of Neumorphism.

Which I like.


I do not like that at all. It looks like the stuff I designed when I just started university.


Do check out the Spotlight version in Tiger — the first iteration has been the best iteration of it, by far. You might be able to pick up a few things!


> As an example, we use breadcrumb bars in our file manager, to display the current directory as a part of separately interactive segments.

With current 90s themes for GTK+, "breadcrumb" segments appear just fine as buttons. It works quite well in practice.


Our current product has a UI that is on par with windows 2000. We reuse the same ~26 hand-rolled UI elements on a fixed-size layout. Things like alpha blending and pixel shaders are a distant fantasy for us. Target market is highly regulated B2B, so we have more tolerance to work with here. Everything is very serious business. No one really cares about button radii or drop shadows. They just want to push the paperwork as quickly as our screens will come back and then go home. We listen to our user delegates on a weekly basis. On the actual telephone for up to an hour. Any little UX gripes are usually dealt with judiciously as a result.

Nothing is more frustrating than a perfect UI being fucked up by the passage of time. You don't need fancy shit. You just need consistency and speed. Give me back my xp-era explorer and start menu snappiness. Put a high speed camera on a windows 10 task bar and record someone right clicking on it. You might need a larger SD card than originally planned for this activity.


XP explorer is so much faster it blows my damn mind. I ran it inside Windows 10 in VirtualBox, the explorer window opens instantly and navigates instantly, while the new explorer has lag with every operation. The best way to see this is to copy or rename a file. Explorer, a Microsoft product (presumably better integrated with the kernel) will take a second or two to show the result of the action that it itself performed (!!), while Sublime Text open in the background will detect the change and display it instantly. Madness!


I feel like way too many engineers ca. 2005-2010 internalized the misconception that "asynchronous" is synonymous with "I don't need to care how long it takes". It turns out that the distinction isn't trivial.


I wonder if Explorer is deliberately updating the display after a timeout to handle the scenario where many files might rename in short succession.

One simple way to handle this could be to compute the timer to fire at $last_rename_time + $delay, initialize $last_rename_time to 0 (and later set it to the current time in milliseconds), then only actually start the timer if the calculated value is actually in the future (which it won't be for the first run).

Of course... Explorer might (...still) be using periodic polling. xD

You might be able to use Event Tracing for Windows to find out if Explorer is actually following events in real time, with the minor caveat that it might be a bit of a project. I gathered a small handful of ETW-related links over at https://news.ycombinator.com/item?id=28348564 a little while back FWIW.


I believe this is what's happening. I read something recently from Raymond Chen that it works like:

1. Open file with the delete flag 2. Call a function to set the new file information 3. Close the handle.

The signal that a file was renamed happens in step 2, and that signal/event is what many applications subscribe to. Explorer will wait until the rename is fully completed with the handle closed before showing the change.


XP explorer stars so fast because it's already running. The desktop with the icons is actually an explorer window.


That's not the case in Windows 10?


I think that era of Windows stuck to the literature and best practices, the UI spoke to us in its own visual language and let us know what could be clicked or right-clicked or that it had focus and might do something if you hit the spacebar etc. etc. things that behave similarly look alike, all the clues you need to learn some software on your own were there, the visual language was teaching us how we're meant to use it, the more familiar we were with windows software the quicker we could pickup new windows software.

and then I don't know what happened Steven Sinofsky showed up with radical ideas that software should be beautiful and everything sort of went to hell? curious if there was actually some kind of event marking the beginning of the end of intuitive software design for MS


I think that Windows 2000 and Max OS were the pinnacle of clean Interfaces.

It seems like once the graphics capabilities became common, OS interface developers used them even when they shouldn't have. Remember when moving windows in Linux had a "jiggle" to them? The genie effect in OS X? What about the "cube" of multiple desktop? I still don't know what the point of transparent windows is.

A few effects are useful - like aero peek in Windows.


I think some of those animations make the desktop behave a little more like objects would in the real world.

For minimize, whether it's a line that shrinks, a genie lamp, a simple shrink effect, it's all the same. A simple visual cue telling you where it went.

A little form with the function is fine with me. There's a ton of computing power in even the weakest of machines. That said, I hope we'll always be able to turn it off.

Even a default install of Raspberry Pi OS uses a composited window manager on the RPi 4 now.


> I think some of those animations make the desktop behave a little more like objects would in the real world.

Why is this desirable? Objects in the real world have many inconvenient properties.


It can make things more intuitive. If you use mental models people already have, they tend to pick things up faster. I think the point of the cube, for instance, was to help people keep track of multiple windows a little easier by making it spacial as opposed to just a list. Maybe it wasn't very effective in that case, but I think the hypothesis was sound.


> It seems like once the graphics capabilities became common, OS interface developers used them even when they shouldn't have.

When you release a new OS version it has to look fresh or nobody will want it.


I think a lot of these things make interactions more pleasant, definitely more aesthetically pleasing. I know people love to hate on everything new but I grew up on early windows (my first PC was Windows 95) and I always thought it was kinda ugly but PCs couldn’t handle much more.


I think you can face-lift the W95/W2000 system without losing the usability, people just didn't do that. That's what I hate the most about "modern" UIs, designers make them look pretty and degrade usability, instead of just making them pretty.


> That's what I hate the most about "modern" UIs, designers make them look pretty and degrade usability, instead of just making them pretty.

What's worse is, (at least IMO) they aren't even particularly pretty.


What would you say the modern windows shell is missing that existed in Windows 2000?


XP is basically the W95/W2000 interface but pretty.


> I still don't know what the point of transparent windows is.

But about half of Linux YouTubers proudly display them. (Between you and them, the clueless one isn't you.)


I remember really old Macs had a thing to pull the bottom corner up to take a peek at what was behind that window, it was neat and never seen again


And the keyboard shortcuts! Don’t forget the keyboard shortcuts! Which could help you automate, if you save a Windows macro and repeat it.

And the F1-Help! In context, boring but always available.

And the rearrangeable toolbars, native!! The status bar, not the flimsy tooltip at the bottom which disappears.

And the treeviews! And the files ordered by name! Nowadays everything is ordered by “Most recently seen” so you can go back to the past because of the infinite roll. Everything was ordered and safe there. But you would lose your mind if you didn’t reorganize your desktop regularly, and that has faded away, no-one needs to organize files nowadays.

Windows had reached an incredible level of usability, complete with blind and disability support, scriptable, standardized, reorganizable, repeatable UIs.

Then the web appeared and despite having a searchbox in every app, there still isn’t a keyboard shortcut for it.


> the web appeared and despite having a searchbox in every app, there still isn’t a keyboard shortcut for it

This infuriates me. None of the browsers have a shortcut to "search this highlighted text with Google". I instead have to right click, and carefully pick the option between "Print" and "Copy".

Not a single one, for an operation I do 200 times a day. I do not understand how it is possible. It's the most common operation I do in a browser.


I use Ctrl-C Ctrl-T Ctrl-V ENTER for this.


All my browsers (firefox, chrome and safair) on mac have this behavior at least. Do none of the windows browsers have the feature?


> ... let us know what could be clicked or right-clicked ...

Oh my gosh, yes. This is what drives me to distraction with recent Android releases. I'm tapping on things in the battery settings menu that used to do something, but no, not anymore.

Seriously, what is so damn awful about having some visual indication of what is a button?


The biggest problem - across a lot of fronts - was that we abandoned the idea of consistency and rooting these things in research. The original success of the Mac interface was rooted in the HIG which provided rigorous, clear, and (at least sometimes) evidence-based principles for UI/UX. Sun paid a bunch for work to be done on the GNOME 1.x series at one point, to try and significantly improve it.

The HIG is no more at Apple. GNOME design decisions are justified with comments like "I asked some friends and they liked this better". Most of the pain in Windows 10 are all the jagged edges where you cut from one era to another for no particularly good reason.


Fundamentally, ui has to be a consequence of function - there's a pragmatic reality to how a thing is used that informs the limits of the representation of controls. In a visual context, it's less about skeumorphic analogs and more about how the brain maps those controls to things we already know.

This is muscle memory and plasticity in action - the relative locations, stateful appearance, and behavior of controls gets mapped in our brains in the same way as taxi drivers learning the routes in a city, a violinist learning fingerings, or a child learning the alphabet.

"Muscle memory" is required to establish foundations of more complex behaviors. Once you've built a user interface, you should not ever touch elements upon which the users have built those muscle memory mappings. Yo Yo Ma would be as lost as a child if you told him he had to play the bassoon instead of cello. After a couple years of practice, some of the higher level artistry could be brought to bear on the new instrument, but it's the low level fundamentals that matter.

Firefox screwed with fundamentals, and their market share is evidence of why that shouldn't be done.

Windows keeps pushing down that path as well, mistaking their current dominance in desktop as something absolute.


Mac also caved after a real highpoint of good definition in the 90s.

With MS, they just seemed to stop paying attention to their own guidance and much preferred doing their own thing (see most editions of Office!), people just got fed up and it seems like it crumbled from there.


Not only on the UI level, they were also responsible for COM's revenge on .NET after Longhorn, and the golden spot it now enjoys on Windows APIs, although most that don't do Windows think of it as gone.


If you like the Windows 98 era of UI design, I recommend you having a look at the GUI for the UNIX-like embedded operating system QNX. The care, tactility and readability of that interface is in my opinion unparalleled, and hidden behind a operating system few have heard of, and fewer even used.

https://guidebookgallery.org/screenshots/qnx621

I honestly think anything else produced since is worse than this, and since flat design has taken root, UIs have fallen off a cliff both in usability and style.

I tend to get very Patrick Bateman-like when appreciating old UIs, the colour combination and choice of fonts on off-grey backgrounds, while modern interfaces just feel like there's no personality or warmth to them. Just flat uppercase #222 sans text on flat white background.


Looking at those screenshots, I can definitely see your point.

For me, all the greys date it a little, but other than that it’s a simple, clean, elegant and highly consistent UI!

The consistency is most notable. We’ve lost so much of that in modern operating systems (mainly Windows and macOS).

It feels very approachable.

EDIT: Now having watched the SerenityOS video(!) all the same comments above apply. Really nice work.


Looks a lot like Haiku OS.


Yeah, while I haven't spent enough time in Haiku[0] to get familiar with really it's design language, it is so responsive, readable, and discoverable that it forced me to remember all that we have lost in personal computing because of... I'm not entirely sure who to blame, a lot of people who aught to be shot out of a cannon into the sun, I reckon.

[0] sadly it doesn't even quite meet my relatively minimal almost-never-used laptop use case due to the only RDP client that worked at all being so horrifically out of date that it can't understand modern RDP authentication mechanisms.


> the only RDP client that worked at all being so horrifically out of date that it can't understand modern RDP authentication mechanisms.

Do you mean rdesktop? Indeed it's pretty old and probably should be disabled, so I just did that.

Did FreeRDP not work, then? It seems we had a 3-year-old version, so I just spent the morning updating it to the very latest (2.4.1). Seems to work fine here for me, I connected to a remote Windows machine successfully. (The port is missing a bunch of features, but the basics seem to work.)

In the future you can report issues to HaikuPorts directly, or feel free to ping me on IRC/Matrix/XMPP.


Thanks, I will take a look when I get home. I was using rdesktop via BeRDP and on its own, but it choked on the auth portion. IIRC FreeRDP failed to launch. Also tried the KRDC port but it never gave me the option of using RDP despite its claims.

I was a little annoyed at the gigantic pile of packages that came along with those last two options, but there's no need to rehash rehash that argument. I do wish there had been an obvious way to clean those up after removing the applications they supported though.


FreeRDP is CLI-launch-only, so if you tried to start it via the GUI, that may have been your problem. We should probably rework BeRDP to use FreeRDP instead of rdesktop, but that's more involved.

I think KRDC may be hardcoded to use "xfreerdp", so it won't find the Haiku variant.

Yeah, "autoremove" isn't implemented unfortunately, nobody has gotten around to that yet. It would indeed be nice to have.


I was launching it via the CLI. As I said, I'm afraid I do not recall the reason it failed to launch. If it does so now that you have updated it I will forward what information I can through the appropriate channels.


An operating system a want on my laptop for so long now (native boot)...


Which itself is a carbon copy of BeOS, as far as UX is concerned.


BlackBerry's tablet (which I loved; combined with a cheap Curve and a $40 AUD a month prepaid plan, I had unlimited internet access on both devices, super neat) was based on QNX if I recall correctly! Though it had its own touch UI on top of it.


ive seen first hand at an amazon sortation/distribution warehouse i worked to construct just last year used QNX for their automated conveyor and barcode sortation system, i guess since its a real-time OS? I love the UI as well and it was really neat to see QNX in the wild.


Loved it when it came out. I tried the floppy demo a few times. It was impressive.


Yes! My thoughts exactly.

I'm pretty desperate for an OS UI that looks like this. KDE comes close but still too modernized.

Would love to try Serenity on a laptop some time. Anyone know how usable this is as a daily driver?


It is usable only in a VM, sadly.

If you like to hack around and enjoy playing Diablo 1 on obscure software, Serenity OS is for you :)


It seems to be at least somewhat capable of booting on metal: https://www.youtube.com/watch?v=sT-ME3PsKtc


That is really inspiring to see!


I can't but wonder how nice it would be if ported to ARM devices. If Linux can run on $15 small boards with much fewer resources than big PCs, this much lighter OS could literally fly.


People are actively working on Arm support!

https://github.com/SerenityOS/serenity/search?q=arm&type=


LXQt with a retro theme may do it. The project reached version 1.0 at the beginning of this month.

https://lxqt-project.org/about/

https://www.opencode.net/abgr/qtstep


There's a well-known retro theme for GTK+ too. Works quite well in LXDE and Xfce.


I feel like it's a product of the era we grew up in. Or the OS that made you fall in love with computers.

For me that was Mac OS 8 on the first iMac :)


For me it's the efficiency. The 90's era Windows UI and applications ran productively on machines with 8MB of RAM. That's an enormous amount of value for what amounts half today's desktop CPU cache. The limited memory forced developers to conform to the OS provided API and resources (fonts, color pallets, image formats, etc.) and the result was small, fast, consistent applications.

Today this discipline survives in mobile devices. Meanwhile, our desktop operating systems are festooned with a multitude of widget toolkits and language runtimes yielding wildly diverse, inconsistent and often fragile behavior and require 3+ orders of magnitude more memory.

Aside from (usually) pretty nice font rendering, what has actually been achieved with all of this?


I don't really think it is only that. My first OS was DOS and i used Win3.1 a lot and while i do have nostalgia for those two, i think Win9x was better in terms of GUI design and as others have mentioned, the peak was around Win2K (though not everything was going upwards, i still think border-on-hover introduced in Win98 was backwards and essentially the herald of featureless form-over-function modern flat design).

And ever since i started using a window manager in Linux (somewhere in early 2000s) i really liked Window Maker's style even though i never used NeXTSTEP for many years (in fact the only time i used it i was kinda disappointed at how primitive it was in terms of window management compared to Window Maker :-P).


Absolutely


If you liked the simplicity of windows 2000 you'd likely do find with an XFCE4 desktop environment.


UX means user experience, not user interface. And it does not have to be beautiful, but functional.


Very excited to watch.

If you haven't checked them out, I highly recommend checking out Andreas YouTube channel [1]. It's the most interesting programming content I've ever watched - and I feel like he's honestly taught me a lot about programming!

[1] https://www.youtube.com/c/AndreasKling


Wow, thanks for the endorsement! I'm happy to have found a way to share my love for programming with so many people, and it's even cooler when it helps someone improve their skills :)


Props for making it through rehab by the way. I also fought drug addiction, though in a different country to yours! I completely understand the drive to have a coding project as a part of recovery -- I've done the same, though my projects are much less impressive than yours :)


Can you share a few pointers on how one would go about starting with writing their own OS? I do have iOS and Android dev experience.

How does one even go about writing something from scratch which runs on a particular hardware?

Is this possible to do for mobile OS? Lets say writing an OS from scratch for mobile?


You should watch his videos. They shed quite a bit of light on SerenityOS is written, and it's given me a lot of insight on OSes work.


Seconded. Dude is super positive and a hacker in the OG sense of the word. I watched him port Diablo to serenity in like an hour. Mindblowing. Quite frankly his ability is almost intimidating.


I want to second that. Andreas YouTube channel is a great source of genuine inspiration. It's enlightening to see a person as skilled as Andrea doing such great craftsmanship regarding scoping things, improvising, making mistakes, fixing them, making compromises to achieve goals, and more.

I see Serenity OS, I upvote it :)


Hey everyone! I'm the organizer for Handmade Seattle. It was a pleasure hosting SerenityOS, as Andreas is an inspiration to us.

If I may plug, note we are 100% indie and upload presentations for free. We have a newsletter [0] but since HN loves RSS we have that setup as well [1].

[0] https://media.handmade-seattle.com/subscribe

[1] https://media.handmade-seattle.com/rss


The list of people speaking at Handmade Seattle as well as the topics sounds absolutely fantastic. So many conferences are either too corporate with presentations that are mostly flashy marketing, or they are technical but there's only like 2 or 3 people giving a genuinely solid talk. This conference looks like it has everything, great speakers and great topics.


Agreed, the Handmade Seattle event was fantastic! They have started posting recordings of this year's event to the website, so you'll be able to watch all the talks there soon (AFAIK) :)


I don't understand how they write an OS kernel, command shell, graphical shell, and browser in 3 years? I get there are more than a single person involved but it still seems very rapid.

What are the catches? Is it still very immature or assuming there was enough user-land software (which I'm sure there is not), is this ready for production use?


It's still very immature and not ready for production use.

That said, you can do a heck of a lot in 3 years if you put in consistent time and effort towards something. :)


I've watched many of your videos and love your approach to building complex features, building the skeleton first with asserts for uimplemeted code paths. However I'd love to see how you got started, the first early (before gui) steps of the kernel. Is that documented? The earliest git checkin I found was already a pretty capable os. Huge congrats on building such a positive community by the way.


> love your approach to building complex features, building the skeleton first with asserts for uimplemeted code paths

Write code top-down <https://www.teamten.com/lawrence/programming/write-code-top-...>:

> With bottom-up design you start with the components [...] Designing a component is a small tractable task that can be finished and called _done_. You’re creating a perfect, beautiful, reusable jewel. All engineers really want to _do_ is write components. [...] At every level there's pressure to do bottom-up programming. Avoid it. Instead, start at the top, with `main()` or its equivalent, and write it as if you had all the parts already written. Get that to look right. Stub out or hard-code the parts until you can get it to compile and run. Then slowly move your way down, keeping everything as brutally simple as you can. Don’t write a line of code that isn’t solving a problem you have _right now_.


I prefer middle-out myself...


I wasn't recording anything until ~6 months into the project. In retrospect, it would have been nice to have!

There's a bit of history about early development here: https://serenityos.org/happy/1st/

Also, one of my earliest videos was showcasing some pre-YouTube builds of SerenityOS: https://www.youtube.com/watch?v=rveS_vwp0y8


Thanks, that was a great read and watch. The progress made over a few weeks was immense.

I didn't know about computron until you mentioned it in the video, so I have to ask, would serenity run under computtron? If so, could a serenity port of computron run serenity in serenity?


I have been following Andreas/SerenityOS for a quite a while now. It's extremely impressive - how he and the community support built an entirely new OS. https://github.com/SerenityOS/serenity/graphs/contributors


Heads up that the person you responded to is _actually_ Andreas.


Amazing job, hope it becomes the new Linux some day, who knows. What did you add that might be interesting from a security standpoint? Things like “hardened out of the box” or “buffer overflow protection” or “network anomaly detection” or ability to plug in things that will make endpoint / server security easier can make it very popular!


Andreas just gets stuff done. Watch his live content sometime.


That's the part I find most impressing.

"Today we are going to add X"

2 hours later: X is added and working fine.

Meanwhile, at work I could easily spend 2 hours looking for a GCC flag or figure out why the build script fails on arch after latest update


At the risk of being nitpicky:

Updating tools in your environment/workflow is exactly a thing that can lose a lot of time, often for not much gain[1]. One way to become very productive is to know your tools very well, and that would extend to not changing them often.

[1] not much gain in productivity, but perhaps in security, compatibility, etc


You are ignoring that we often use software created by other people.

Raise your hand if you have ever spend an afternoon trying to get someone else's build scripts working. Wondering why make, cmake, scones and ninja are used in the same project...


There you nailed it. Want a feature X in the plan9 kernel? Okay, add it. Recompile and Run. When a system is self contained and has fewer external users it's easy to iterate and develop without the fear of breakage


Unacceptable. If this is so, I quit.


These look like the past threads so far. Others?

SerenityOS: A love letter to '90s user interfaces with a Unix-like core - https://news.ycombinator.com/item?id=23911180 - July 2020 (1 comment)

Introduction to SerenityOS Programming - https://news.ycombinator.com/item?id=22479132 - March 2020 (43 comments)

Pledge() and Unveil() in SerenityOS - https://news.ycombinator.com/item?id=22116914 - Jan 2020 (28 comments)

CTF writeup: First published SerenityOS kernel exploit - https://news.ycombinator.com/item?id=21918351 - Dec 2019 (2 comments)

SerenityOS: From Zero to HTML in a Year - https://news.ycombinator.com/item?id=21212294 - Oct 2019 (52 comments)

Serenity OS update (August 2019) [video] - https://news.ycombinator.com/item?id=20851356 - Sept 2019 (2 comments)

SerenityOS – a graphical Unix-like OS for x86, with 90s aesthetics - https://news.ycombinator.com/item?id=19986126 - May 2019 (179 comments)

Serenity: x86 Unix-like operating system for IBM PC-compatibles - https://news.ycombinator.com/item?id=19537807 - March 2019 (83 comments)


Not a HN thread but he posts monthly project updates very similar to this demo but often longer and more in-depth. If you liked this post you will definitely enjoy these too:

https://www.youtube.com/playlist?list=PLMOpZvQB55bfp6ykOLayL...


Wow, that's impressive work. Kudos to Andreas for building a community as well as a tool

I'm equally amazed and horrified that they're building a web browser. It seems easier to build the native OS.


Chrome is an OS.

Edit: Well, practically.


Chrome is the new Emacs.

Great OS, but the browser sucks.


Well there is "Chrome OS" so you're not wrong.


I don't have anything profound to say, but I love alternative OSes like SerenityOS, and I wish the world had more of them.


The one I usually recommend for people to check out is Haiku OS. I see diversity as a positive, and hope that all these OSes succeed at their goals.


The more the merrier! And I would love to see more alternative browser engines as well :^)


did he just right click on a terminal file to open it (°0°)


Yes, Andreas has an excellent eye for usability so SerenityOS and its included applications have a lot of wonderful quality if life features such as this.

I get quite jealous when I fire up the latest build of Serenity and see how functional the whole platform is in terms of QoL tweaks.


I paused the video and gasped at this, I had to go back and watch it again. It's the little things :)


Trivial to do in many modern terminal emulators, the most flexible approach being in kitty, where you can map clicks on filenames printed by ls to arbitrary actions: https://sw.kovidgoyal.net/kitty/open_actions/


This blew me away. Seeing that was a huge surprise. I see a great future for this project.

Iterm2 does something similar with links, but not files printed from something like ls. We should fix that. :)


iTerm 2 does do that with files. You just have to cmd-click the filename.


Nice! Still not on the same level of Serenity but very helpful, thanks.


I saw this. Does any other terminal emulator do this?



I NEED THIS

which terminal supports this out of the box?


Konsole does.


Everything is so snappy and fast and feels lightweight, I wish there were Linux distributions focusing on these kind of aesthetics


There is also NEXTSPACE: https://github.com/trunkmaster/nextspace

A modern replica of NeXTSTEP.


That's another great UI IMHO. The whole NeXTSTEP experience was a good one.


I'd honestly love to see this with some modern workloads and practices. This guy seems like a total savant - there is something to be said for creating a whole system instead of layers.


Ow, that hit me right in the feels! That wonderful UI. That wonderful amazing UI!

No light grey on dark grey text, no borderless buttons, no pointless 45% width margins.


and scrollbars that don't disappear when you try to use them!


I've seen his videos a few times via HN - how close is the OS to being able to use GCC or CLANG and say, compile all Debian packages.... which is one of the largest repos. I mean for this to really be usable it would have to be able to work well w/existing millions of lines of C/C++ code...


We have a growing number of ports for those that wish to run 3rd party software on SerenityOS: https://github.com/SerenityOS/serenity/tree/master/Ports

Note that the system aims to be completely free from dependencies, so all ports are strictly optional.


Holy moly this is incredible! I'm not usually one to watch videos here, but this one was worth it (and pretty short).

I'm amazed that he built a whole new browser to go with his OS.


Glad you enjoyed the video!

Just to be clear, while I started the project, it's since been hacked on by hundreds of people (we're well over 500 contributors on GitHub) and it's by no means a solo project anymore! https://github.com/SerenityOS/serenity


Damn, the GUI brought back sweet memories. The OS as a whole looks nice too.


Yes, and it's a very functional GUI: well thought, informative, rational, with every section put where it belongs. It comes from an era in which GUIs were made to solve problems. I hope it will never ever ever go the path that GTK took after version 2.


One thing that regularly bothers me about Linux, is how janky it is to parse fields out of the procfs. Using JSON makes so much more sense!


You could make a fuse file system that reads /proc and provides /procjson

Alternately you could make a kernel module that provides /proc/js/ or /proc/whatever.json alongside /proc/whatever.


Or you could write a library that parses /proc into JSON, and everyone could include it if they want it.


I've been following Andreas on Youtube for quite some time. It is a monumental undertaking to write a completely new OS from scratch, and I admire his perserverence so far.

He has managed to make a worthy tribute to both UNIX and old Windows aesthetic style. And he did it almost all alone. Of course, Serenity OS is now a living, breathing community, just as it should be.

BTW, the guy has even ported DOOM, old DukeNukem and freakin' Diablo 1 to his OS. Mad respect to Andreas, Serenity is truly a work of genius.


I especially like how he did this all after getting out of rehab trying to spend his time on something productive. Mad respect.


Anyone know what the driver story is with SerenityOS? Is it a standard Unix/Linux thing, where drivers have to be compiled against an unstable ABI/API? Or is it more like Windows where drivers are forward/backward compatible?


As far as I can tell, there are no drivers - this OS runs on QEMU only. I guess if you are lucky, you can get it to boot on a real system accidentally.

This is the opposite of Haiku-OS, for example, which tries to provide at least the minimal amount of drivers, and some people are using it on real hardware.

It was actually a really interesting decision, to concentrate all efforts on the fun parts of OS development, and completely ignore the 80% which is boring, frustrating, and requires a large continuous investment to stay up to date with the latest stuff. Looking at Haiku, they have been working on their OS for decades now, and still aren't in a generally usable form.

I'm not sure what a QEMU-only OS is actually good for, other than playing around with it, but maybe I'm not the target audience :)


I don't see a problem with a QEMU-only OS. Serenity is explicity designed for personal use. It's not a headless OS in any way. I could see it being useful in a corporate environment where it's useful to have a windows host for business reasons, and you run your unix-like system in a hypervisor for development. That's how I work, and I think quite a few people work like this. Serenity is perfect for this.

And obviously, nothing prevents people from writing drivers eventually. Andreas probably wants to run Serenity on whatever his hardware is eventually. But there's little point in doing that till we actually have a mature system that anyone would want to run daily.


It is good enough to run on top of type 1 hypervisors like Hyper-V and Xen, like all those systems powering all cloud flavours out there.


There are additional crazy folk working on bare metal support.

I’m waiting for someone to start working on a custom cpu for it at this point :)


Haiku is actually quite usable on a wide variety of hardware (I use it myself on bare metal), it only needs a browser port such as Firefox. Falkon has been ported as of yesterday, but still might need fixes and stuff.

In case the the graphics drivers are not supported, VESA and/or Framebuffer drivers come to aid, and provide a usable system.


If I understand correctly, this one person and a small team of volunteers (?) built not only the core operating system from scratch but also the user interface and also apps like the browser? How is that possible? I would think this type of thing needs hundreds of engineers.


There's lots of other things like its Hack Studio IDE [1], GML GUI Markup language and GML Playground [2], an x86 User Space Emulator [3].

I highly recommend checking out his YouTube channel [4] where he records doing a lot of this stuff in real-time. Also pretty amazing that most of this was done on the side after this full-time job, up until a few months ago where he's been able to quit to focus full-time on SerenityOS from GitHub Sponsorships [5].

[1] https://www.youtube.com/watch?v=rRGu8DVrlHQ

[2] https://www.youtube.com/watch?v=1QYBvTy9QKE

[3] https://www.youtube.com/watch?v=vYWMLiZKB-Y

[4] https://www.youtube.com/c/AndreasKling/videos

[5] https://github.com/sponsors/awesomekling


I first heard about SerenityOS via HN years ago, it's been incredible to watch Andreas' journey from hobby project to working on it full-time.

His hacking sessions on youtube are also great.


I love Andreas’s YouTube channel, such a nice and relaxing stream of quality programming


Thanks for sharing your project! The passion you put into It definitely shows! Serenity OS looks amazing, and your projects paradigm's align with some of my own for general purpose software.

If I wasn't so locked into my own software ecosystem, and I had time to dabble with a new OS, I would absolutely try yours out. For the time being, I'll subscribe to your YouTube channel.


I have downloaded Serenity and played a bit with it after HN link to Ars Technica article. Very nice, well written and compact: it runs with only 128 MB of RAM (!) and it is very very fast.

Also mailing list very kindly, I asked some simple questions and answer was polite and wellcome.

If you are studying operating system at your university course, it is worth a try!


Pfffft I got browser tabs that use less than that /s


Dumping data to json seems to be incredibly handy!

Thank you for your effort folks


Please add an "always on top" button to the window decorations alongside maximize/minimize/close. I want it badly and feel very frustrated because it only exists in KDE. I want it in all the non-tiling window environments I use including XFCE, Windows, Mac and Serenity.


I'm just as interested in his journey that brought him here as I am with this OS. So amazing!


Awesome to see that you're doing well, Andreas!


Hi bdash! Great to see you here, and I hope life is going well for you too :)


An operating system for a better world...


Wow! I love the mashup of unix/linux command line functionality with functional gui. I had been looking at Mezzano, because I prefer Lisp, but then I thought it would be great to implement a Lisp on SerenityOS with all native tie-ins to the gui and OS. Hmmm... So inspiring!


Has SerenityOS got a setting for the location of the "light" source?

Back in the days there was no good explanation for users who asked how to change that. Windows95 and clones were all hardcoded with a top left light source producing the buttons' shadows!


This is a really cool project and I want to see it succeed. I realize the FAQ states "There is no plan". That aside, are there any longer-term goals for the project or things they want to support in the future?


This is the most brilliant software project ever and this man is a genius messiah.


I'm not a kernel developer and know very little about OSes. I watched this video thinking I woulnt get it and would find it boring. Within 2 minutes my mind is blown. Amazing Job.


Very impressive! The GUI is very similar to an old friendly Windows style, did Andreas intentially designed it such way or use some 3rd party framework ?


From the github 'SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.'

The video in the link, Andreas mentions that its all from scratch.


It's all built from scratch, but it is clearly influenced by other systems in terms of design.

I'm not sure how those two points conflict.


From what I understand about the seminal Apple vs Microsoft case in the 90's, theres a limit to how much "look and feel" can be patented.


This looks like a monumental effort from the dev. Is it really all 100% original code he wrote? GUI, browser, terminal, js interpreter, everything from scratch?!

Reminds me of Terry Davis' - one of the few programmers I believe is "genius level" in the world.


It is all original code, but he didn't write all of it, there are lots of contributors at this point


The CPU emulator looked like Valgrind judging by the output. So you'd have to stretch the definition of "original code" to the max for it to hold up.


No, it's from scratch but inspired by Valgrind.


You can see him program it from scratch on Youtube. He specificaly mentioned Valgrind as an inspiration.


This seems more sane than any other thing out there


Truly monumental.

What hardware do I need? Also, gaming needs to be a thing. What would it take to have say Quake 3 run on your OS?


Not Andreas, but he was able to port some older games to Serenity.

Games like DOOM, original Quake, DukeNukem and Diablo 1. You should be able to compile some NES emulators yourself.

The OS itself runs in custom VM, but Andreas did manage to run it on his PC.


SDL/SDL2 and games/emulators/interpreters like Scummvm/Frotz/Mednafen should give Serenity OS a huge array of games.



Does this need a specific hardware to run?

Is it possible to port this to mobile?


Is it just me or do some people find the grey theme (yielding the nostalgic UI) off-putting?


I find it beautiful.


SerenityOS is interesting. Hope it doesn't get the same end as SkyOS.


SerenityOS is licenced under BSD-2-Clause License while SkyOS was entirely proprietary (and therefore disappeared when its development stalled), so the comparison seems irrelevant (your point would be more relevant if you were mentioning Syllable instead, which was quited advanced and open-source, yet somewhat seems to have disappeared... https://en.wikipedia.org/wiki/Syllable_Desktop . But since source-code is available anyone could restart it :)

I also hope that SerenityOS has a long and successful lifespan, as it seems promising !)


AFAIR SkyOS started as open source. But considering current direction, I really don't think there is any risk of the same happening to SerenityOS.


A lot of effort, but besides the nostalgia effect I don't see how anyone could take something like this seriously for everyday use. After using a multitude of window managers on Linux, it just doesn't make much sense to me to go backwards rather than forwards.


It's not for actual everyday use (afaik it never will be either), it's built for those that want to build and explore a from scratch OS.


It isn't yet another POSIX clone, that is the main difference from Linux right there.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: