First page Back Continue Last page Summary Graphics
Shared subsystems
Filesystem + block layer + block driver + kernel infrastructure
Network stack + driver + infrastructure
Kernel infrastructure
- Memory allocation and caches
- Process sleep/wakeup
Interrupts will require process in one instance to wake up process in another
SMP or UP?
Notes:
In the previous example, the shared UML would contain only what's needed to run a filesystem. This includes the filesystem, block layer, a block driver, and whatever kernel infrastructure they need.
Another example would be a shared network interface. This would contain the network stack, a network driver, and kernel infrastructure.
The needed infrastructure would include stuff like memory allocation and management. Anything that used the page or buffer caches, or any other caches, would need their own private versions of those.
An interesting problem is that a process in one UML would need to be able to wake up a process in another UML. This would require a mechanism for cross-UML process wakeups.