This is an old revision of the document!
200808 DevSummit Cambridge
The 4 and a bit steps of vimage integration
1. [DONE] Apply the V_ macro prefix:
- NOP (non functional) change.
- Invalidates most of the patches out there.
1.5. Further style changes (NOP) bringing in more infrastructure:
- Resolve file local statics with conflicting names.
- Import INIT_VNET_* as NOPs along with net/vnet.h, netinet/vinet.h, netinet6/vinet6.h, netgraph/vnetgraph.h, …, move #defins from vimage.h to those header files, make the macros NOPs in vimage.h.
- Import “V_SYSCTLs”, make them behave SYSCTLs w/o vimage for the moment. update man pages.
2. Move the globals into a struct (g.v):
- Make sure the macros from step 1.5 are no longer NOPs.
- Bring in per module constructor functions.
- Move globals to structs.
- Make it possible to revert to globals.
3. Apply virtualization (g→v):
- Add destructor functions.
- Add iterator macros.
- Per vimage pointers.
- INIT_VNET_INET would start doing something.
4. Finish more subsystems
- That is where your hands are needed and when you need to know what to do!
- Reorder variables in structs for cache locality.
- James Gritton's management framework.
General virtual talk on Sunday
- Jail is useful for name for virtualization for “branding”
- You have jail safe file systems, but you should be able to only allow some file systems to be mounted in a jail
- Perhaps only allow jexec instead of jattach since jattach is “ugly” and leave things from outside
- You want jails without processes hanging around e.g. if “jails” which just does forwarding
- Perhaps keep jail(8) for compat, and new jcreate(8) for advanced fancy jails. jail(8) is just a jcreate(8) wrapper