2.7 KiB
Bibliography
-
https://github.com/cirosantilli/assembly-cheat Information about assembly in general.
README.md explain
make qemu -
http://stackoverflow.com/questions/22054578/run-a-program-without-an-operating-system
Small projects
-
https://github.com/programble/bare-metal-tetris tested on Ubuntu 14.04. Just works.
Has Multiboot and El Torito. Uses custom linker script.
Almost entirely in C
-nostdlib, with very few inlineasmcommands, and a small assembly entry point. So a good tutorial in how to do the bridge.
The following did not work on my machine out of the box:
Multi collaborator websites
-
osdev.org is a major source for this.
-
https://courses.engr.illinois.edu/ece390/books/labmanual/index.html Illinois course from 2004
Progressive tutorials
-
http://www.jamesmolloy.co.uk/tutorial_html/index.html
Multiboot based kernels of increasing complexity, one example builds on the last one. Non DRY as a result.
Source code: https://github.com/cirosantilli/jamesmolloy-kernel-development-tutorials
Well known bugs: http://wiki.osdev.org/James_Molloy's_Tutorial_Known_Bugs That's what happens when you don't use GitHub.
Good tutorials, author seems to master the subject.
But he could learn more about version control and build automation: source code inside ugly tar.gz with output files.
-
https://sourceforge.net/p/oszur11/code/ci/master/tree/
GitHub mirror: https://github.com/cirosantilli/oszur11-operating-system-examples
Several examples of increasing complexity. Found at: http://stackoverflow.com/questions/7130726/writing-a-hello-world-kernel
Just works, but examples are non-minimal, lots of code duplication and blobs. There must be around 20 El Torito blobs in that repo.
Multiboot based.
-
https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System
-
http://skelix.net/skelixos/index_en.html
Cleaned up version: https://github.com/cirosantilli/skelix-os
Not tested yet.
GAS based, no multiboot used.
Actually useful
These are not meant as learning resources but rather as useful programs:
- https://github.com/scanlime/metalkit A more automated / general bare metal compilation system. Untested, but looks promising.
Other archs
For when we decide to port this tutorial:
ARM:
Raspberry PI: