The Serenity operating system turns 1 year old today. I’m counting
from thefirst commitin the
on October 10, 2018.
Parts of the code had been around for a while before that, so this
first commit was really about putting everything I was tinkering
with into a shared repo.
Anyways… we have to start somewhere!
NOTE:This web page is very light on HTML/CSS features so that it
can be rendered by Serenity’s own Browser!
In the beginning there were four components:
- The AK utility library
- An ELF executable loader
- An ext2 filesystem parser
- A simple GUI toolkit on top of SDL
These were just some little C++ projects I had been tinkering with
after installing Slackware 11 on an old PC to do some hacking.
None of them were very mature, but it was fun, and I was in a place
where I needed to do some programming to find myself again.
Here’s how the ext2 filesystem parser looked like when running:
::>cd /home/andreas ::>ls -l [VFS] ls ///home/andreas ->ext2fs 01:00000017 01:00000017 drwxr-xr-x 1024 2018-10-08 13:47:04 ./ 01:00000016 drwxr-xr-x 1024 2018-10-02 23:43:49 ../ 01:00000018 -rw-r--r-- 18 2018-10-02 23:44:09 file1 01:00000019 -rw-r--r-- 18 2018-10-02 23:44:14 file2 ::>
I imported a little x86 kernel I had been working on earlier in
the year. It was a piece of crap, but it was a place to start.
I originally had some weird idea that kernels should be written
in C, so I had tried to write in C, but I thankfully realized very
quickly that I was being silly. :^)
I kept working on the GUI toolkit on my Linux system, while also
developing the standalone system. This is how far I got with the
GUI while it was still sitting on top of SDL on Linux:
I then decided it was time to get this running on top of Serenity’s
own kernel. A day later, I saw this running in a VM for the first time.
It was the most beautiful thing I had ever seen.
I started working on a userspace API for doing GUI stuff. The original
version was a monstrosity with the window server running in the kernel
and processes making syscalls to create windows, etc.
Somewhere around here I figured it would be cool to add networking support,
so I started building a network stack.
And with that, this little screenshot tour of the first year of Serenity is over.
If you would like to see more, I’ve also been making regular monthly update videos
throughout the year:
- Serenity OS update (March 2019)
- Serenity OS update (April 2019)
- Serenity OS update (May 2019)
- Serenity OS update (June 2019)
- Serenity OS update (July 2019)
- Serenity OS update (August 2019)
- Serenity OS update (September 2019)
To all the boys and girls who have helped out in the last year, with code, bug reports,
docs, commenting on videos, e-mailing, hanging out on IRC, retweeting, telling your friends, etc,
thank you! I’m so grateful for all the love this project has been getting.
And also, a hugethank you!to everyone who has supported me via
and other donation methods! It’s my dream to turn this into a full time show some day,
and you’re a huge part of keeping that dream alive. 🙂
Let’s see what we can do in year 2!
Andreas Kling, 2019-10-10