A minimal, collaboratively written kernel
Some ten years ago I was gifted a 1994 Compaq Presario, and I figured I could use it to learn how to write a simple operating system. In 2020 I started experimenting with some real mode programs, and eventually I moved on to writing a simple 32 bit kernel.
During the years the project gained some traction, and there are now several wonderful people that have contributed greatly to the project.
Some of the resources I found most useful are the OSDEV wiki, osdever.net (from which I basically stole the part regarding interrupts), this keyboard scancode map, and of course the most fundamental of all resources: RTFM!!!
Another useful resource is the book "operating systems: principles and practice" by Thomas Anderson (no, not that Mr. Anderson) and Michael Dahlin. I used it to study for my OS class at university and I think it's a very good introduction to the subject.
WIP, there should be a markdown file in each directory, which will contain the docs. If you change or add something, try to integrate your change into the docs from now on.
If you make a useful change or addition, you are allowed to use the anything_here
file to write whatever you feel like writing; rules are:
- You may only add content, not delete
- Be polite
- Be creative
- Simple bootloader
- Interrupt request handling, keyboard and timer support
- Paging
- Bitmap-based dynamic memory allocation (
kmalloc
/krealloc
/kfree
...) - ATA disk driver
- Simple shell
- Very, very minimal file system
- Text editor
- Minimal VESA graphics driver
- Mouse driver
- Simple floppy disk driver
- Process scheduling
- Graphics toolkit
- Spawning processes from the shell