SerenityOS: From Zero to HTML in a Year
serenityos.org
serenityos.org
But more importantly, I really wanted to commend the author on their truly inspiring approach to criticism (valid or invalid)
I was left with this impression just by looking at his comments on this thread, but then later came across this video¹ which was posted as a response to armchair critics on OS News... and the tongue-in-cheek tone is just too nice for what I'm used to seeing on the internet these days! Congrats on this huge feat after 1 year of development but above all kudos on being such a nice person even in the face of seemingly pointless criticism
1. https://www.youtube.com/watch?v=EoScn0X2DFM
2. Original thread https://www.osnews.com/story/129716/serenity-a-new-unix-like...
I ended up loving it so it's stuck since then!
As for handling criticism.. it's something new I've been trying in the last year. I decided that I don't want to get sucked into negativity anywhere near this project, so I strive to maintain a positive outlook 100% of the time. It can be a bit taxing, but I'm convinced it's better than the alternative. :)
Well, I hope you can handle praise. :- )
I unironically love the visual stylings and choice effects of Windows NT 4.0/2000, and where CUA menu bars exist, I often prefer the Mac-style centralized ones (especially the new ones, with the global search keybinding). I feel like the obvious idea of making buttons look iconically like buttons should not have been abandoned so hastily, even if it makes it harder to choose colours for dark backgrounds.
Obviously I really dig this GUI style as well. It might seem petty, but part of what motivates me to work on a browser is wanting to build one that doesn't cede control over things like button appearance to the web. Not to mention greater invasions like allowing sites access to desktop notifications, and other things that should have ended up in a WHATWG trash can.
Added clarification:
There are at least three important things about keyboards in my view of things: the symbol or intent of the key, the "position" of the key in a set of cultural contexts (e.g. typewriter-style keyboards, left hand character movement controls, etc.), and the actual physical position (relative to other keys) and form/scale (relative to the world).
In fact, the keyboard scan code is basically position information :)
If you would like to hear the story behind the "Serenity" name, and what led up to the creation of this OS, I spoke about it a few days ago: https://www.youtube.com/watch?v=j3JkNGKZtqM
Also check out this 1 minute video of the Serenity Browser in action: https://www.youtube.com/watch?v=Cu9wONA1MHc
Ofc I'm happy to answer any questions about the system!
Previous HN discussions:
i,m working on ultra compatible web forum system and curious if it would work...
even without form support, it is possible...
would you be interested in trying?
your objectives for the user study would be to read, vote, and comment.
link is in my profile. tia
you can make a new submission by putting it in the url.
anything not existing already becomes a new post.
thank you for responding.
it would mean a lot to me to be able to claim compatibility with serenity browser. maybe i,ll just try it myself, if i can figure it out.
already compatible with ncsa mosaic 1.0 ))
How far has the GCC port come? Is the project anywhere near self hosting being a feasible task?
The GCC port is pretty decent. You can build about 90% of the system inside itself but you eventually hit some kernel bug that crashes the build, ironically usually while building the kernel itself. There’s debugging to be done, but that’s true of the whole system.. We’ll get there eventually.
The fs/disk performance is also quite terrible and, which you can really feel during builds with GCC. I need to look into what’s happening there as well :)
The time commitment is impressive, and there's something reassuring in an age of consolidated power to see individuals building various levels of software, particularly where many of us probably haven't ventured due to the unknowns.
Very cool!
I've finally found a project big enough that even if I'm bored of it, I still just go and work on some other part of it instead ;)
While i'm not that interested in a full blown OS, some times i find myself really wanting to work on a new GUI stack for Linux (above X) but the time i'd need to put on it to become as i like it (which, incidentally, is very close to what you have here in your OS) makes me think that i'll need to basically do nothing else - and there are too many games i'd like to play :-P.
Early on, I was unemployed and living alone, so I was putting 8+ hours a day into it, every day of the week. Progress was very swift.
Over time I've scaled it down as I've moved to a new place, rejoined civilization and started a job. Nowadays I'd say I'm doing 3-4 hours on weekdays and 6-8 on weekends.
I regularly record screencasts of my work and post it to YouTube. I find that it works amazingly well for staying focused and serious, sometimes I end up solving something I would like to give up on, simply because I don't want to abandon a video I've started recording :)
I had't thought about using YouTube to help with focus. Though i wonder if it'll also "help" with making things feel more like work than fun :-P
With that knowledge, it was pretty straightforward to bring up my own little system. The rest of it comes from my experience in C++ systems programming which I've learned on the job while working on KDE, Qt and WebKit over the last ~15 years.
It's a bit hard to explain how it feels, but I'm building this system "from memory" much of the time. Visually, I'm recreating what I thought were the most beautiful things I've seen in computer interfaces. Architecturally, I'm building the best "Unix" that I can, while making use of modern C++ and other recent concepts like JSON, etc.
I have been having a hard time motivating myself to do anything really
First off, it's really fun(!) and I'm learning a ton of things about software, hardware and even a little bit about people from working with the contributors who want to help out.
Secondly, I'm building an operating system that I want to use. The contemporary OS'es don't really appeal to me anymore, for one reason or another. I realized that if I just focus for a long time, I could probably build a replacement that looks and works exactly the way I would like instead. So that's what I've been doing.
Thirdly, it keeps me sane. I've had some serious problems with addiction in the past, and having something meaningful to dump all of my excess time, energy and attention into, instead of drugs, has dramatically improved my life over the last year. :)
Keep at it Andreas :)
I like the VB inspired editor, I have yet to find one that matches the ease of ise and power of old VB. Does your networking stack support UDP (and multicast)? Looks like a fun thing to tinker with as a VM :)
Delphi and Lazarus (open source)?
How far have you gotten into bootstrapping Serenity OS? Is there a public "roadmap" for what feature you want to work on next?
There's no roadmap of any kind, I'm just doing whatever seems interesting and useful at the moment. I've been working on LibHTML and the Browser app for over a week now though, and I suspect that's gonna be what I'm doing in the immediate future as well!
Everything has been said by the other commenters but I still want to tell you that you're doing some highly inspirational work. An antidote to cynicism. It's nice to see someone doing something out of sheer love of the job.
Do you have a mailing list? I don't have any social media and while I've subscribed to your YouTube and starred the project, it would be easier to keep up with a monthly digest vs. searching through commits and 20+ minute videos for the salient bits.
Check out the "OS hacking" and "Browser hacking" playlists for 20-60 minute videos of random development tasks all over the system. :)