4 ms·
Which makes sense when you think of libc as "the library which provides the system call interface to the OS, and just happens to provide a C runtime library as
by sveiss 11y ago
Which makes sense when you think of libc as "the library which provides the system call interface to the OS, and just happens to provide a C runtime library as well".
Making libc dynamic link only allows the OS developers to change the userland/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.
Over in Windows land, there isn'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.
- qwertyuiop924 11y agoTrue enough, I suppose. It did break some stuff though. Go apparently encodes the syscall table. https://news.ycombinator.com/item?id=8817568 https://news.ycombinator.com/item?id=8817568