By building the posix library as shared object with an ABI, we effectively decouple posix-using programs from the library implementation (which happens to depend on several os-level APIs such as the VFS).