Default [R&D] How i9300 bootloader loads the kernel

I understand this would be better suited in the development forum but I can't post there yet (<10 posts).

How does the i9300's bootloader boot the kernel? Is it something like (the equivelant of in its bootloader, this is grub)
set root=(hd0,{boot_partition{)
linux /zImage
I want to have multiple kernels on the device (one custom android kernel, one completely different (FreeBSD) kernel) and was wondering if I could have some means of choosing or if I'd need to have both kernels and then in the recovery have a command to copy it to zImage or something similar.

Thanks to anyone who can help.