12.07.2015 Views

1lfCtJ9

1lfCtJ9

1lfCtJ9

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

137levelRUMP_COMPONENT_KERNRUMP_COMPONENT_VFSRUMP_COMPONENT_NETRUMP_COMPONENT_NET_ROUTERUMP_COMPONENT_NET_IFRUMP_COMPONENT_NET_IFCFGRUMP_COMPONENT_DEVRUMP_COMPONENT_KERN_VFSpurposebase initialization which is done before anyfactions are attachedVFS componentsbasic networking, attaching of networkingdomainsrouting, can be done only after all domainshave attachedinterface creation (e.g. lo0)interface configuration, must be done afterinterfaces are createddevice componentsbase initialization which is done after theVFS faction has attached, e.g. base componentswhich do VFS operationsTable 3.4: Rump component classes. The RUMP_COMPONENT facility allowsto specify component initialization at rump kernel bootstrap time. Due to interdependenciesbetween subsystems, the component type specifies the order in whichcomponents are initialized. The order of component initialization is from top tobottom.kernel code imposes. For example, the networking domains must be attached beforeinterfaces can be configured. It is legal (and sometimes necessary) for componentsto define several init routines with different configuration times. We found it necessaryto define eight different levels. They are presented in Table 3.4 in order ofruntime initialization. Notably, the multitude of networking-related initializationlevels conveys the current status of the NetBSD TCP/IP stack: it is not yet modular— a modular TCP/IP stack would encode the cross-dependencies in the driversthemselves.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!