Re: Official Linux system wrapper library?
From: Florian Weimer <hidden>
Date: 2018-11-11 10:40:58
Also in:
lkml
* Daniel Colascione:
On Sun, Nov 11, 2018 at 12:17 AM, Willy Tarreau [off-list ref] wrote:quoted
On Sun, Nov 11, 2018 at 07:55:30AM +0100, Michael Kerrisk (man-pages) wrote:quoted
[1] https://sourceware.org/Bah, after all, this wipes quite a bit of the shame I feel every time I do something to bypass it :-/ The sad thing is that the energy wasted arguing in the bug above could have been better spent designing and implementing a generic solution to expose syscalls without depending on glibc's politics anymore. Willy bugzilla/show_bug.cgi?id=6399 is aquoted
longstanding example.This one was a sad read and shows that applications will continue to suffer from glibc's prehistorical view on operating systemsYes. I'm really not sure what glibc's current policies are meant to accomplish. They don't serve any useful purpose. There seems to be this weird subtext that glibc has leverage to change OS design, and it really doesn't. It's a misplaced idealism and ends up just hurting everyone.
I'm not sure what this comment tries to accomplish. glibc tries to serve many masters: Current and past Linux kernel interfaces, current Hurd kernel interfaces, different versions of POSIX and C (and even C++), current C/C++ programming practice, historic C programming practice, current and historic Linux userspace programming, various platform ABIs, just to name a few. These requirements are often in conflict.
quoted
Seeing comments suggesting an application should open /proc/$PID makes me really wonder if people actually want to use slow and insecure applications designed this way.That's a separate point. Yes, gettid should have a wrapper, but *also* we should have an FD-based interface to processes, because outside specialized contexts (e.g., parent-child waiting), the traditional Unix process API really is impossible to use safely. But that's a separate ongoing discussion.
A descriptor-based API would not help glibc that much because there is an expectation encoded into many C programs that the C library does not keep permanently open descriptors for its own internal use. Thanks, Florian