The containerisation approach on Linux isn't because of insularity or NIH - it's because the Linux kernel development process does not accept large, far-reaching "big bang" code drops. Instead, changes that have wide impact across the core kernel are expected to be made in a series of smaller incremental improvements, each of which is more limited in impact and more easily reviewed.