µ-kernelExo-Kernel
µ-kernel OS uses the fix abstraction for resource management. Hence It cannot be changed by application level and application performance reduced.Exo-kernel is more flexible. It uses the abstraction at low-level interface closer to hardware and outside the kernel and applications have more control to manage resources. Hence, improved the application performance
µ-kernel uses the inter-process communication between applications to communicate with each other.Exo-kernel uses end-to-end argument, applications has control over the resource management using the LibOS which implements the high level abstraction on top of low level primitives using secure binding.
µ-kernel does not have concept of LibOS and does not allow applications to access resources.LibOS explicitly access physical resources and provides interface to applications with high level of abstraction.
Virtual memory and IPC is implemented at kernel level and untrusted application are not allowed to define VM and IPC.Virtual memory and IPC is implemented at application level. It can be integrated with distributed shared memory and garbage collectors.
It uses the shared serverAvoid shared server, because it limit extensibility
It is hardware dependentIt is also hardware dependent