Kalimera - A(nother) Kernel From Scratch
Yes, this is another operating system kernel written from scratch. There are tons of the same out there.
So far, the planned features/architecture are: x86 (32 bits):+1:, protected-mode :+1:, ring 0 only :+1:, no paging, multitasking - kernel threads only, network communication (ethernet), IPv4, UDP, ICMP, BOOTP, ARP, RARP, serial communication, interrupts :+1:, exceptions :+1:, keyboard input :+1:, terminal emulation :+1:.
It should be small and simple enough to enable anyone to grasp the workings of the entire kernel. Yep, you've just read it. It will be written in AT&T assembly language syntax and C.
Please, read the file docs/journal.md.
pie title Source Code Distribution so far (lines)
"C" : 19
"x86-Assembly" : 6086
"Shel Script" : 262
"Makefile/linker script" : 862
"Documentation" : 2752
Please, read the file docs/journal.md. But for the impatient, read next.
In order to run the kalimera kernel you will need A REAL PC or a virtual machine, like Qemu or VirtualBox. This is a work in progress, so the Makefile supports only qemu for now. So, make sure you have qemu installed in your system.
In order to run the kalimera kernel with a pretty cool animation:
make clean; make run
Here are some milestones marked with tags:
v0.07-kernel-device-driver-pit-clock
v0.06-kernel-keyboard-terminal
v0.05-kernel-device-driver-pic-keyboard
v0.04-kernel-IDT-32-exceptions
v0.03-kernel-in-32bit-protected-mode
v0.02-bootloader-detect-memory
v0.01-simple-bootloader
You can travel in time by just typing:
git checkout <tag>
For instance, to checkout tag v0.03-kernel-in-32bit-protected-mode:
git checkout v0.03-kernel-in-32bit-protected-mode
To return to the future:
git checkout master
Enjoy!