is FreeBSD kernel a multiboot kernel ?

Hi,
Grub can boot FreeBSD by :
Code:
kernel /boot/<some kernel>
boot

Does this mean FreeBSD kernel is a multiboot kernel?
I search the source tree and can not find any thing about multiboot. I think the grub maybe know something about the boot stages of FreeBSD. Am i right?

Thanks.
 
The kernel has nothing to do with multiboot. That's the bootloader's job, which in your case is grub.
 
The multiboot code is not in the kernel.
By default, it's in boot0 (stored in the MBR if you chose it during the setup) and you can find it in src/sys/boot/i386/boot0/boot0.s (N.B. it's written in assembler).

The boot process is very simple, which is why grub or any other boot manager can easily do it.
Basically it just finds the first block (i.e. the boot loader) in a particular partition using the MBR's partition table and executes it. In FreeBSD this block is boot1.
 
I've been dual booting for a while with Grub (FreeBSD + Windows).

Here's my configuration file:
Code:
default 0
timeout 5

title Windows XP SP2
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1

title FreeBSD 7.2-RELEASE-p3
rootnoverify (hd0,0)
chainloader +1
 
I'm not asking about chainloading. For example, netbsd's boot(8) has a multiboot command. But looks like it can't boot freebsd's kernel.
 
You can use mbchk to check if a binary is multiboot-compliant (installed with GRUB):
Code:
/boot > mbchk loader
loader: No Multiboot header.
/boot > mbchk kernel
kernel: No Multiboot header.
So I think this is enough to conclude that neither FreeBSD kernel, nor loader are multiboot compliant.

Oh, and for those wondering what this "multiboot" thing is and what the hell it has to do with the kernel itself: it's a specification that requires bootable binaries to have a special header, in order to allow arbitrary kernels to be loaded by arbitrary bootloaders.
 
This may be a naive comment, but the effort seems like too little too late. EFI will probably replace the BIOS soon, and I suspect that will render all this BIOS hackery obsolete. Either way, FreeBSD's chain loading process is elegant (more so than linux) and simply works. I can only see this being useful for someone writing a new OS and wanting to avoid the black art of writing a boot loader.
 
I think the Hurd and NetBSD are pretty much the only one ... Surely two of the most popular operating systems out there.

As far as I've understood is, the multiboot specs have pretty much failed to gain a wide acceptance.
 
Multiboot

Carpetsmoker said:
I think the Hurd and NetBSD are pretty much the only one ... Surely two of the most popular operating systems out there.

As far as I've understood is, the multiboot specs have pretty much failed to gain a wide acceptance.

Some microkernels are multiboot compliant too, e.g. L4Ka:: Pistachio:

http://l4ka.org/projects/pistachio/

And, frankly, it would be nice if FreeBSD were multiboot compliant like NetBSD.
 
Back
Top