Map physical memory into the server's address space. Can map only parts of physical memory if desired. User processes can have address spaces larger than the server's. Use interrupt disabling for synchronization. Bottom halves all implemented by a single thread.
Interrupt threads execute at higher priority than the server.
User processes are L4 tasks. Linux server is the pager for these tasks. System calls are IPCs between user task and the server. Signals implemented by separate thread in each user-process. Performance Nicely designed experiments to show different things.