[back to main site]
Snowdrop OS - a homebrew operating system from scratch, in assembly language
Welcome to the pages of Snowdrop OS, my homebrew operating system project.

-/++/: :+shhy/
+hNMMMMMmy: ---:://osyyyyhhoo/:- -+dNMMMMNNNy:
-yNMMMNNNNNMNhhNNNNMMMMMMMMMMMMMMNNdmMMMNNNNNNNMNs
yMMNNNNmmmmNMMMMMMMMMMMMMMMMMMMMMMMMMMMNmmmmmmmmmms
-NNNNmmmdhdNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmdddddddy-
/NmmmddddNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNdmmmdhs-
:ddddhhmMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmmdhs:
oyyhdNMMMMMMMMNNmmmNMMMMMMMMMMNddhhmNMMMMMMMMMNds:
+mNMMMMMMMMMNhyys+omMMMMMMMMNy+/::+hNNMMMMMMMMN+
-dMMMMMMMMMMMmo:- -:yNMMMMMMMNs --ymNNNNNNMMNNh
sMMMMMMMMMMMMNh: -+dNMMMMMMMNm+:-:odNNNNNNNNNNNm:
mMMMMMMMMMMMMMNdhyhmMMMMMMMMMMMmdddmNNNNmmmmmmmmmo
mNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMNNNNNNmmmmmmmmmd+
mNNNNmmmmNNNNNNMMMMMMMMMMMMMMMMMMMNmmmmmddddddddh:
hmmmddhhdmmmmmNMMMMMMMMMMMMMMMMMMMMmddddddddhhhhs
/ddmdhhyhddddmMMMMMMMMmhyssosydNNNNmdddhhhhhhhhh:
+hddhhyyhhhhmMMMMMMMh//:-----/dmmmmdhhhhhhhhhho
:+osshdhyyyyyhdNMMMMNNdo: :+yhddmmhyyyhhhhhho:
+ys/--/ssyyyyyyhmNNNNmdhhys+/oyyhhhddhsssyyysso/::
:ssss+ -:/+osyssydmddhssysys+yyy+yhhy+:::/::::::::
-sysssso: --:::/++++shhhs:/oss++o+syyo/:::::----:://-
/ssooosso+: --::-- ----:/osso+oossss+:----:::::::::::/:
/sooosssso+++: ---:::::::::::-://::--:::::::::::://+++++/

Snowdrop OS was born of my childhood curiosity around what happens when a PC is turned on, the mysteries of bootable disks, and the hidden aspects of operating systems. It is a 16-bit real mode operating system for the IBM PC architecture. I designed and developed this homebrew OS from scratch, using only x86 assembly language.

I have created and included a number of utilities, including a file manager and a text editor. I also ported one of my DOS games to it. After all, what kind of an operating system doesn't have games?

The Snowdrop OS and the apps are distributed as both a floppy disk (1.44Mb) image, as well as a CD-ROM image. The images contain the following, all programmed from scratch:
  • a boot loader which loads the kernel into memory
  • a kernel which sets up interrupt vectors to be used by user apps, and then loads the startup app
  • user apps, including a shell (command line interface), utilities, test apps, and aSMtris, my Tetris clone
I hope that Snowdrop can serve other programmers who are looking to get a basic understanding of operating system functions. Like my other projects, the source code is fully available, without any restrictions on its usage and modification.