Why do we need Docker, virtualization technologies?
Because popular kernels are bulky, badly designed and don't provide the virtualization facilities we need.

I think a proper OS kernel should at least have these properties:

1) An OS kernel must not have any driver code for external devices. External devices should describe themselves.

2) An OS kernel source code line count must be in thousands, not millions. Only absolutely necessary code should be there. (isolation, protection...)

3) An OS kernel must provide its isolation, protection, resource management etc. source code as reusable libraries for user-level applications.

@armagan1 That's been a popular theory since the 1980s, but hasn't worked that well in practice.

@vy

I think, with all the knowledge and experiences we accumulated, we can achieve it now.

@armagan1 I think the whole argument is based on confusing mechanism for policy and poor analysis of interaction of these components - which is necessarily more complex than people think
@armagan1 In fact, I believe there is a theorem to be proved that shows efficient micro-kernels are not possible.

@vy

Different axioms can be found. That would make that theorem irrelevant.

Micro-kernels have good ideas but the kernel I talked about doesn't have to be a micro-kernel.

A micro-kernel like efficient kernel.

Maybe it will be radically different than what we call kernels. Thus, no current limiting theories will hold.