M3 Operating System Development

A chronicle of the development of the M3 operating system

M3 Boot Loader – Version 1

leave a comment »

OK – version one of the M3 boot loader is complete. The boot loader will copy the kernel from disk to memory, enable the A20 gate, and get the processor into protected mode. It doesn’t yet jump to the kernel code – I’m having a bit of a problem in that the virtual machine totally hangs when I try that. I need to examine the code and figure out what’s going on.

I created my boot loader by using bits and pieces of other boot loader examples that I found around the ‘net. I’m not going to lie and say that there’s anything original here. I’m totally standing on the shoulders of those that have come before me, and I appreciate the work that they have done. In the source code, I’ve attributed the references that I used for each particular section. I have changed a few things here and there to reflect my personal preferences and coding style, but the bulk of the code is from other people.

My goal is to get to the really interesting stuff – the kernel – as soon as possible. I really don’t want to reinvent the wheel when it comes to boot loader code. 

It was far less work to get into protected mode than I thought it would be. I will detail this procedure in a separate tutorial post soon.

Once I figure out the problem with jumping to my small meaningless kernel written in assembly, I will post the code to the boot loader and describe things in detail.


Written by m3os

March 6, 2009 at 8:10 am

Posted in Status Update

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: