Ever wondered what it would take to roll your own OS? [Sebastian]’s Snowdrop OS might just provide you with some insight into that process, and maybe even some inspiration.
[Sebastian] created Snowdrop completely from scratch, using only x86 assembly language. It’s more than just bare-bones, and boasts a number of useful utilities and programs including a BASIC interpreter and linker (for creating standalone BASIC executables.) That’s not even touching on the useful essentials, like multitasking and a GUI framework. There are even a number of resources specifically for making game development easier. Because as [Sebastian] puts it, what’s a operating system without games?
Interested in giving Snowdrop a try, or peek at the source code? The binaries and sources section has all you need, and the other headings at the top of the page will send you to the various related goodies. If you have a few minutes, we recommend you watch a walkthrough of the various elements and features of Snowdrop in this video tour (embedded after the page break.)
Snowdrop is an ambitious project, but we’re not surprised that [Sebastian] has made it work; we’ve seen his low-level software skills before, with his fantastic efforts around the classic stand-up arcade game, Knights of the Round.
19 thoughts on “Homebrew An OS From Scratch? Snowdrop Shows How It’s Done”
That is really cool.
Is it bad that my first thought was “TempleOS” developed by the late Terry A. Davis (who was on a mission from God).
Me too, dude
Kind of a rite of passage for early programmers.
You can test it with the following command but mouse input is not working out of the box, on a Linux host.
qemu-system-x86_64 -boot d -cdrom ./snowdrop.iso -m 1024
So, is a user of this sytem called a “Snowdropper?”
If you want to get into OS development then this page is an amazing resource: https://wiki.osdev.org/Main_Page
It’s mainly x86, but does include some stuff on arm and RPi
I’m currently writing my own OS, though I’m going UNIX-like on mine and trying to make it run on microcontrollers, so slightly different….
I have this idea in my head that OSes run on Microprocessors, not microcontrollers. The reason why many hobbyists want to work with Raspberry Pi’s, even when Adriuno boards or even Parallax Propellers would suit better. Good on you for going against the grain, but there’s still a little cognitive dissonance there for me.
A lot of microcontrollers these days more than meet the processing power of early desktops or minicomputers, so it’s not that far-fetched to run an OS on them. (See 211BSD on PIC32s, for example)
You’ve also got projects like uCLinux, FreeRTOS, and even full-size Linux has some microcontroller support now.
I only really got into doing this because someone wasn’t impressed by my PDP-11 emulator on micros to run real UNIX, they wanted a native kernel, and I realised I was going to need to re-write so much of the arch-dependent kernel, that I would have to basically write my own from scratch.
So I didn’t back down from the challenge! (Even if there’s a lot to do, and sometimes I feel like I’m drowning in curly brackets)
My name is Linus Torvalds, and I approve this post.
Good job! OS development is interesting area. I did my own Brainf* OS a decade ago. It wasn’t booting properly on about 50% of PCs though for some reason. Compatibility proved to be quite a challenge.
Leon fpga on hackaday io
And to think this is how Bill Gates got started! Ha, I’m kidding, Bill stole Dos.
Cool. Have to check this out. See how it compares to MenuetOS – https://www.menuetos.org/
Nice job! I’m impressed by the amount that can be achieved in raw ASM! 27 years ago I did something similar (real mode x86 kernel & bootloader, inspired by VxWorks) aiming to write as much as possible in C (microsoft compiler v5.1), then bolted on an X11 API based GUI, and dabbled with 32-bit porting (using the venerable djgpp): https://github.com/phlash/litetask
I hope Sebastian continues development. I like the simplicity.
Nice. I thought this was going to be yet another Linux distro but this is actually neat
If anybody wants to build on Linux, I wrote a Makefile that compiles it: https://github.com/petabyt/snowdrop-os/
Please be kind and respectful to help make the comments section excellent. (Comment Policy)