5 ms·
I would say most languages do. C is another one: the original AT&T C library has found its way via changes into some of the BSDs, but Linux systems typically us
by _delirium 13y ago
I would say most languages do. C is another one: the original AT&T C library has found its way via changes into some of the BSDs, but Linux systems typically use the GNU C library ("glibc"), which for copyright reasons had to be done as an independent implementation (the Unix source at the time was proprietary). Microsoft and IBM also have their own C library implementations.
- stephencanon 13y agoApple, Intel, HP, ... also have their own C library implementations, to say nothing of dinkumware and musl-libc and ..., or the various glibc derivatives like eglibc and bionic. I could go on for quite a while, now that I think about it.
- zeckalpha 13y agoBionic is a glibc derivative?
- cokernel_hacker 13y agoIt is not, it contains pieces of various BSD libc derivatives: http://codingrelic.geekhold.com/2008/11/six-million-dollar-libc.html http://codingrelic.geekhold.com/2008/11/six-million-dollar-l...
- stephencanon 13y agoNo, it’s not. Thanks for catching that (too late to edit, unfortunately).
- Tobu 13y ago(e)glibc and friends are fairly critical since they are the one exposing kernel features. Those that save a bit of space on embedded systems also have a selling point. For C++, aside from must-haves like open-source licences and community support, I don't see what the differentiators are.
- derleth 13y ago> (e)glibc and friends are fairly critical since they are the one exposing kernel features. By default. Unlike in Windows (from what I understand), in Unix-like OSes (Linux, the BSDs, probably others) it's entirely possible for user programs to talk directly to the kernel via a published API. In Linux, C programs can use the syscall(2) function and x86 and x86-64 assembly language programs can use either the sysenter opcode or the int 0x80 interface, which is why linux-gate.so.1 exists and is mapped into every process: The kernel determines which method at boot and so userspace code (inclusive of libc) can't know in advance, so it uses the linux-gate.so.1 interface, instead. http://www.trilithium.com/johan/2005/08/linux-gate/ http://www.trilithium.com/johan/2005/08/linux-gate/ http://articles.manugarg.com/systemcallinlinux2_6.html http://articles.manugarg.com/systemcallinlinux2_6.html http://stackoverflow.com/questions/9506353/how-to-invoke-a-system-call-via-sysenter-in-inline-assembly-x86-amd64-linux http://stackoverflow.com/questions/9506353/how-to-invoke-a-s...