My operating system - from scratch!!!
Click here to see the demo on YouTube
I am naming this OS after Sanskrit word Vivitsa meaning "desire of knowledge".
This Operating system is targeted to run on x86 architecture. Initially I used Bochs emulator to run and test my OS while developing, later switched to QEMU x86 Emulator as I found it handy.
To build, run and test please use my docker image by running
$ ./run.sh
which has all the dependencies installed on it. I recommend running this image on Ubuntu if you want to run emulator inside docker.
And then follow README file inside subfolders on instructions to build and debug
Note: When you are inside docker, host PCs HOME directory is mounted under /mnt
There are a lot of great resources out there but not many good tutorials. Most of the tutorials gloss over the code or gloss over the contents, or both; it forces you to spend time reading about theory and finding other implementations of concepts but it can be a pain when you just want X to work so you can learn about Y.
This is just a list of some of the great stuff I've found online, including others' toy kernels. For better or worse, many of them are based on the same few tutorials found elsewhere so, often, the code is easy enough to follow.
-
Little OS Book not maintained anymore, as of late 2015. There are some bugs referenced on the GitHub repo. It starts off with a lot of example code but then tapers off by only providing theory and leaving you to your own devices. It was great to get me started but I needed a bit more help on interrupts and memory management
-
aenix from the authors of the Little OS Book tutorial
-
OSDev.org best resource on the net, with dozens of tutorials and even several pages (linked below) providing information on bugs in other tutorials
-
James Molloy's Tutorial No longer maintained but a great intro nonetheless. Newer, working code is in the Google Code repo, but it doesn't match the tutorial. Since Google Code was decommissioned, you can only download a ZIP or export to GitHub; there's no online browsing of the SVN repo
-
Boom toy kernel based on JM's tutorial
-
Bare Metal Examples multiple toy OSes for reference
-
Bran's Kernel Dev Tutorial great tutorial, also with known bugs
-
MIT's Xv6 unix-like OS used to teach OS development at MIT
-
XOmB-barebones barebones x64 kernel written in D
-
ToaruOS much more complex than all the others above but it's a genuinely functional Unix-like OS with a fantastic desktop environment and even some application ports, including GCC and Bochs, which means it can be self-hosting