16 ms·
SerenityOS – a graphical Unix-like OS for x86, with 90s aesthetics
- poisonarena 7y ago34 year old here.. about every year I set up a whole OS 9 emulation deal because of my obsession with Mac OS 9, I dont know if I am sad and dwelling on the past, but I just loved that OS so much and keep trying to get back to it and I know I am not alone. I love to see projects like these
- asark 7y agoScreenshots of 90s operating systems are so relaxing. I miss interfaces that looked like interfaces, and distinct from content.
- seanvk 7y agoBeOS is another one that comes to mind.
- asark 7y agoThat BeOS didn't become a serious, long-term contender in the desktop OS market is a sure sign we're not living in the best of all possible worlds.
- coldacid 7y agoThat Amiga never achieved any success outside of niche SFX markets is a sure sign we're not living in the best of all possible worlds. (Although that's more 80s than 90s.)
- AnIdiotOnTheNet 7y agoThere's a timeline out there where WindowMaker/GNUStep became the dominant desktop for Linux too. In many ways, I think the state of modern personal computing is evidence we are, in fact, in the darkest possible timeline for it.
- martinflack 7y agoOS/2 for me.
- waz0wski 7y agoIf you have not seen it, check out the BeOS-inspired Haiku https://www.haiku-os.org/ https://www.haiku-os.org/
- santafe 7y agohttps://www.haiku-os.org/files/get-haiku/ported-software.png https://www.haiku-os.org/files/get-haiku/ported-software.png
- billfruit 7y agoI think the early to mid 2000s Gnome had that same focus on full functionality presented with simplicity, rarely seen in today's interfaces.
- insulanus 7y agoA lot of good stuff happened on OS 9. There wasn't a lot of extra cruft, because programmers had to use the whole machine to implement their vision.
- city41 7y agoI loved the interface dearly. I miss MacOS classic and feel OSX is a step backwards in many ways, UX wise. But I don’t miss how primitive the OS itself was. Tracking down extension conflicts? Manually allocating memory? Cooperative multitasking? I’ll pass on those.
- tbe 7y agoThat's why Rhapsody was absolute peak for me. Haiku might beat it, though I'm probably stuck on Linux anyway.
- rvense 7y agoI'm more of a System 7 guy, but I still have two G4 towers, a G3 Powerbook, as well as some beige 68ks. They're still useful for making music and get used for that occasionally, but I honestly love just booting them up and using the Finder. I wish I could still use them for communication somehow.
- anthk_ 7y ago>I wish I could still use them for communication somehow. Bitlbee + IRC client.
- eismcc 7y agoPrevious discussion on HN: https://news.ycombinator.com/item?id=19537807 https://news.ycombinator.com/item?id=19537807
- bradenb 7y agoThis looks amazing. I love the aesthetic. I wish I could bring myself to commit to such a large hobby project.
- akling 7y agoHello friends, author here! Fun to see my project on HN again. If you would like to see the system in action, I did a demo video in March[1] and one in April[2]. I’m happy to answer any questions you might have about the system. I’m not an expert on operating systems, but I can be pretty productive :) [1] https://youtu.be/hE52D-zbX3g https://youtu.be/hE52D-zbX3g [2] https://youtu.be/RBr5If8GrM4 https://youtu.be/RBr5If8GrM4
- tbrock 7y agoI honestly cannot believe the massive scope of this project, it’s astonishing. What an accomplishment! You singlehandedly created something that took many programmers many decades to build.
- newsbinator 7y ago10% of this is knowing in advance what UI/UX paradigms you're matching/mimicking. The original developers had to come up with the concept of, say, a taskbar from scratch. They understood it has to run separately from other parts of the OS in case of crashes, it should support icons that are references to the same icons that windows have, etc. But they were also limited by the resources of their day, and had to get clever about resource allocation. That's extremely time-consuming. But that said, 90% of this project is simply a very good creator, being incredibly productive. The mythical 100x programmer isn't always a myth. I'm in awe.
- akling 7y agoYou are absolutely right about the benefits of mimicking existing UI paradigms. It saves so much time already knowing basically how I want things to look and work. And not having to worry as much about resources as people did in the past is a huge load off. (Although I do all my development with 128MB of RAM or less, because I enjoy that sort of challenge..) Serenity is an unapologetic remix/mash-up of all the things I like in software. Not just visually, but also code-wise. If you look into the sources, you'll find C++ heavily inspired by Qt and WebKit.
- Koshkin 7y agoAlso, a good example of a clean modern C++ code.
- humanrebar 7y agoMostly. A good portion of the AK subdirectory should be replaced with standard and/or boost functionality, though: https://github.com/SerenityOS/serenity/tree/9153666e72effdf56ce19332f953caff7d173a7e/AK https://github.com/SerenityOS/serenity/tree/9153666e72effdf5...
- olliej 7y agoPresumably the intent is not to depend on boost, but rather only standardized parts of the language. Also using something like boost ties you to a specific version of boost due to the wonders of c++ abi - your OS libraries can’t expose anything that explicitly or implicitly includes things that aren’t ABI stable. (I’m sure kling is already requiring 100% stable abi :) )
- humanrebar 7y agoFair, but I was replying to this being a good example of modern C++. It's atypical that implementing your own vector and string is even a good idea, let alone exemplary.
- olliej 7y agoThe C++ stdlib versions of vectors have different design goals, including a bunch of ABI constraints for very old code (things like the vector<char> specializations). Likewise there are questionable spec behaviors like unordered_map that specifies suboptimal implementation.
- olliej 7y agoFollow on thought - what happens for operator new[]() in kernel space? Does it depend on a malloc (vs. traditional kmalloc)?
- jasoneckert 7y agoI'm somewhat disappointed that they didn't call it SerenityNOW...
- awifstrand 7y agoAn Operating System for The Rest of Us.
- 0815test 7y agoLooks a lot like Linux with a fvwm95 interface on top. I mean, it's always great and so exciting to see something totally new being created from scratch! But you don't actually need to switch to some entirely homegrown, untested kernel for that 1990s UI fix! ;-)
- coldacid 7y agoOne could always also throw together a virtual machine for running Windows 3.1 like I keep doing.
- deleted 7y ago[deleted]
- Jaruzel 7y agoFor most non-technical people, a Windows 3.1 type GUI is all they need.
- Crinus 7y agoUntil they maximize one of the program group windows and suddenly "where are all my programs?" :-P
- AnIdiotOnTheNet 7y agoStop this. It's condescending and part of the reason no one like tech people. It's also one of the core reasons the Linux Desktop never took off: "you don't need that, you just need (simple usecase that I envisioned because it was easy)."
- Jaruzel 7y agoReally? I'd argue that Android and iOS have proven that the simpler the GUI, the easier it is for the masses to use them. Imagine if working a car was as complicated as your average desktop OS. There would be a lot less people driving that's for sure.
- sys_64738 7y agoLooks like Windows 95.
- mixmastamyk 7y agoWhich looks like nextstep.
- oblio 7y agoDoes it, though? Windows 95: https://en.wikipedia.org/wiki/Windows_95#/media/File:Windows_95_at_first_run.png https://en.wikipedia.org/wiki/Windows_95#/media/File:Windows... vs Nextstep: https://en.wikipedia.org/wiki/NeXTSTEP#/media/File:NeXTSTEP_desktop.png https://en.wikipedia.org/wiki/NeXTSTEP#/media/File:NeXTSTEP_... Yeah they're both light grey, but other than that, they don't really look similar to me...
- ch_sm 7y agoWhen comparing Windows 95 to other Operating Systems of its era (Windows 3.1, Mac OS 7.1/7.5 or OS/2) it becomes more apparent that they must have gotten inspired by NeXTSTEP.
- mixmastamyk 7y agoYes, grey embossed boxes everywhere, taskbar/list, [x] button top right to close window. Don't let the different apps fool you.
- aasasd 7y agoPretty sure Motif was the originator of the 90s era concrete slabs look. “Initially released in July 1989.” https://en.wikipedia.org/wiki/Motif_(software) https://en.wikipedia.org/wiki/Motif_(software)
- mixmastamyk 7y agoNextstep and 95 both had a thin ~1px emboss depth. Also note the window decorations. Windows 3.1 looked more like Motif.
- Sendotsh 7y agoI love the idea of a modern OS with the 90s function-over-form aesthetic. There’s immense beauty for me in function, and the 90s was without a doubt the peak of OS design.
- davidw 7y ago> and the 90s was without a doubt the peak of OS design. reply Also, and surely not at all correlated with my youth, it was the peak of good music.
- ianai 7y ago90s kid, you’re both wrong. OSX was a forreal big deal. Would google or Apple have built smartphones on FOSS OSes without an OSX? Music has definitely blown up and gone full post modern though. You can probably get an endless stream of whatever sound floats your boat for 10$/ month. Or free.
- forgotmypw3 7y agoOS X Server 1.0, which I agree is an amazing OS, came out in 1999. It was based on NeXTSTEP, first released in 1988 and developed up to 2000.
- RandomGuyDTB 7y agoI'll never stop buying CDs or tapes. No ads, no WiFi needed, and when I'm playing them on my stereo they don't use any processing power. Plus I can rip the FLACs very easily.
- jessaustin 7y agoAlso, no year since 1999 has surpassed it for quality and variety of movies.
- reaperducer 7y agoI think this is an impressive achievement, and certainly something I could never do. But I'm a little disappointed in the state of desktop operating systems these days. I don't see any innovation. Every OS is just splashing chrome on the same WIMP paradigm that's been available to consumers for 35 years. Maybe I'm looking for the equivalent of a flying car, but I wish someone would come up with an OS, or even just an OS feature that makes people say "wow!" Is there a college lab or a research department or some other place where people are trying really different things?
- brodsky 7y agoI know what you mean. but I'm also not sure what innovation can be expected from something as utilitarian as an OS. Do you have any ideas of what you'd want to see?
- nitrogen 7y agoBoot up an old Linux distro from around 2001 and compare WindowMaker, AfterStep, Fluxbox, KDE, Gnome, Enlightenment, and half a dozen others. Compare those to fictional UIs seen in movies, Hypercard, visual development systems like the ancient Klik n Play or modern Scratch or MaxMSP, etc. Learn about OLE (object linking and embedding) and document-centric vs. app-centric computing. Think about all the different ways data can flow between components of a system and how those flows can be grouped differently. Look at alt and historic OSes like Be, TempleOS, SunOS, IRIX, DOS, VMS, OS/2, old UIs like Dosshell, Commander. Look at tablets vs phones vs desktops vs. game consoles vs appliances. Remember that bytes and bits and addresses and instructions and files and programs don't necessarily have to be the fundamental units of an OS. Then, after all that, come back and tell us that a modern desktop is the utilitarian endgame of OS innovation :).
- somatic 7y agoThis strikes me as profound and I would like to hear more. Do you have other writings? Are there any books about this? Do you think about this often?
- nonbirithm 7y agoI love the aesthetic of 90's/00's desktop interfaces and use bb4win and openbox to recreate the look. It's too bad everything is so much flatter and antialiased in most recent operating systems. I purposely got myself a lower resolution monitor (in 4:3) so the bitmapped fonts I use are easier to see. I wonder if there's a WM that can mimic the look of old versions of GNOME/KDE more closely.
- educomments 7y agoopenbox + fbpanel can approximate early gnome pretty closely with a tiny bit of work.
- gjs278 7y agoI prefer fluxbox but that work too rox filer for the file manager and shortcuts and it’s pretty nice
- Crinus 7y ago> I purposely got myself a lower resolution monitor (in 4:3) so the bitmapped fonts I use are easier to see. Unless you use a CRT, i'd recommend to get a 1366x768 monitor with a VA panel. The low DPI makes pixels look crisp, if you game you'll get great performance even with low end hardware while you'll be able to play a lot of older games in a natively supported resolution (1024x768, centered) without UI issues and (the reason for VA) you get deep blacks (not as deep as OLED but certainly better than the washed out garbage you get with IPS panels) which are great on both movies and games. The main negative of VA is low refresh, but unless you are playing competitive games you should be fine. If you use a CRT, then carry on. Although note that those guns wont live forever and they do wear out. I use mine only on the occasion i want to play some old 2D game that simply doesn't work with anything other than its "native" resolution.
- RandomGuyDTB 7y agoCRT rot... the grim reaper lurking behind the few remaining good monitors. I wish someone would make high-quality CRTs again, every time I use my C1701 I feel like I'm slowly desecrating an artifact- that I shouldn't be so shamelessly using such a limited resource. I suppose there's a chance I'll be able to keep up using CRTs until I die but I really am not ready to switch my old setup to an LCD.
- meddlepal 7y agoThis is awesome. Love the 90s aesthetic!
- userbinator 7y agoRoughly speaking, the goal is a marriage between the aesthetic of late-1990s productivity software and the power-user accessibility of late-2000s nix.* In other words, a Windows GUI with a Unix-like CLI? That's something I can certainly agree with --- Windows has traditionally been very lacking with its CLI, while the Unix-ish systems (including Linux) seem to be quite fragmented and awkward at GUIs. I also thought the terminal font looked familiar, then realised it's either the same as or a very close version of the "misc-fixed" fonts[1] that I use in my terminals and for editing plaintext (including source code) --- it even has the slashed zero that I added to mine, and which the original fonts lacked. The general UI font looks like a proportional version of it, which I've honestly never seen before but think it's quite pleasing too. [1] https://en.wikipedia.org/wiki/Fixed_(typeface) https://en.wikipedia.org/wiki/Fixed_(typeface)
- akling 7y agoTotally agree about Windows GUI's and Unix CLI's. Sprinkle some MacOS on there and you have my vision for Serenity. All the fonts are hand-bitmapped by me, using the included FontEditor application. I was trying to construct the imaginary love-child of Tahoma and Fixed, so you are definitely on the right track there.
- sbuk 7y agoSurely OpenSTEP does this?
- deleted 7y ago[deleted]
- toothandtail 7y agohttps://en.wikipedia.org/wiki/NeXTSTEP https://en.wikipedia.org/wiki/NeXTSTEP
- valec 7y agodid you post about this on /g/? I could’ve sworn i’ve seen something like this posted in a dpt or something in the past few months
- joshenders 7y agoGet Actual Pixel Artists To Design The UI
- akling 7y agoI don't have the money to spend on that sort of thing. I do have a dreamer Patreon for the project, but it's all very modest :) I'll continue iterating on the look though. Here's a more recent demo that shows a bunch of pixel-related improvements: https://www.youtube.com/watch?v=pS56tlXFmEk https://www.youtube.com/watch?v=pS56tlXFmEk
- spronkey 7y agoMay I suggest using the Windows 2000 warm grey instead of the Windows 95 grey? It does a lot to make the UI feel less dark
- akling 7y agoThat's not a bad idea! I spend a lot of time hacking at night, with my monitor in "night mode" (warmer colors), so I didn't think much about how cold they look in the daylight. I should eventually add color theming so this can be done from a single place, and then I'll be sure to add a warmer option, too. And probably make it the default after I see how nice it looks :)
- spronkey 7y agoEven better, haha! Seriously impressive work though - one of these projects that show just how absurdly bloated and slow mainstream OS development has become. Also for reference for those unfamiliar with the difference in greys: http://actsofvolition.com/images/screenshots/Display-95-through-XP.png http://actsofvolition.com/images/screenshots/Display-95-thro...
- fenwick67 7y agoTo make art is to be an artist.
- ben165 7y agoInteresting project. How far are you away from including a native compiler/assembler?
- akling 7y agoGNU's binutils and GCC have both been ported to Serenity and work right now. So not very far away at all! I got it working properly ~1 month ago, here's a video I posted that day: https://www.youtube.com/watch?v=lO4XBggjZGk https://www.youtube.com/watch?v=lO4XBggjZGk (A lot of performance work followed after that recording. There's still a lot to do, but the 30 second compile time is now down to ~2.5 seconds. 80% of the speedup was from implementing DMA disk transfers, and the other 20% from a faster malloc().)
- sscarduzio 7y agoI love the retro look and feel, would be cool to have something like this as a theme or window manager for (modern) linux.
- sfUsr 7y agoSerenity now!
- logicprog 7y agoI would so love to contribute to this! I love the layout, aesthetic, and the approach to the internals that you've taken; I would use this in a heartbeat to be honest. Unfortunately although I know C++ I don't really know much about OSdev. If there's any way I can help, I have a few months of free time (summer break) that I'm looking to fill!
- akling 7y agoThere’s so much more to operating systems than what people usually think of as “OS dev”. Wanna write a Tetris game for an obscure new OS? Here’s your chance! How about a bitmap editor (like MS Paint)? Maybe some cool graphical effect demos? Perhaps you’d like to write a telnet client? An FTP client? Or a disk usage visualization tool! Just look at all the stuff that comes with an OS like Win2K or your average Linux distro. :)
- logicprog 7y agoThat's very true! Just starting out working on your project with the File Manager showed me that there's a lot I can contribute. My short term goal is to make a settings manager.
- initself 7y agoWhy "unix-like" and not just Linux underneath, with the (really) cool 90s productivity software on top?
- andrekandre 7y agoprobably because that’s just not as fun, i would imagine a huge part of it is implementing everything from the low level to the high, and seeing how it all works together ^_^
- akling 7y agoCorrect! It's fun to control the whole stack. And while I've been programming on POSIX systems for over 10 years, I've learned more about POSIX programming in the last year than in all the preceding years. There's no better way to understand something than to implement it. And staying within a Unix-y paradigm means that if some part(s) become too good, they can be semi-easily ripped out and turned into portable libraries/programs instead.
- TBF-RnD 7y agoKinda broke right now but consider his patreon the world needs more of this!!
- akling 7y agoThank you for shouting out my Patreon![1] I'm never going to ask anyone for money, but I'm extremely grateful that some people have chosen to support this project financially. The only "goal" I have set up on Patreon is hitting 1000 supporters. If things ever get that crazy, I'll stop whatever I'm doing and focus only on Serenity. For now that's just a fun daydream though :) [1] https://www.patreon.com/serenityos https://www.patreon.com/serenityos
- repolfx 7y agoIf you don't mind me asking, how do you support yourself and why did you choose to dedicate your time to this project?
- akling 7y agoSure, I don't mind. I've been living off of savings for a while, trying to figure out what to do with myself. Savings don't last forever though, so I'm actually starting a programming job next week. I originally thought I would learn something new instead of programming, but then I started working on this and got caught up in all the fun. It wasn't a "business decision" of any kind :)
- agumonkey 7y agoCan't say that the screenshot made me feel at peace. It seems like a sweet spot for non newb usages.
- WC3w6pXxgGd 7y agoWhat would be the benefit of using this over a basic linux distro + GUI?
- Waterluvian 7y agoI've been conditioned to think crashy windows 95 when I see that aesthetic. Which is unfair. Because it's really quite clean and straightforward.
- xvilka 7y agoCDE project also should move from SourceForge to GitHub or GitLab to gain better visibility, and more contributors.
- PunksATawnyFill 7y agoSure the aesthetic is old-school, but look how much more informative a proper GUI is. You can tell immediately which item in the task bar is active. "Flat" UI is both lazy and an overreaction to the ridiculous skeuomorphism that plagued us years ago.
- Kuraj 7y ago> "Flat" UI is both lazy and an overreaction to the ridiculous skeuomorphism that plagued us years ago. I like to think that by trial and error we will eventually get back there. Microsoft is already moving away from the flat aesthetic to a more "materialish" design.
- 8lall0 7y agoJoining the best of both worlds, i love it. Kudos :)
- _bspline 7y ago>A graphical OS for x86, with 90s aesthetics >90s >aesthetics wat?
- AnIdiotOnTheNet 7y agoYes. Simplicity and function over form. 90s buttons looked like buttons, for instance. And theming was a simple matter of changing your fonts and colors. Windows 95 didn't need a special 'dark mode' supported by the OS, because you just changed your colors in the GUI tool for changing colors and fonts and you were done. Modern GUIs are ridiculous and stupid and overcomplicated. Much like most of modern computing.
- TurkTurkleton 7y ago> Windows 95 didn't need a special 'dark mode' supported by the OS, because you just changed your colors in the GUI tool for changing colors and fonts and you were done. You're over-romanticizing the past. There were plenty of apps even in the Windows 95 era that drew their own widgets and only half-respected the colors you set in the control panel, and that consequently looked like pureed ass if you changed the colors from the default.
- AnIdiotOnTheNet 7y agoYes, and just like today that was stupid. It was just a lot less common than today's Electron bullshit. Hell, there were games that used native widgets. One of the big complaints about Java used to be that it didn't use native widgets and consequently looked out of place, but nowadays that is basically every application. It's ridiculous.
- apotatopot 7y agocouldn't you just contribute to lxde or xfce or something?
- hardbop200 7y agoAwesome work! Just curious: Why did you choose to take on the entire OS instead of building on top of an existing distro as a base?
- akling 7y agoThanks hardbop200! Partly it's because I'm the kind of person who just loves hacking on tall stacks. Before this, I was doing browsers for many years, which has many traits in common with operating systems. Speaking more emotionally, I feel like *nix used to be a lot of fun and full of hacker's spirit, and it's just not like that anymore. Things aren't simple anymore, and they can't easily be taken apart and understood in an evening, like they used to. So I figured I can just make my own then, just the way I like it :)
- nickpsecurity 7y agoIf you like understandable tools, you might enjoy some of the projects the bootstrapping crowd posted to the page below. It's not very organized since it was just a dump site for work that a small crowd of people were taking inspiration from. https://bootstrapping.miraheze.org/wiki/Main_Page https://bootstrapping.miraheze.org/wiki/Main_Page
- deleted 7y ago[deleted]
- pcdoodle 7y agoDude, the "VB6 like" window builder is amazing. The whole process of put button on form, double click button to put code inside button is what got me started in programming. Will you have something like this?
- akling 7y agoHi pcdoodle. I am also very fond of that style of programming, and it's something I'd like to explore down the line. In the immediate future though, the visual builder tool is limited to generating C++ that you then glue together with the rest of your program. But one day :)