SerenityOS: Graphical Unix-like operating system with classic 90s UI
turblety 2021-08-17 07:14:18 +0000 UTC [ - ]
For a project that seems to be focused around something visual, it's strange to me that there's not even one screenshot on the home page.
The github page [1] does at least have one.
1. https://github.com/SerenityOS/serenity
edit: the screenshot is now on the home page! That was such a fast turn around.
akling 2021-08-17 08:34:46 +0000 UTC [ - ]
szszrk 2021-08-17 07:17:14 +0000 UTC [ - ]
There is a youtube channel linked below with some SerenityOs content, but that's hardly an excuse.
thepill 2021-08-17 07:19:54 +0000 UTC [ - ]
a9h74j 2021-08-17 13:03:08 +0000 UTC [ - ]
szszrk 2021-08-18 10:13:45 +0000 UTC [ - ]
wolf550e 2021-08-17 10:33:57 +0000 UTC [ - ]
It does not even pretend to be secure so far (intentionally accepts self signed certs), but if they ever want to make it secure, that would be a big task.
For compatibility, they really should implement ECDHE with NIST P-256, because that is what most of the internet uses and what they support means they always fallback to no-PFS.
https://github.com/SerenityOS/serenity/tree/master/Userland/...
https://github.com/SerenityOS/serenity/tree/master/Userland/...
sdfjkl 2021-08-17 09:06:16 +0000 UTC [ - ]
Nice work!
kalekold 2021-08-17 15:39:42 +0000 UTC [ - ]
agumonkey 2021-08-17 20:28:13 +0000 UTC [ - ]
there are some good fun stuff in today's desktops but .. it doesn't add much to your journey IMO (and often you lose CUA services like full keyboard access too 99% widgets)
dang 2021-08-17 07:28:26 +0000 UTC [ - ]
I quit my job to focus on SerenityOS full time - https://news.ycombinator.com/item?id=27317655 - May 2021 (249 comments)
SerenityOS: Writing a Full Chain Exploit - https://news.ycombinator.com/item?id=26115141 - Feb 2021 (9 comments)
SerenityOS: A love letter to '90s user interfaces with a Unix-like core - https://news.ycombinator.com/item?id=23911180 - July 2020 (1 comment)
SerenityOS Update (April 2020) - https://news.ycombinator.com/item?id=23037581 - April 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)
Quai 2021-08-17 08:09:52 +0000 UTC [ - ]
Deukhoofd 2021-08-17 08:22:33 +0000 UTC [ - ]
stinkytaco 2021-08-17 14:09:40 +0000 UTC [ - ]
dev_tty01 2021-08-17 14:19:20 +0000 UTC [ - ]
wildrhythms 2021-08-18 01:46:34 +0000 UTC [ - ]
kokey 2021-08-17 11:08:08 +0000 UTC [ - ]
CRConrad 2021-08-17 15:09:45 +0000 UTC [ - ]
Why? As I recall it, NT4 was the one that caught the NT line up to the W95 look, replacing NT3.5(1)'s look inherited from W3(.1). So, on the contrary: This looks just like NT4 / W2K.
dfee 2021-08-17 08:27:21 +0000 UTC [ - ]
It’s like taking a classic car and putting in a modern radio.
akling 2021-08-17 09:32:57 +0000 UTC [ - ]
That said, nobody has implemented kerning or hinting yet, so vector fonts do look pretty unpolished on screen, especially at smaller sizes.
1. https://github.com/SerenityOS/serenity/tree/master/Userland/...
emptyparadise 2021-08-17 10:10:28 +0000 UTC [ - ]
vkoskiv 2021-08-17 10:40:02 +0000 UTC [ - ]
miki123211 2021-08-17 12:34:22 +0000 UTC [ - ]
This way of thinking is why I, as a blind developer, need to deal with so many horribly inaccessible tools, I guess.
If you think that only the consumer-focused part of your tools needs to be accessible, you're wrong.
filmroellchen 2021-08-17 18:33:53 +0000 UTC [ - ]
vkoskiv 2021-08-18 11:33:17 +0000 UTC [ - ]
emptyparadise 2021-08-17 11:28:13 +0000 UTC [ - ]
elisee 2021-08-17 18:32:45 +0000 UTC [ - ]
I believe his rationale is that other languages are generally awkward at talking about technical stuff, and SerenityOS is addressed at technical users anyway. In my own experience as a French native speaker, I do tend to prefer all my software to be in English rather than getting the awkwardly-translated-in-French version.
As far as accessibility goes, like anything in the project, it's up to someone passionate to step up and work on it.
emptyparadise 2021-08-18 09:57:47 +0000 UTC [ - ]
vkoskiv 2021-08-18 11:36:00 +0000 UTC [ - ]
smusamashah 2021-08-18 01:08:15 +0000 UTC [ - ]
thom 2021-08-17 16:14:41 +0000 UTC [ - ]
AnIdiotOnTheNet 2021-08-17 11:48:50 +0000 UTC [ - ]
selfhoster11 2021-08-17 20:14:42 +0000 UTC [ - ]
Secondly, why do you expect that this OS is ready to show to any non-technical user? If you did, they wouldn't realise what they are looking at, nor why it's a valuable contribution to the ecosystem and the fight against the "modern" UX trends. The effort would be wasted until the project becomes more prominent
AnIdiotOnTheNet 2021-08-18 00:31:16 +0000 UTC [ - ]
I'll comment on future features when they exist, or at least are documented as a goal.
> Secondly, why do you expect that this OS is ready to show to any non-technical user?
I don't. I am commenting on what exists, and what exists is an FAQ entry specifically stating that the project does not cater to non-technical users.
Even so, I think you underestimate non-technical users. Another modern trend I despise.
wruza 2021-08-17 13:13:19 +0000 UTC [ - ]
ThinkBeat 2021-08-17 12:09:36 +0000 UTC [ - ]
It is critical for the operating system space to have more variation and innovation.
I admire your skills and dedication.
qwerty456127 2021-08-17 15:18:03 +0000 UTC [ - ]
nullifidian 2021-08-17 09:48:30 +0000 UTC [ - ]
rathboma 2021-08-17 13:23:00 +0000 UTC [ - ]
When do you think you'll be able to run your dev stack natively on serenity rather than in Linux and virtualizing serenity only for testing?
selfhoster11 2021-08-17 20:17:09 +0000 UTC [ - ]
donhaker 2021-08-17 14:33:51 +0000 UTC [ - ]
bni 2021-08-17 10:33:08 +0000 UTC [ - ]
akling 2021-08-17 10:38:05 +0000 UTC [ - ]
unnah 2021-08-17 12:07:26 +0000 UTC [ - ]
metalliqaz 2021-08-17 12:49:54 +0000 UTC [ - ]
AnIdiotOnTheNet 2021-08-17 13:08:04 +0000 UTC [ - ]
99mans 2021-08-18 02:02:36 +0000 UTC [ - ]
zozbot234 2021-08-17 09:25:06 +0000 UTC [ - ]
akling 2021-08-17 09:40:50 +0000 UTC [ - ]
hulitu 2021-08-17 10:49:23 +0000 UTC [ - ]
HackedBunny 2021-08-17 16:41:06 +0000 UTC [ - ]
boomlinde 2021-08-17 10:38:31 +0000 UTC [ - ]
That's because it was made from the start for PDAs with touch screens. This is a desktop computer OS, and although I can entertain the notion that someone out there might be smudging a touch screen connected to their Unix workstation, I don't see why everyone else should accommodate this weird and ergonomically unsound input method at the expense of screen estate.
Also, whether they could be easily accessed really depends on the device and input method. Using Pocket PCs without a stylus was certainly no fun.
zozbot234 2021-08-17 10:46:57 +0000 UTC [ - ]
boomlinde 2021-08-17 11:45:19 +0000 UTC [ - ]
akling 2021-08-17 08:24:16 +0000 UTC [ - ]
This project has been quite the journey for me, from starting it from scratch ~3 years ago, to quitting my job ~3 months ago to focus on this full time. [1] It's also grown from a 1-man project into a bustling open source community with 475 contributors and counting.
If anyone has questions about the system I'm happy to answer them! I also have a huge library of content on my YouTube channel [2], where I've uploaded hundreds of videos of me working on the system in real time, and also monthly update videos (since April 2019) where I demo recent developments.
Our main community hub is over on Discord for anyone interested in joining development. [3]
1. https://awesomekling.github.io/I-quit-my-job-to-focus-on-Ser...
2. https://www.youtube.com/andreaskling
3. https://discord.gg/serenityos
southerntofu 2021-08-17 10:54:59 +0000 UTC [ - ]
A bridging bot like matterbridge is fairly easy to setup these days, and i'm happy to provide free hosting for it (on a small volunteer-run infra) if for some reason you wouldn't know where to host it. I'm always a little sad to see amazing volunteer projects organize on Facebook/Discord ;)
jscipione 2021-08-17 17:06:16 +0000 UTC [ - ]
davidkunz 2021-08-17 08:43:20 +0000 UTC [ - ]
It's astonishing how much you've achieved with SerenityOS. The sheer amount of high-quality YouTube videos explaining the process is unprecedented. Keep up the good work!
als0 2021-08-17 09:29:12 +0000 UTC [ - ]
akling 2021-08-17 09:37:49 +0000 UTC [ - ]
dev_tty01 2021-08-17 14:26:08 +0000 UTC [ - ]
https://en.wikipedia.org/wiki/Fitts%27s_law
Putting the menu bar at the edge of the screen effectively makes it an infinite sized target so it is much easier to target and select. Menus at the top of a window are easily overshot and missed. Travel distance is easily solved by appropriate acceleration in the pointer driver.
jhasse 2021-08-17 15:29:12 +0000 UTC [ - ]
qwerty456127 2021-08-17 15:20:40 +0000 UTC [ - ]
1. Somehow this feels Okay on Mac.
2. You don't actually have to travel the mouse if you use hot keys.
3. The coolest thing the global menu system can give is application-agnostic menu searching.
jhasse 2021-08-17 15:28:21 +0000 UTC [ - ]
qwerty456127 2021-08-17 15:52:44 +0000 UTC [ - ]
qwerty456127 2021-08-18 07:56:53 +0000 UTC [ - ]
ghostpepper 2021-08-18 15:52:48 +0000 UTC [ - ]
qwerty456127 2021-08-18 20:22:33 +0000 UTC [ - ]
Nevertheless, if you require that, why not make the place where the menu is displayed configurable? KDE does - it offers 3 options: the global Mac-style menu (which you can put anywhere, even in the middle of the screen if you want), classic Windows-style menus or "hamburger" menu buttons (utterly inconvenient but I'm still glad there is an option for those who like it).
eloisant 2021-08-17 10:15:45 +0000 UTC [ - ]
messe 2021-08-17 13:32:21 +0000 UTC [ - ]
uuddlrlr 2021-08-17 09:46:16 +0000 UTC [ - ]
aasasd 2021-08-17 14:28:04 +0000 UTC [ - ]
Notably, Microsoft managed to bungle this initially in Windows with the task bar: there was a one-pixel gap between the buttons and the bottom of the screen, so you had to aim for the buttons or to readjust the cursor each time. (Though personally I find the downward motion more awkward anyway, both because the wrist action is weird and because the wrist and the wrist support are in the way.)
maskros 2021-08-17 09:55:16 +0000 UTC [ - ]
schmorptron 2021-08-17 11:14:17 +0000 UTC [ - ]
zibzab 2021-08-17 14:26:51 +0000 UTC [ - ]
But yeah, I miss unity too.
schmorptron 2021-08-17 15:00:05 +0000 UTC [ - ]
This is extra frustrating to me since I absolutely love everything else about the modern Gnome UX, but the refusal to bring in a top menu bar or at least integrate it for powerful apps like gimp, vscode or blender stings and makes it so many times you have 3 top bars wasting vertical space in maximized apps when it could be two or even one.(Activities-button bar, Window title, GIMP menu bar)
Koshkin 2021-08-17 12:49:03 +0000 UTC [ - ]
tyingq 2021-08-17 12:51:26 +0000 UTC [ - ]
It looks like FVWM95 to me, which was supposed to look like Windows 95.
http://fvwm95.sourceforge.net/screenshot-full.gif
pkphilip 2021-08-18 03:46:33 +0000 UTC [ - ]
faraaz98 2021-08-17 11:45:38 +0000 UTC [ - ]
I once tried porting Ruby to Serenity by watching your other porting videos but I got stuck on pthread errors.
Perhaps I'll try again sometime
akling 2021-08-17 19:29:42 +0000 UTC [ - ]
mysterydip 2021-08-17 10:33:15 +0000 UTC [ - ]
AdmiralAsshat 2021-08-17 14:03:10 +0000 UTC [ - ]
[0] https://www.theverge.com/2016/9/7/12838024/apple-iphone-7-pl...
elisee 2021-08-17 16:00:05 +0000 UTC [ - ]
akling 2021-08-17 19:28:06 +0000 UTC [ - ]
sdwvit 2021-08-17 14:16:04 +0000 UTC [ - ]
hulitu 2021-08-17 08:59:13 +0000 UTC [ - ]
akling 2021-08-17 09:03:11 +0000 UTC [ - ]
Note that unlike many other operating systems, SerenityOS aims to be completely free of 3rd party software in the default install. So we build everything ourselves, all the way from the kernel to the web browser. It's great fun!
1. https://github.com/SerenityOS/serenity/tree/master/Ports
mdp2021 2021-08-17 10:43:08 +0000 UTC [ - ]
But not the font - too rounded, too jocular (I must have seen it a million times, but with distance it is not convincing). I remember having remained ecstatic with some thick versions of Futura on the Amiga OS in the mid nineties, maybe you could make some test.
filmroellchen 2021-08-17 18:21:10 +0000 UTC [ - ]
stephen82 2021-08-17 12:51:57 +0000 UTC [ - ]
anthk 2021-08-17 13:19:51 +0000 UTC [ - ]
jcs@ from OpenBSD it's trying to port Serenity OS' GUI to OpenBSD. I would like it. I use CWM, but sometimes using an environment from my teenage days make me feel relaxed.
jjice 2021-08-17 13:44:40 +0000 UTC [ - ]
akling 2021-08-17 19:31:46 +0000 UTC [ - ]
For things that are more open, like API's, I like to look at what mature API's that do what I want to do already look like. And then work backwards from that. :)
Rochus 2021-08-17 11:07:23 +0000 UTC [ - ]
akling 2021-08-17 12:39:18 +0000 UTC [ - ]
While hackish, it does look pretty promising: https://twitter.com/linusgroh/status/1426904775623385095/
Rochus 2021-08-17 13:14:33 +0000 UTC [ - ]
martinbriza 2021-08-17 19:24:25 +0000 UTC [ - ]
However, most of the code I've changed is used in the old buildsystem as well so somebody could possibly reuse what I'm doing in a Qt5 port. I'm not planning to do that though, Qt 6.2 will be perfectly good for my personal and selfish needs. :)
Rochus 2021-08-17 19:39:03 +0000 UTC [ - ]
detaro 2021-08-17 15:48:24 +0000 UTC [ - ]
Rochus 2021-08-17 16:02:30 +0000 UTC [ - ]
Well, according to Stroustrup himself C++98/03 is considered "modern C++" (see e.g. https://www.stroustrup.com/DnE2005.pdf ); and I can confirm from personal experience that C++98 and STL were a big step compared to what we had before. C++11 and later have some advantages, but nothing I couldn't live without (personally I don't consider policy based design the way to go). Actually Qt itself nicely demonstrated how to do perfectly well without e.g. move semantics.
detaro 2021-08-17 16:05:10 +0000 UTC [ - ]
Rochus 2021-08-17 16:23:36 +0000 UTC [ - ]
ncmncm 2021-08-17 17:18:23 +0000 UTC [ - ]
ncmncm 2021-08-17 17:39:07 +0000 UTC [ - ]
C++20 is a wholly more pleasant programming environment than any previous C++. When there is a choice between the old way and the new—which there always is, for backward compatibility—the new way is almost always better.
For some cases, the newer way is better sometimes but not always, e.g. east function return type, with "auto", vs. old-style west. For short functions, deduced return type, i.e. neither one, is often best.
All that said, C++20 coroutines will be much more pleasant to use when thd C++23 library support for them lands.
Rochus 2021-08-17 18:12:38 +0000 UTC [ - ]
Because I'm not obsessed with chasing the latest thing?
ncmncm 2021-08-17 18:30:36 +0000 UTC [ - ]
Cppreference.com is an excellent resource to help you get caught up. BoostCon vids on Youtube are also helpful.
Rochus 2021-08-17 18:46:07 +0000 UTC [ - ]
Oh yes, let your wisdom be poured out upon us. And no, age alone is not relevant to the quality of literature.
jhasse 2021-08-17 15:33:23 +0000 UTC [ - ]
Rochus 2021-08-17 15:43:59 +0000 UTC [ - ]
ogoffart 2021-08-17 16:04:39 +0000 UTC [ - ]
Rochus 2021-08-17 16:15:15 +0000 UTC [ - ]
Well, why would someone want to implement an outdated 90s UI? Apparently there are good reasons.
I have many projects even with Qt4.4 and no need to go to a later Qt version. Qt4 already had everything I ever expected. Qt5 brings a couple of advantages (e.g. better modularization and backend API), but Qt5.4 is good enough for that.
ncmncm 2021-08-17 17:42:38 +0000 UTC [ - ]
Learning is cumulative, so after many days you can look back on much progress.
Rochus 2021-08-17 18:13:26 +0000 UTC [ - ]
This precocious advice is also thanked.
jakearmitage 2021-08-17 18:58:11 +0000 UTC [ - ]
ncmncm 2021-08-17 17:47:27 +0000 UTC [ - ]
I would be happier following if discussion happened on an open protocol like Matrix, rather than the wholly proprietary Discord.
anthk 2021-08-17 12:44:34 +0000 UTC [ - ]
Ah, NH and Frotz are already in ports, cool :D.
Then: https://github.com/BarclayII/slashem-up