This definition really only work for monolithic kernels. Just because you move a filesystem or network stack into user space doesn't make less part of operating system. Those components are certainly not necessary for the kernel to function. Linux already chooses to place many things like display and rendering stacks in user space despite them fulfilling a similar role for the hardware they interact with to that of a networking stack. I personally think an OS is everything that helps abstract and multiplex hardware for applications that sit above it, providing a consistent API to build on top of. Different OS may choose to abstract different layers and defer ownership of the hardware to things built on top of it, but that doesn't ultimately challenge the definition.