A lesson from Plan 9

ron minnich rminnich at lanl.gov
Fri Aug 8 18:41:01 CEST 2003


Eric's comments on the keeping the core clean bring Plan 9 to mind, 
especially as Plan 9 was the inspiration for both the original and new 
config tools. 

Plan 9 is broken into two trees, as follows. 

/sys/src/9/port
/sys/src/9/<architecture>

The 'port' code is that code which is non-platform-specific. The 
<architecture> code is of course platform-specific. You can actually think 
of 'port' as the "core", and the other tree as the specialization to a 
given platform. 

To a large degree, platform-specific code gets linked in statically as 
devices, defined in arrays of structures. These are accessed via 
indirection through structures. The platform code can of course make calls 
to the OS for services. 

I think this is what many people I talk to would like for linuxbios: the
ability to specialize the bios for specific platforms, e.g. x86 mainboards
with VGA or other ROMs, to allow card initialization (e.g. rom bios). 
Obviously this brings a degree of x86-specificity to that build of the 
bios, but I think we can keep it isolated from the core. 

I feel this specialization could be done in a clean way: 

/src/freebios/src/extensions/....


and with a new keyword in the config tool that makes the nature of the 
extension clear.

We need somehow to address the demand for very early VGA support in 
linuxbios. It's probably the highest-demand item right now.

ron




More information about the coreboot mailing list