3 ms·
Very interesting and well described! If I were to have one nitpick, it would be the use of "Unix" when it's more specific to Linux. Ex. "The libc typically used
by SpecialistK 2y ago
Very interesting and well described! If I were to have one nitpick, it would be the use of "Unix" when it's more specific to Linux. Ex. "The libc typically used on Unix systems is glibc"
However I'm sure all of the concepts still apply on BSD, Solaris, etc.
- Onavo 2y agoGo is also famous for bypassing libc and issuing syscalls directly on quite a few platforms.
- galangalalgol 2y agoI thought I'd read they backed off of that and started using posix as an abstraction layer.
- bradfitz 2y agoGo used to do raw syscalls on macOS but changed. Same with some BSDs. Go always did ~libc on Windows (and Solaris) and still does. Go still does raw syscalls on Linux, as that's a stable ABI.
- pjmlp 2y agolibc is a UNIX concept, as the OS API surface, as described by POSIX. On any other no-UNIX derived OS, it is the C compiler standard library, covering only the ISO C specifies. All the remaining OS services are exposed by other libraries, which in Windows case, the bare minimum is user, kernel and gdi dlls for the Win32 personality. Systems like IBM i, IBM z, ClearPath MCP, .... also have similar set of libraries, as do non-POSIX RTOS for embedded.