contrapunctus, by Christopher League
 

A perverse level of virtualization

So here I am installing a VNC client on my Powerbook so I can connect to my desktop Linux at work and control a VMware installation running Windows XP. And on that virtual XP? I’m running a GeekOS kernel on Bochs.

Just thought I’d share. Although I’d never personally choose XP for anything, I must admit that it has been convenient to be able to run it in VMware, just so I can see what kind of environment the majority of my students are using, and what problems they may run into. All the software I require for my courses is cross-platform, because I don’t want to be tied to anything. I even can cross-compile GeekOS on my PPC Mac and run it on Bochs there.

I managed to get a virtual XP running on my Linux desktop at work, but so far it doesn’t work at home… and that Linux machine at home is so underpowered at this point, I’m not sure I’d want it on there anyway. So using VNC to connect to it from elsewhere made sense.

More on GeekOS later, but so far hacking it is definitely fun. Learned more about segmentation registers on Intel this week than I ever needed to know.

2 responses

You may leave a response below, or a trackback from your own site. You can follow responses to this post using this RSS feed.

1
Sebastian
25 October 2007 @11:08

How did you cross-compile GeekOs to run it under Boch on OSX?

I am trying the same thing to learn kernel development, but it seems like I need a new toolchain as the ‘Mac version’ of ld does not allow the use of linker scripts, which is required to build GeekOs.

Will I need to build a cross compiler/binutil set to target something like i386-pc-elf?

Any suggestions are very welcome!

Sebastian

2
25 October 2007 @17:18

Thanks for your interest in GeekOS on the Mac. Yes, I used a cross-compiler. Trouble is, I can’t remember whether I downloaded it from somewhere or built it myself. But I have /usr/local/bin/i386-elf-gcc and all of the other binaries, prefixed with i386-elf. (This is how the GCC build system keeps cross-compilers separate from each other.) Then in the makefile, I have to specify i386-elf- as the right prefix somewhere.

There are some notes on the GeekOS web site about cross-compiling, but they’re for a much older version of GCC. But I think you can follow GNU’s directions instead. It’s time-consuming, but it does work.

Your response