Files
x86-bare-metal-examples/bibliography.md
2015-10-20 13:52:48 +02:00

87 lines
2.7 KiB
Markdown

# 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 inline `asm` commands, 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:
- <https://github.com/apparentlymart/ToyOS>
- <https://github.com/rde1024/toyos>
## Multi collaborator websites
- osdev.org is a major source for this.
- <http://wiki.osdev.org/C%2B%2B_Bare_Bones>
- <http://wiki.osdev.org/Text_UI>
- <http://wiki.osdev.org/GUI>
- <http://www.osdever.net/>
- <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://www.brokenthorn.com/Resources/OSDevIndex.html>
- <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:
- <https://github.com/bravegnu/gnu-eprog>
Raspberry PI:
- <https://github.com/dwelch67/raspberrypi>