Unikernels and the Interface Segregation Principle

I wonder if we could, for a moment, strech the scope of the Interface Segregation Principle to support the following two arguments:

  • Depending on a framework to a large project is almost always a bad idea. Almost every team I have talked to have had problems when a framework in their stack is updated and changes under their feet.
  • Depending on an OS distribution and a monolithic kernel is not that far from depending on a framework. OSs and the Linux kernel are more stable than frameworks, but they contain a lot of features and complexity that are outside the scope of our application. In other words, by removing the parts of the kernel that we do not need, we will reduce the cost of maintaining unnecessary dependencies.

From a software development perspective, unikernels (paper 1, paper 2) and other libOSs seem like a promising solution for reducing our external dependencies to a bare minimum.