From: Daniel Colascione <dancol@google.com>
To: Willy Tarreau <w@1wt.eu>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Joel Fernandes <joelaf@google.com>,
Linux API <linux-api@vger.kernel.org>
Subject: Re: Official Linux system wrapper library?
Date: Sat, 10 Nov 2018 11:06:45 -0800 [thread overview]
Message-ID: <CAKOZuevup11kuHGb3QD5GuA1c7_B=Nnq-kDEB5Hbv=OqXVotQQ@mail.gmail.com> (raw)
In-Reply-To: <20181110190132.GA21185@1wt.eu>
On Sat, Nov 10, 2018 at 11:01 AM, Willy Tarreau <w@1wt.eu> wrote:
> On Sat, Nov 10, 2018 at 10:52:06AM -0800, Daniel Colascione wrote:
>> Now that glibc is basically not adding any new system call wrappers,
>> how about publishing an "official" system call glue library as part of
>> the kernel distribution, along with the uapi headers? I don't think
>> it's reasonable to expect people to keep using syscall(__NR_XXX) for
>> all new functionality, especially as the system grows increasingly
>> sophisticated capabilities (like the new mount API, and hopefully the
>> new process API) outside the strictures of the POSIX process.
>
> It's partly related, but you may be interested in something I did that
> is in the the RCU tree. It's called "nolibc", it's a set of syscall
> wrappers defined only in include files. It's not complete, but still
> enough to boot some small init wrappers. Mine can extract tar files
> and do stuff like this with it. Here is the kernel port in the RCU
> tree and an example of code using it :
>
> https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/tree/tools/testing/selftests/rcutorture/bin/nolibc.h?h=rcu/next
> https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/tree/tools/testing/selftests/rcutorture/bin/mkinitrd.sh?h=rcu/next
>
> The original one is maintained here (not very active since it works
> well enough for my use cases now eventhough it's far from being
> complete) :
>
> http://git.formilux.org/?p=people/willy/nolibc.git
>
> Maybe something along this could be done for the vast majority of
> syscalls and the thicker stuff be left to glibc ? That would allow
> simple userland to build without glibc using only kernel headers,
> or by occasionally defining a few extra stuff or glue.
Reminds me of LSS: https://chromium.googlesource.com/linux-syscall-support/
I'm not a fan of this approach for general-purpose use. There's value
in having *some* common function-level indirection before actually
issuing system calls, e.g., for LD_PRELOAD stuff.
next prev parent reply other threads:[~2018-11-10 19:06 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-10 18:52 Official Linux system wrapper library? Daniel Colascione
2018-11-10 19:01 ` Willy Tarreau
2018-11-10 19:06 ` Daniel Colascione [this message]
2018-11-10 19:33 ` Willy Tarreau
2018-11-10 19:20 ` Greg KH
2018-11-10 19:58 ` Vlastimil Babka
2018-11-12 2:03 ` Carlos O'Donell
2018-11-12 2:24 ` Carlos O'Donell
2018-11-12 2:36 ` Greg KH
2018-11-12 16:08 ` Jonathan Corbet
2018-11-12 20:03 ` Greg KH
2018-12-09 4:38 ` Randy Dunlap
2018-12-10 16:27 ` Jonathan Corbet
2018-12-10 17:39 ` Carlos O'Donell
2018-12-10 23:32 ` Randy Dunlap
2018-11-12 5:46 ` Andy Lutomirski
2018-11-11 6:55 ` Michael Kerrisk (man-pages)
2018-11-11 8:17 ` Willy Tarreau
2018-11-11 8:25 ` Daniel Colascione
2018-11-11 10:40 ` Florian Weimer
2018-11-11 10:30 ` Florian Weimer
2018-11-11 11:02 ` Willy Tarreau
2018-11-11 12:07 ` Florian Weimer
2018-11-11 10:53 ` Michael Kerrisk (man-pages)
2018-11-11 11:02 ` Florian Weimer
2018-11-12 16:43 ` Joseph Myers
2018-11-13 15:15 ` Carlos O'Donell
2018-11-11 11:11 ` Willy Tarreau
2018-11-11 11:46 ` Florian Weimer
2018-11-11 12:09 ` Willy Tarreau
2018-11-12 12:25 ` Florian Weimer
2018-11-12 17:36 ` Joseph Myers
2018-11-12 17:53 ` Greg KH
2018-11-12 18:09 ` Joseph Myers
2018-11-12 18:14 ` Randy Dunlap
2018-11-12 16:59 ` Joseph Myers
2018-11-14 12:03 ` Adam Borowski
2018-11-14 12:10 ` Florian Weimer
2018-11-16 21:24 ` Alan Cox
2018-11-11 11:09 ` Florian Weimer
2018-11-11 14:22 ` Daniel Colascione
2018-11-12 1:44 ` Paul Eggert
2018-11-12 8:11 ` Florian Weimer
2018-11-12 13:19 ` Daniel Colascione
2018-11-12 17:24 ` Zack Weinberg
2018-11-12 18:28 ` Daniel Colascione
2018-11-12 19:11 ` Florian Weimer
2018-11-12 19:26 ` Daniel Colascione
2018-11-12 22:51 ` Joseph Myers
2018-11-12 23:10 ` Daniel Colascione
2018-11-12 23:26 ` Joseph Myers
2018-11-12 22:34 ` Joseph Myers
2018-11-13 19:39 ` Dave Martin
2018-11-13 20:58 ` Andy Lutomirski
2018-11-14 10:54 ` Dave Martin
2018-11-14 11:40 ` Florian Weimer
2018-11-15 10:33 ` Dave Martin
2018-11-14 11:58 ` Szabolcs Nagy
2018-11-14 14:46 ` Andy Lutomirski
2018-11-14 15:07 ` Florian Weimer
2018-11-14 17:40 ` Joseph Myers
2018-11-14 18:13 ` Paul Eggert
2018-11-14 14:58 ` Carlos O'Donell
2018-11-14 17:15 ` Arnd Bergmann
2018-11-14 18:30 ` Joseph Myers
2018-11-14 15:40 ` Daniel Colascione
2018-11-14 18:15 ` Joseph Myers
2018-11-14 18:35 ` Daniel Colascione
2018-11-14 18:47 ` Joseph Myers
2018-11-15 5:30 ` Theodore Y. Ts'o
2018-11-15 16:29 ` Joseph Myers
2018-11-15 17:08 ` Theodore Y. Ts'o
2018-11-15 17:14 ` Joseph Myers
2018-11-15 21:00 ` Carlos O'Donell
2018-11-15 20:34 ` Carlos O'Donell
2018-11-23 13:34 ` Florian Weimer
2018-11-23 14:11 ` David Newall
2018-11-23 15:23 ` Szabolcs Nagy
2018-11-24 3:41 ` David Newall
2018-11-28 13:18 ` David Laight
2018-11-23 20:15 ` Daniel Colascione
2018-11-23 23:19 ` Dmitry V. Levin
2018-11-12 12:45 ` Szabolcs Nagy
2018-11-12 14:35 ` Theodore Y. Ts'o
2018-11-12 14:40 ` Daniel Colascione
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAKOZuevup11kuHGb3QD5GuA1c7_B=Nnq-kDEB5Hbv=OqXVotQQ@mail.gmail.com' \
--to=dancol@google.com \
--cc=joelaf@google.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=w@1wt.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).