I’ve gotten my kernel to boot finally. It’s is perhaps the most basic
kernel that one can create; consisting only of a Grub front-end loading
an
ELF
binary (my kernel) that simply hacks into the VGA memory page, displays
a text message, and halts the CPU. I am using Grub 0.90, NASM 0.98, and
GCC 3.2.2 to build and execute in a VmWare virtual machine. I am in the
process of transforming the VGA hack into a more eloquent abstraction
such as printk, vsprintnf, and putc. Likewise, I would prefer to
abstract most operations away from the x86 (although all development
will occur on it currently), and a video stub is also being coupled with
the previously mentioned kernel functions. Here is a pic:
As you can see, I am writing over the video page and
stepping on the toes of Grub’s output. That should be fixed in version
0.011. More details to come.
-m