>>10
Plan 9 ``solves'' the problem by allowing any component (not just the kernel!) to expose itself as a file system. So, for example instead of doing an API call to change the contents of a window you can just open the file that represents its contents and write to it.
That sounds like a good idea since the tools and ``interfaces'' are already there, but it seems kind of superfluous. On the back end of things, wouldn't it just be running some system call or library function I could have ran directly instead of accessing through a file?