Which makes sense when you think of libc as &quot;the library which provides the system call interface to the OS, and just happens to provide a C runtime library as well&quot;.<p>Making libc dynamic link only allows the OS developers to change the userland&#x2F;kernel land interface as they see fit without breaking compatibility. The fact that this also ties you to a dynamically linked C runtime library is an artifact of the close ties between Unix and C.<p>Over in Windows land, there isn&#x27;t a tight coupling between libc and the system call interface. libc is provided by your compiler (Visual C++ provides static and dynamic versions), while the system call interface is provided by ntdll.dll and friends, which are part of the OS and free to change in future OS versions.