11 ms·
Not-a-Linux distro review: SerenityOS is a Unix-y love letter to the ‘90s
- KronisLV 5y agoThe author also has a YouTube channel, where he posts more of the development process: https://www.youtube.com/c/AndreasKling/videos https://www.youtube.com/c/AndreasKling/videos Personally, it's very interesting to see both someone so positive, but also so technically capable. It feels like that's an optimal situation for both building something nice, as well as developing a small and interesting community around it.
- pram 5y agoI love the idea, and I love strong visions, but why not something closer to Motif/CDE? In my mind at least, when I think of 90s workstations, I don't think of Windows 95.
- majewsky 5y agoMore current-day developers are nostalgic for Windows 95/NT than for Motif because of sheer exposure. It's the same for me: Windows NT UIs have a vibe of "good old days" for me, whereas Motif UIs feel like ancient history that is unrelated to me personally.
- qwerty456127 5y agoI've never used a pre-OSX Mac but still find the screenshots lovely. I've even styled my Linux window decorations after MacOS 9.2. I find it an optimal middle between heavily retro and modernly sleek themes.
- the_only_law 5y agoNot a MacOS type UI, but I like WindowsMaker, which tried to emulate NeXTSTEP.
- qwerty456127 5y agoBy the way, what's the difference between WindowMaker and AfterStep?
- anthk 5y agoAfterStep had millions of bells and whistles. And the default theme was too horrible and gaudy like an LSD trip.
- occoder 5y agoTwo pieces of software developed by two different groups of people. I don't believe there's any sharing of code between these projects. WindowMaker tried to recreate the NeXTSTEP UI and succeeded admirably. AfterStep might've started out trying to recreate the NeXTSTEP UI, but it went all kinds of crazy with colors and gradients. Since then its connection to NeXTSTEP has almost entirely been in name only.
- lproven 5y agoTo be pedantic: just the window manager of NeXTStep, not the actual "desktop". (Not that real NeXTStep had a separate "window manager" as such.) The whole UI was a lot more complex, and IMHO, probably the best-looking GUI ever designed. There's an effort to bring it back to life via GNUStep, and as a desktop environment, NEXTSpace: https://github.com/trunkmaster/nextspace https://github.com/trunkmaster/nextspace
- anthk 5y agoIt depends. NT users with Linux (specially Slackware) with FVWM and a bunch of Lesttif/GTK1 tools for sure they are nostalgic on Motif and even Athena. At least a bit.
- qwerty456127 5y agoMotif would probably be a little too much. I always perceived Motif as the ugliest GUI toolkit I've ever seen. Now as I age I started to appreciate retro GUIs and began seeing some charm in Motif but it certainly requires some intentional "will to love". Or maybe it is just an acquired taste like surströmming or something like that. And someone related to the SCO Group can probably patent-troll you if you use it. There are no giants like RedHat and Novel to protect SerenityOS in such an event the way they protect Linux.
- yjftsjthsd-h 5y agoI'm not aware that SCO ever owned patents, just claimed to have copyrights, and Motif has been open source for years.
- qwerty456127 5y ago> Motif has been open source for years. So has Linux, yet SCO didn't hesitate to spend enormous amount of lawyer-hours attacking it. AFAIK even simple scroll bars and double clicks are patented, the patent holders (Microsoft and Apple, IIRC) just have generously allowed the GNU/Linux community to use them.
- isr 5y agoI don't know if you mentioned scrollbars as a rhetorical argument, or literally. But if the latter, then ... (queue rant) ... What? Even scrollbars? Shows just how broken, regressive and anti-innovation the US Patent system is. Its part of software legend how Jobs et al learned of these concepts through early exposure to Smalltalk. There are numerous videos of Jobs himself talking about it (with requisite amounts of awe). I'm sure most people here already know the history. Theres even the interesting tale of how Jobs critiqued the scrolling (he prefered something smoother than line-by-line scrolling), and Dan Ingalls live coded a solution in a few minutes. "Prior art" indeed :)
- skywal_l 5y agoI encourage anyone to look at the code. It's clean C++, you can get into it pretty easily. The author encourage code clarity and the fact that the whole OS (kernel, libraries, userland) is all in the same repo makes it easy to navigate and understand. I think the objective of the author is not to make the most complete, fastest, shiniest OS ever, but have something that works, that's usable, fun to work on and educational to look at.
- 1_player 5y agoI would like to contribute, but modern C++ looks positively alien to me. I am an experienced developer and know C like the back of my hand, any pointer on how to learn to write 2010's C++ without going through the absolute basic tutorials?
- faraaz98 5y agoI haven't worked with c or c++ in a long time but I found the repo so beautifully usable it's great
- ryanianian 5y agoI was in a similar situation to yours when work required me to become a C++17 expert practically overnight. Bjarne (inventor of the language) has a "blue book" that is very good and pretty comprehensive (if a bit dry and academic). I read it cover to cover in a couple days - not really retaining everything but learning what I didn't know. Then I read Scott Meyers's Effective Modern C++ to get up to date on the latest thinking and really nail down some of the finer points. YMMV but this worked well for me to get a good feel for C++ the language. Mastering the STL and/or Boost is a journeyman job, though, as is mastering (any) build system. Of course there is no substitute for firing up the editor and writing real code.
- stephen82 5y agoThere you go https://github.com/AnthonyCalandra/modern-cpp-features https://github.com/AnthonyCalandra/modern-cpp-features
- 5y ago
- throw0101a 5y ago> […] it does borrow a couple of concepts from FreeBSD—its license (2-clause BSD), and a "ports tree" software management system similar to FreeBSD's. If anyone wants a third-party software repository for their OS project, it's worth checking out NetBSD's pkgsrc: * https://en.wikipedia.org/wiki/Pkgsrc https://en.wikipedia.org/wiki/Pkgsrc It's multi-platform (Linux, BSD, macOS, Solaris, AIX, QNX, etc), and so has a lot of infrastructure for portability already set up: * https://www.pkgsrc.org/#index4h1 https://www.pkgsrc.org/#index4h1
- rbanffy 5y ago> It's multi-platform (BSD, macOS, I absolutely love MacPorts. It's packages done right.
- plextoria 5y agopkgsrc support is worked on by a dev: https://github.com/SerenityOS/serenity/pull/9268 https://github.com/SerenityOS/serenity/pull/9268 I also gave a go at cross-compiling pkgsrc for SerenityOS. Will resume if I find some free time in the future.
- boricj 5y agoI'm indeed working on it (meta-issue progress tracking is over there: https://github.com/SerenityOS/serenity/issues/8605 https://github.com/SerenityOS/serenity/issues/8605). However, bootstrapping pkgsrc is a stressful test of reliability, stability and POSIX-compliance for any operating system, let alone a hobbyist one. I've yet to have a pkgsrc bootstrap finish successfully without hitting a bug, deadlock, coredump, kernel panic or some combination thereof. It's like repeatedly stubbing one's toe on a sharp POSIX edge. That's not counting actually building packages inside SerenityOS (pkgsrc doesn't support the kind of cross-compilation we'd need to build packages on a Linux host for a SerenityOS target), which will probably expose lots of other bugs, race conditions and limitations.
- squarefoot 5y agoCompiled and (admittedly briefly) tested yesterday. It's small, and fast although run virtualized. There are some quirks here and there, but for an OS in its infancy it's normal. Not an easy task, however I'd like one day to see it ported to ARM platforms. All those small and cheap Pi-like boards or TV boxes seem just the right platforms for it.
- klaussilveira 5y agoNot related, but related: I could definitely use a consistent, coherent, pixel-perfect Windows 95 theme package for Linux. QT, GTK, DE does not really matter, as long as they blend in properly. Something like the adapta-project.
- anthk 5y agoCheck Chicago95
- klaussilveira 5y agoThe problem with Chicago 95 is that it is not consistent. Check the padding/margin on these buttons: https://raw.githubusercontent.com/grassmunk/Chicago95/master/Screenshots/lock_screen.png https://raw.githubusercontent.com/grassmunk/Chicago95/master... Now compare to these: https://raw.githubusercontent.com/grassmunk/Chicago95/master/Screenshots/Desktop4.png https://raw.githubusercontent.com/grassmunk/Chicago95/master... Or here: https://raw.githubusercontent.com/grassmunk/Chicago95/master/Screenshots/Desktop1.png https://raw.githubusercontent.com/grassmunk/Chicago95/master... Everything is off. Compare to the real thing: https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F4.bp.blogspot.com%2F-pVJ1V1OwSxI%2FUPmCPxdGSUI%2FAAAAAAAAANo%2F8RiXc0uIi20%2Fs1600%2FMS-Windows-95.jpg&f=1&nofb=1 https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2F4... https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Farticles-images.sftcdn.net%2Fwp-content%2Fuploads%2Fsites%2F3%2F2009%2F12%2Fwindowsnt.gif&f=1&nofb=1 https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2F... Or compare to SerenityOS. That's good UI work.
- theandrewbailey 5y agoThose Chicago95 screenshots might be a bit out of date. Some of the systems I use have the latest Chicago95 on them, and it either doesn't bother me, or I'm so focused on doing things in applications (or on anything but the UI theme) that it doesn't bother me.
- qwerty456127 5y agoI also wouldn't mind (and would certainly donate to) a "consistent, coherent, pixel-perfect" (and also kept up-to-date to be easily installable on recent distros, covering Qt, GTK and GTK3) themes imitating the actual SerenityOS, as well as Windows 98 (not a radical Windows 95 fan), Windows XP, Windows Vista (it was shitty but pretty), MacOS 9.2, QNX6 Photon, Haiku and Swing[1]. Perhaps even Windows 3.11 (OMG I loved its Control Panel icons). And I've once seen a picture some other exotic retro UI which I found beautiful but I could never find it again and don't know which platform it was (I thought it was some modern Amiga but apparently it wasn't, some sort of Unix perhaps, but no Unix screenshots I found actually looked like that). Needless to say the themes would have to be extended to accommodate the features of the relevant toolkits like GTK3 complex window titles and KDE's optional always-on-top and always-on-bottom buttons (I actually want every stacking window manager to have these two, I use both of them a lot). And I would also want these for Windows 10 (and 11 obviously), not just Linux. Themes for some actual apps (e.g. Firefox) also needed. I wonder if there already is enough of aging millennials appreciating retro GUIs to form a market. [1] https://docs.oracle.com/cd/E37069_01/html/E37073/figures/ide-profiling-tools.png https://docs.oracle.com/cd/E37069_01/html/E37073/figures/ide...
- bla3 5y agoLots of discussion of SerenityOS yesterday on https://news.ycombinator.com/item?id=28206840 https://news.ycombinator.com/item?id=28206840 too.
- qwerty456127 5y agoWhat begs to emerge in the SerenityOS world is a form-centric visual RAD IDE like Delphi/VisualBasic/VisualStudio-WinForms. Powered by a higher-level (than C++) language preferably. And high-level (automatic memory management, first-class Unicode strings) languages don't have to be heavy, VisualBasic did quite well on 486s. But I don't actually mind C++, I enjoyed Borland C++ Builder (a Delphi clone I used because I never learned Pascal) and QNX PhAB and had no problem with C++ (but I didn't really enjoy MS VisualC++ MFC which required you to code the UI manually). I hope the actual GUI toolkit is engineered with potential support for visual designers in mind. It is also interesting to note how well do legacy Windows controls integrate with the system so old Windows apps running on modern Windows versions enjoy seamless support of modern user IO facilities which didn't exist when they were born (autocompletion, spell checking, dictation, screen reading, etc).
- trashburger 5y agoThere used to be a visual form builder. Nobody used it to build applications, so it was eventually removed. Nowadays, GUI stuff for most applications are written in the GML language, which is Serenity-specific. You can look through the source code to see examples.
- qwerty456127 5y agoWhy did it have to be removed? Why not just put it in maintenance mode without adding new features if there is not enough demand?
- akling 5y agoI built it, believing it was going to be useful. In the end, it was not. There's no point in keeping unused features around, since the system is just for ourselves. Since then, we've built a markup language for interface design (GML) which has made GUI development significantly easier, so that's what we're focusing on instead. If someone wants to build a visual design tool on top of GML, they are obviously free to do so, but as with everything else in SerenityOS, people work on what they themselves are interested in. :)
- rbanffy 5y ago> "we imported four or five C standard library functions from NetBSD or something like that. But those were gotten rid of over time. We're free of third-party code now, with the exception of the build process." I'm scared of whatever is their crypto support...
- breakfastduck 5y agoGo fix it then. That's the point of the project. Or are you just throwing out comments without even looking at it?
- rbanffy 5y agoI fix the software I use. Random commenters are not entitled my time and attention. I've learned to avoid rolling out my own crypto and suggest others learn it too. One shouldn't be proud of reinventing the wheel unless it's significantly better wheel. So, is it? edit: they use libtls, so I guess they aren't "free" from third party code after all.
- tristan957 5y agoThat is not the libtls you are thinking of. That is a homemade library.
- somethingor 5y agoSerenity’s LibTLS is Serenity-specific code.
- wander_homer 5y agoWhat kind of attitude is that? Why shouldn't someone be proud of themselves, when they manage to implement a crypto library? It's not like they're asking you or anyone else to use it with sensitive data and they're not pretending it's secure or on par with others. The whole OS is a learning process for almost everyone involved and they have every right to feel proud of every little step they take. Like do you think the best in class crypto libraries out there just popped into existence or their authors wrote the perfect code on their first try? All of them were inferior wheels at one point, and all of them made mistakes and learned from them.
- nickelcitymario 5y agoI'm impressed by everything about this project, but the idea of re-writing everything from scratch would seem to doom this project to obscurity. No? How can any open-source project compete if it doesn't lean on other open-source projects? Am I missing something? This approach seems to guarantee that they can do a handful of things better than anyone else (because they control the whole stack), but not enough things to ever be truly complete OS for any given market segment. Unless 1000 developers fall in love and choose to participate and compensate for the absence of other OS code, I don't see how this can grow sustainably. I'd love to be wrong, though.
- lawl 5y ago> How can any open-source project compete if it doesn't lean on other open-source projects? Am I missing something? It doesn't want to compete. It's a system for them, by them, based on the things they like.
- Deukhoofd 5y agoYou'd be surprised by how many developers fell in love and chose to participate. https://github.com/SerenityOS/serenity/pulse/monthly https://github.com/SerenityOS/serenity/pulse/monthly
- michaelgrafl 5y agoThis project feels more like a lover-letter to me than an attempt to compete against other operating systems. I really dig it, although I don't expect to ever use it productively. And I love that the development is documented on YouTube.
- Santosh83 5y agoFrom what I understand, they are porting some established software like Qt and GCC, and presumably if there is enough interest and volunteers, more applications. However they also aim to write a core set of apps specially for Serenity from scratch, so it seems like the best of both worlds to me: a set of native, integrated programs designed to showcase the OS's specialities, with ports of popular FOSS programs, and since Serenity does aim to be "Unix-like", it shouldn't be too hard. The incumbents in the field are absolutely overwhelming in their existing functionality, which makes it an extremely steep slope to climb for an upstart, unless they aim to fulfil a specialised niche. Linux struggled for years with lack of drivers. That's always the one of the chief roadblocks. If the OS can drive a broad range of hardware, then automatically users and ports of software will happen, but if it can only recognise a few generic devices then it will remain hobbyist. But thanks to the complexity of modern hardware, the task of even adapting Linux's drivers would be an enormous undertaking.
- tuckerpo 5y ago: ^ )
- severak_cz 5y agoI think that SerenityOS would benefit from porting to something like RaspberryPi. That would give them usable hardware support.
- breakfastduck 5y agoAs Andreas himself routinely says in Q&As - If you're interested in it then build it. This is an OS for developers. They don't have a 'plan' for hardware support. They work on what each individual developer is interested in working on. If you want to add compatibility with the pi then fill your boots!
- severak_cz 5y agoI know. However my C++ skills are almost non existent. :-( But I keep to throw this idea over over. Maybe someone adopt it one day (and I will definitely beta test that later).
- breakfastduck 5y agoAgain, you're missing the whole point to a cringeworthy degree. They dont want people 'throwing ideas' over. Anyone can do this. Its an OS where people build what they want. Frankly, build it or shut up.
- klaussilveira 5y agoIt's not just nostalgia, but good, efficient design work: https://twitter.com/tuomassalo/status/978717292023500805 https://twitter.com/tuomassalo/status/978717292023500805
- NoGravitas 5y ago"If this desktop doesn't look hauntingly familiar to you, you either didn't live through the '90s, or perhaps just didn't live through them right." In fact, I used OS/2 through the early '90s, and Linux through the late '90s and early 2000s, so I missed this era altogether, and I don't think I lost anything through it. It wasn't until 2006 I had a job that required Windows, so I didn't use anything between 3.11 and XP.
- qwerty456127 5y agoI've taken a look at the screenshots and discovered the fact SerenityOS supports theming. This makes me want to share my opinion on this: big light elements in the dark theme (like the display frame in the display settings) and big dark elements in the light theme (like the terminal) are annoying (in addition dark terminal also can be very hard to read when the sun shines straight into your display). Although both of the examples I have given look this way because this is the classic way for them to look, I'd love to see an option to automatically style everything (the terminal specifically, the display settings decoration doesn't matter much but it can also be fixed just to make it perfect) them in accordance with the system theme gamma. In fact this is why I don't use (on Linux and Windows) dark themes actually: because there are many apps which don't support dark themes and look like huge white bulbs when your system is dark (and most of the apps which do support dark themes still require manual re-configuration every morning/evening instead of just complying to the OS-level switch).
- qwerty456127 5y agoBy the way I believe many retro-lovers would also appreciate a 2-panel commander-style file manager. And as I always thought it doesn't actually have to be a separate app. It could be enough to make a standard file browser window aware of a the nearmost window of the same class and send files there on F5/F6 press.
- lproven 5y agoI moved from the UK to the Czech Republic about 7 years ago. To my bewilderment, almost everyone here seems to prefer what I have learned is strictly called an "orthodox file manager". One job I had, in a Windows-only office, had a site licence for Total Commander: https://www.ghisler.com/ https://www.ghisler.com/ My flatmate bought his own copy. He mostly runs pirated Windows but Total Commander he sees as so essential he paid for it. I don't get it -- I don't hate them but I thought they went away about 25 years ago -- but not everywhere.
- qwerty456127 5y ago> Porting a modern browser like Firefox or Chromium to an entirely new operating system is arguably as difficult as writing one from scratch Sadly this sounds quite obvious. But, out of curiosity, does it have to be? Let's imagine we actually write a modern web browser from scratch. Can't we design it the way it would be easy to port to other OSes because it would implement all the actual HTML and CSS features in a platform-independent logic layer on top of a portable renderer layer? Remember how many platforms did the original Opera support back in the days. I remember running it natively on QNX. And it was the most modern and standard-compliant browser.
- perryizgr8 5y agoThis OS is written entirely in C++. The interesting thing is that I couldn't find a single class! I love modern C++.
- lproven 5y agoI used Windows 95, I used xNix from SCO Xenix to AIX to Solaris to Linux to macOS. I don't really get the nostalgia for it, though. I mean, modern versions of these OSes are still around. But there has been AtheOS and Syllable, SkyOS, HelenOS, Redox OS, Genode, now Fuschia. All Unixy, all with Unixy shells, all to me broadly similar in concept. I wonder why people don't attempt to clone or revive other 1990s OSes. For instance, where is the 3rd party clone of classic MacOS? Or of Psion EPOC16 or EPOC32 or Symbian? Those had tens of millions of users, but there's not even a current-ish Classic-MacOS-finder-inspired Linux desktop. I think I remember one called Sparta, but there seems to be no trace of it now.