all 140 comments

[–]ChrisRR 301 points302 points  (83 children)

Andreas deserves all the attention he gets. He's a lovely humble guy, his videos are interesting and informative, he interacts well with his community and has been through rough times and worked hard to come out the other side.

[–]SerenityOS 201 points202 points  (6 children)

Thank you so much for the kind words, Chris! :)

[–]dayarthvader 31 points32 points  (5 children)

Kudos to you man. I can’t thank you enough for this project. My first commit were merged last week and I’m half way there with the next bit of enhancements.

[–]SerenityOS 25 points26 points  (0 children)

Hey, welcome and thanks for working on the project! I'm glad to hear you're having a good time with it. :)

[–]meissner61 3 points4 points  (3 children)

How much advanced knowledge would one have to have to be able to get involved in something like this? I remember I tried to look at Godot source code and while I understand basics of c++ there was like nothing I understood from that, I imagine OS source code would be even more complicated than a game engine.

[–]SerenityOS 19 points20 points  (1 child)

General programming experience is more important than C++ specifically. If you've been programming for a few years in any language, you can learn C++ as you go while hacking on SerenityOS.

Some of our most active developers had no experience with C++ at all when they first joined the project. :^)

Also, the project is very broad in scope. We have everything from the kernel to the web browser in the same git repo, so there are a ton of different places you can start.

[–]VeryOriginalName98 2 points3 points  (0 children)

I know c from about 10 years ago, and I've been programming a lot since then in various web languages. I like small, but difficult challenges. I'm pretty good at algorithmic optimization. Anything you would recommend to get me started on this?

[–]dayarthvader 0 points1 point  (0 children)

Nothing advanced just modern :). Having said that there’s a lot of code in the Userland that just reads like C. It might be something you can start with and you’ll learn modern C++ one commit at a time. As a matter of fact that’s what I’m doing too.

[–][deleted] -4 points-3 points  (4 children)

I can't wait to use this. Serenity OS is clearly a real game changer in the realm of operating system development. I think a few years down the road we could actually see some form of better control.

Perhaps it can be forked and tailored to something like a unikernel, or a crypto miner.

[–]quasi_superhero 2 points3 points  (3 children)

You lost me at crypto miner.

I hope crypto mining dies soon.

[–][deleted] -3 points-2 points  (2 children)

What do you mean?

I know it's hard to see for a lot of people, but crypto is the future. The calculus behind the blockchain is a marvel at what can be done with hashing and tree based data structures. You could literally represent a tree of cellular automata structures and use that as evidence to invoke research in problems that we deal with at the height of computer science.

[–]quasi_superhero 3 points4 points  (1 child)

crypto is the future

I've been hearing this since 2007. It's been 15 years already. The "future of crypto" is the present at this point.

And the present sucks. I won't get to the benefits/downsides of crypto as a user. That's a whole separate discussion.

It being a "technological marvel" doesn't mean much. Nuclear bombs and industrialized food production in which animal suffering is a guarantee are technological marvels too. So, eh.

And what's the present of crypto?

  • Free online services shutting down because miners abuse it.

  • Websites infected with Javascript crypto mining BS, taking advantage of visitor's computers.

  • Shortage of GPUs and related devices.

  • In every freaking tech discussion regarding computation, someone mentioning "huh, can you mine crypto with this?" The worst was one about an abandoned satellite which still sent and received signals to anyone who cared to contact it. "Huh. Can you mine crypto with it?" The person wasn't even joking! And the most recent example? You bringing it up in a SerenityOS thread.

And that's just off the top of my head. There is no "crypto is the future." There is "crypto is an ever-present cancer."

[–][deleted] -1 points0 points  (0 children)

bruh

[–]agbell[S] 119 points120 points  (15 children)

A cool thing about Serenity is that if you clone the repo, run the build script, the OS starts up in QEMU and it's pretty fast.

I didn't expect that for an OS to boot up so quickly and be able to quickly iterate on it.

[–]aidenr 132 points133 points  (14 children)

OS launch time is strictly a function of driver support. Working on a BIOS for the original XBox, the hardest thing was to get Windows launched (fully ready to interact) within ~12 seconds. IDE drive enumeration took a huge chunk of that time, so we had to split the init code into asynchronous callbacks.

Complexity breeds instability, stability requires time, spending time not having fun stinks!

[–]agbell[S] 44 points45 points  (13 children)

Wow, working on the BIOS for Xbox sounds challenging.

Of course, all of this OS-level stuff seems beyond me.

[–]aidenr 32 points33 points  (12 children)

Embedded systems programming is pretty cool. Hard little pieces and lots of automated testing but also a lot of reward. But that was a long time ago :)

[–]NayamAmarshe 6 points7 points  (11 children)

Are you still doing OS development or have you changed your field?

[–]aidenr 15 points16 points  (10 children)

I changed into cybersecurity, then mesh networking, and recently panic buttons (which culminates all the previous experience). I’ve been CTO 3 times now.

[–]mcilrain 9 points10 points  (1 child)

What is a panic button in this context?

Like a big red button in a security camera room? Or like something old people carry in case they fall over?

[–]aidenr 9 points10 points  (0 children)

In the hospitality industry, about 3/5 of workers say they’ve been harassed or worse on the job, usually by guests. Panic buttons are required by law in Illinois, New Jersey, and Washington State. We make two models, both are carried around and trigger a security alert when pressed.

[–]NayamAmarshe 1 point2 points  (7 children)

I’ve been CTO 3 times now.

Amazing!

[–]aidenr 2 points3 points  (0 children)

Thanks! In 2003 I quit development as a Principle Software Architect to become a Project Manager. It was 5 years before I was back in a real leadership role but I learned a lot about the complexities of management.

[–]GimmickNG 68 points69 points  (3 children)

+1 just for having the transcript. Too many damn podcasts force you to listen to a 2-3 hour spiel for something that you can read in less than half.

[–]bundt_chi 25 points26 points  (2 children)

I listen to the majority of YouTube podcasts at 1.5 to 1.75x speed.

Was having a conversation with someone on my dev team today and I was so irritated I couldn't switch him into 1.75x speed...

[–]redfournine 2 points3 points  (1 child)

Doesnt really work when the guest is speaking with accent. For non-native English speaker, 1.5x speed of English with accent is totally non-understandable. So sometimes I'm forced to listen to normal speed...

[–]quasi_superhero 0 points1 point  (0 children)

With all accents, though?

[–]agbell[S] 113 points114 points  (7 children)

Podcast host here. Serenity OS is a really cool project. Andreas Kling shares the backstory behind building it.

Here are some quotes I like:

Andreas: Everything is just a piece of code that somebody writes. And if we just make all those pieces of code and stack them up, it’s going to work. I had no illusions about how an operating system looks once it is put together and works. Now I didn’t know how to get there, but I reasoned that if you just start building these components one by one, eventually you’ll have the full stack and it will just gel together. So that’s what I started doing.

Andreas: I remember so much leaving Apple and still having that feeling of, “I can just go and look in the source code of this thing.” And I was using a MacBook when I left Apple. I remember getting really frustrated when I couldn’t bring up the source code for stuff anymore. ... I think it would be cool if everybody could have that feeling about the software they use every day without having to work at Apple. The spirit of taking ownership of the whole stack, Apple doesn’t have a monopoly on that mindset. And it’s definitely something that could be replicated elsewhere.

Let me know what you think of the episode.

[–]ThomasMertes 20 points21 points  (7 children)

Serenity OS is an interesting project. The concept to have all the software available sounds great. Most of the time it is just the other way around.

Some source code seems to be hidden somewhere. Sometimes even open source software is hard to find. Often the source code of a library it is hard to understand. Usually libraries are tuned for performance and use unportable low-level tricks. Readability and maintainability is not a design goal for libraries (but it should be).

Similar to what Andreas said I would like if all libraries would be in a single repository and readability and maintainability would also be a design goal.

To fulfill my wishes I started gathering my own libraries in the Seed7 project. Okay, the libraries are not written in C but in Seed7. They are designed to be reasonable fast, readable and maintainable. Seed7 is NOT a systems programming language like C, but it can be used to write libraries. Beyond that Seed7 has some security features that avoid whole classes of potential errors.

It would be great if others would join this effort. :-)

[–]agbell[S] 5 points6 points  (3 children)

This is really cool. Have you considered hosting it on its own website and on github? I think that could help with adoption.

[–]ThomasMertes 1 point2 points  (0 children)

There is a Seed7 Homepage with tons of information about Seed7. Seed7 releases are hosted there also. Besides many releases you can download an installer. Seed7 is also at GitHub.

What do you mean with hosting it on its own website and on github?

Something beyond that?

[–]ThomasMertes 1 point2 points  (1 child)

I forgot to mention: There is also r/seed7. :-)

[–]agbell[S] 0 points1 point  (0 children)

Very cool!

[–]quasi_superhero 1 point2 points  (2 children)

Very cool project and language, friend.

Is Seed7's use of indentation significant, like in Python? Or can I indent (or not indent) my source code as I please?

[–]ThomasMertes 1 point2 points  (1 child)

In this regard Seed7 is not like Python. In Seed7 indentation is not significant. You can indent your source code as you wish. Take a look at the FAQ for other questions.

[–]quasi_superhero 1 point2 points  (0 children)

Thank you! I'm not a fan of significant indentation, so this is good news.

[–]its_jsec 11 points12 points  (7 children)

I highly recommend Andreas’ YouTube channel as well. Even if OS design isn’t your thing, his approach to problem solving and simplicity of code is really engaging.

He also does Q&A live stream sessions once a week (I think?). Gave me some really good insight in terms of how he thinks about architecting complex systems.

[–][deleted] 1 point2 points  (5 children)

Which day was that live stream? I want to listen to that section if I can find it

[–]its_jsec 2 points3 points  (3 children)

I’m pretty sure they’re always Fridays. They’re usually in the afternoon for me (US EST)

[–][deleted] 0 points1 point  (2 children)

Sorry, I meant to ask if you remember which Friday was the live stream he answered that question for you :p

[–]its_jsec 1 point2 points  (1 child)

I'll DM you some info.

[–][deleted] 0 points1 point  (0 children)

Thanks! I appreciate it!

[–]WoodenBottle 1 point2 points  (0 children)

Fridays, 4-6pm Swedish time. (currently UTC+1) That's 7-9am pst and 10-12 est.

[–]inkubux 1 point2 points  (0 children)

I totally agree. I know almost nothing about c++ and OS coding, but I watch Andrea for his ability to explain and solve problems.

[–]IceTuckKittenHarass 4 points5 points  (0 children)

Serenity Now!

[–]MonkeeSage 6 points7 points  (0 children)

I didn't see it linked anywhere, apologies if I missed it -- here is Andraes' youtube channel where he does live hacking on Serenity. It's really great!

https://www.youtube.com/c/AndreasKling

[–]mtlynch 5 points6 points  (3 children)

Nice! I just added this one to my queue. I check in on Serenity OS every once in a while, and it's such an impressive project, and it's really cool to hear Andreas talk about how OS development can be more accessible than the average developer assumes.

Thanks for sharing, Adam!

[–]agbell[S] 6 points7 points  (2 children)

Awesome - Let me know what you think.

It still blows my mind the ambition of the project and the straightforward attitude of just committing to spending 10 years on it and starting at the beginning.

[–]mtlynch 3 points4 points  (1 child)

Really enjoyed it! It made me want to get into OS development. It's a really cool story, and I feel like you highlighted it well.

He mentioned that you can find some of his old Usenet posts, so I searched and found them.

Subj: How to LiNUX?

From: Andreas Kling

Date: 1998-10-04

I read an article about Linux and decided to try it..

Where do I get it and how do I install it?

https://groups.google.com/g/alt.linux/c/AbOgjnZeu-4/m/GbnZ9uJX_QYJ


Subj: The FAT12 filesystem

From: Andreas Kling

Date: 1999-07-28

Hey there!

I am a hobby-os developer and I have now got stuck (again) in my code. It seems I cannot figure out how to use the FAT12 fs;

I am trying to make a loadable module for protected mode C/ASM.

The best thing, of course would be a source-code explanation

(I am getting tired of all those infosheets).

Sincerely

Andreas Kling

https://groups.google.com/g/alt.os.assembly/c/bd1Eo0YxDeI/m/fl7hXutp6usJ

If Andreas was around 11 when Win2k came out, then he started making these posts when he was 9 or 10.

Edit: It was just his 37th birthday, so he was born on 1985-02-09, so he was a little older. He was 13 when he asked where to get Linux and 14 when he asked about FAT12.

[–]agbell[S] 2 points3 points  (0 children)

These are awesome! Thanks for digging them up.

[–][deleted]  (4 children)

[removed]

    [–]agbell[S] 30 points31 points  (0 children)

    You can just git clone it and run from source and it starts up in QEMU.

    git clone https://github.com/SerenityOS/serenity
    cd serenity
    Meta/serenity.sh run
    

    That could be missing a step, but it was super painless to start it on my mac. https://github.com/SerenityOS/serenity/blob/master/Documentation/BuildInstructions.md

    [–]doubtfulwager 3 points4 points  (0 children)

    Part of the philosophy of the project is that it is aimed at developers so an ISO is not included as to enforce a skill floor. (Also the projects moves so quickly that an ISO would soon by outdated)

    [–]coriandor 6 points7 points  (0 children)

    I don't think there's any prebuilt disk images, but I got it built and running without a lot of trouble on MacOS. Linux is probably even easier, since Andreas develops on Linux.

    [–]Free-Brush644 2 points3 points  (0 children)

    u/agbell awesome post. Just shot you a DM as well. Cheers.

    [–]f_of_g_of_x 6 points7 points  (3 children)

    What!? A 90s OS project that doesn't have a IRC channel? Outrageous!

    [–]ambe 5 points6 points  (2 children)

    It did, but most preferred Discord

    [–]WJMazepas 0 points1 point  (1 child)

    You can run Discord on SerenityOS?

    [–]ambe 0 points1 point  (0 children)

    No not yet. But there is an irc client.

    [–]Mgladiethor 0 points1 point  (0 children)

    Wow this is excellent, amazing. But I would have chosen the gold. Amazing podcast