MacBook multiboot OS install, bootable natively and under virtualization

Needing and/or wanting to use other operating systems than OS X on Apple MacBooks is not uncommon, for multiple reasons.

There are two ways to do it, within a virtual machine and natively.
I wanted to have a multi Linux setup, plus Windows XP and Windows 7 along OS X, and wanted to use them both natively and virtualized.
Current virtualizing solutions allow you to use what is called a raw disk, with more or less work depending on which one you use.

Apple MacBooks do not have a traditional BIOS, they use EFI. Both Linux and Windows 7 have no problem using EFI, although there are some compatibility issues which make a pure EFI boot system not straightforward.
Windows XP, on the other hand, depends on a BIOS to boot. Furthermore, video drivers on Linux usually also require a BIOS.

To this end, Apple includes BootCamp in their computers, which provides a BIOS emulation, so that one can install OSs like Windows XP.
Yet there is one more problem if what you want to have is not only Windows XP but any mixture of Windows / Linux / BSD / Solaris / ...
It has to do with the partitioning scheme of the ...

dib0700 race conditions in and 3.0 kernels

One of the best HTPCs out there is XBMC mixed with Tvheadend or VDR to be able to watch and record DVB broadcasts.

I have a dedicated Gentoo Linux box set up as NAS and HTPC.
The box itself is somewhat old, not suitable for HD video. Nonetheless, it works quite beatifully as a DVB-T recorder, SDTV HTPC and Upnp server for the HD video.

Since I had only one PCI slot and I wanted as much tuners as I could cram, I opted for two hybrid Hauppauges, a Nova-TD-500 and a Nova-TV-Diversity, which are basically the same USB card, but the former is placed next to a USB controller on a PCI card.
Neither card has ever worked flawlessly, since reception has been usually poor. Compared to a TechniSat AirStar 2 I also have, the difference in reception is impressive.

A few weeks ago, when kernel was released, it included some code back ported from upstream, geared towards getting rid of on-stack DMA buffers. This patch broke the dib0700 based cards

Being both my cards dib0700 based, I couldn’t record DVB-T broadcasts anymore so I had to bisect the kernel.
After a few tries ...

First post

Well, finally my first post.

I've been setting up a Google App Engine account, together with Bloggart so I can start sharing some of the stuff I've been doing but never posting anywhere.

I didn't want to use a standard blog account, since I like to have full control over everything.

Goggle App Engine seems kinda nice and really powerful. I'll see how things go and whether I can keep it working easily.

Bloggart is not an engine full of features, but rather a starting one. The code is awesomely easy, hence asking for custom development.

Anyway, the first things I am going to write about are linux, virtualization, os x and android.

P.S. As someone clever wrote I am writing this basically for me. If anyone else happens to read anything I post, it'll be a nice side effect though :)

Before I forget, I wanted to see how would look like some code. This is part of a future post: