> My first goal is to produce a UEFI boot loader for Plan9. Once that is
> accomplished, I intend to start incorporating parts of Plan9 (and/or
> Inferno) into the core UEFI firmware (www.tianocore.org
> <http://www.tianocore.org> ). I would like to have Channels, the Plan9
> device abstraction and 9P protocol committed to tianocore.org later this
> year. The device abstraction code is actually being reviewed right now so
> might be committed this month.
cool! that would certainly make my current side project easier.
> Any pointers to information on Plan9's boot loader requirements or design
> would be greatly appreciated. Especially information about why the existing
> virtual memory map was chosen.
although there are a number of bootloaders, they're all pretty similar. broadly
they need to
1. load the kernel at a known address. some kernels would like a multiboot
header,
some would not. (i'm personally not a fan).
2. put the plan9.ini configuration at CONFADDR
3. append runtime information to the plan9.ini configuration at CONFADDR
gathred by the bootloader such as
- the *e820 map (for pcs). i'm willing to get things in a new format,
as i understand uefi has a sightly different (just extended?) format.
- information about the boot drive, or boot nic in the case of pxe.
this helps automaticly configure things correctly.
0. (pcs only) some kernels prefer the loader to enter 32-bit mode for them.
4. jump to the kernel.
that's it.
> My interest in Plan9 and Inferno has taken off lately because of the IoT
> Fad. Security and authentication seem to be better integrated into these
> two OS' than (supposedly) more modern attempts. The distributed nature of
> the systems and the 9P protocol seem well suited to the requirements for the
> "Internet of Things". Also, both OS kernels appear to be relatively small
> and have minimal demands upon the supporting hardware infrastructure.
they certainly do. inferno is interesting because you don't even need a mmu.
for that matter, if you strip userland off the normal kernel, which isn't too
hard,
the plan 9 kernels can often run without an mmu.
- erik