4 ms·
Someone's going to have the fun job of porting this to UEFI at some point in the not-too distant future.
by mjg59 13y ago
Someone's going to have the fun job of porting this to UEFI at some point in the not-too distant future.
- swetland 13y agoDoesn't seem like it'd be a big ordeal. Just adapt an existing bootloader to load the kernel. Also it looks like they mostly run it in qemu.
- geofft 13y agoIt's multiboot, so you can just boot it from grub.efi. See sheet 10, xv6/entry.S. The more annoying thing is likely to be that it's 32-bit only. Are there any common machines that do x86-32 UEFI boot? Alternatively, does a 64-bit grub.efi know how to exit long mode and go into protected mode, to multiboot a 32-bit kernel? (I was actually talking the other day with some folks about whether a 6.828 project involving a UEFI port of JOS, the other teaching OS, would make sense, but the 64-bit thing seemed to make it less interesting unless you also plan to do a 64-bit port of JOS. Which has been done before in a final project, admittedly...)
- swetland 13y agoIt's definitely 32-bit only, but structurally it's simple enough that converting to 64-bit might not be a huge effort (and the kernel is only about 6kloc of .c files). I haven't done x86 systems stuff since 64bit became common, so it might be a fun way to learn about what's different.
- mjg59 13y agoAh, true - there's no support for any other BIOS-based services, so that's not going to be a problem. Being 32-bit only isn't really an issue, there's no theoretical problem with a UEFI-based bootloader jumping into 32-bit before executing a multiboot image. You won't be able to make any UEFI runtime calls, but that's probably not a high priority anyway.
- userbinator 13y agoAs long as there are things like SeaBIOS, there is no need for UEFI.