I located a good tutorial on creating your own operating system. I first tried it under Linux with no success. It does work under Windows with DJGPP.
Under Linux I'm having issues with compiling 32-bit under a 64-bit OS, and the symbols between C and assembly don't match up. I should be able have a C function called main and then call it with _main from assembly. But the extra underscore isn't getting added on.
I figure creating my own OS should be easier under Linux, not harder.