public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] Splitting out kernel<=>userspace ABI headers
@ 2005-09-02  3:00 Kyle Moffett
  2005-09-02 13:41 ` Erik Andersen
  2005-09-02 21:42 ` Jeff Dike
  0 siblings, 2 replies; 56+ messages in thread
From: Kyle Moffett @ 2005-09-02  3:00 UTC (permalink / raw)
  To: LKML Kernel; +Cc: Linus Torvalds, Andrew Morton

A while ago there was a big discussion about splitting out the
userspace-accessible portions of the kernel headers into a separate
directory, "kabi", "kernel-abi", "linux-abi", or a half-dozen other
suggestions.  Linus sprinkled a bit of holy-penguin-pee on the idea,
but nothing ever really happened after that.  I have some available
time at the moment, and I would be willing to undertake the task,
but I would like a bit of guidance first, both from Linus/akpm/etc,
and from the list in general, about a few initial issues I see from
my initial attempts to sort through the mess:

   1)  There are a couple header files upon which almost everything
else depends, among them {asm,linux}/{posix_,}types.h, which have
some significant duplications.  Many of the archs have weird sizes
for those types to preserve some backwards-compatibility ABI, but
nowhere does it explain if there are any type-size restrictions in
general.  I would propose that those headers be reorganized so that
there are sane defaults for all the types in kabi/types.h, and
archs that require different would #define exceptions in their
kabi/arch-foo/types.h.  This would allow new archs to start with a
sane standard ABI before it becomes set in stone.

   2)  There is a bunch of stuff that would be _really_ useful in
userspace programs as well, even though not kernel ABI, such as
list.h, atomic.h (with a few archs modified due to privilege
restrictions), etc.  If there is interest, I would attempt to split
off those headers into a kcore/kerncore/linuxcore/whatever inline
header collection included in the linux distribution and installed
as part of the kernel headers.

   3)  What names are preferable for the above?  My personal
preferences are "kabi" and "kcore", because those save the most
typing for the sucker trying to do all this (IE: me), although if
someone has good reasons otherwise, I'll listen.

I realize this project is only slightly short of massive, however I
do have a bunch of time and am willing to do the grunt work if
enlightened as to the community desires.  I have a few different
semi-patches almost ready, and I can probably finish up a couple
this weekend if I can figure out which way people want to go.  One
of the major challenges is that kernel files have historically kind
of indiscriminately included asm/foo.h when they really meant
linux/foo.h (See the types.h example), only to have it magically
work because some other header already included linux/types.h
anyways.  If arch/driver/etc maintainers are willing to take patches
to clean that up, I'll start with that and eventually get a decent
set of kabi/* headers.


Cheers,
Kyle Moffett

--
Unix was not designed to stop people from doing stupid things,  
because that
would also stop them from doing clever things.
   -- Doug Gwyn



^ permalink raw reply	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2005-09-15 21:53 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-02  3:00 [RFC] Splitting out kernel<=>userspace ABI headers Kyle Moffett
2005-09-02 13:41 ` Erik Andersen
2005-09-02 20:51   ` Kyle Moffett
2005-09-02 23:58     ` Erik Andersen
2005-09-03  0:07       ` H. Peter Anvin
2005-09-03  0:30         ` Kyle Moffett
2005-09-03  0:34           ` H. Peter Anvin
2005-09-03  0:50             ` Kyle Moffett
2005-09-03  4:28         ` Erik Andersen
2005-09-03  5:22           ` H. Peter Anvin
2005-09-03  5:50             ` Erik Andersen
2005-09-03  5:53               ` H. Peter Anvin
2005-09-03  6:41                 ` Erik Andersen
2005-09-03 15:01                   ` H. Peter Anvin
2005-09-03 15:19                   ` H. Peter Anvin
2005-09-03 16:55                     ` Kyle Moffett
2005-09-05 16:35                       ` H. Peter Anvin
2005-09-05 23:28                         ` Kyle Moffett
2005-09-06  1:29                           ` [RFC][MEGAPATCH] Change __ASSEMBLY__ to __ASSEMBLER__ (defined by GCC from 2.95 to current CVS) Kyle Moffett
2005-09-10  8:40                             ` Kyle Moffett
2005-09-10  8:45                               ` Andrew Morton
2005-09-10 17:38                                 ` Kyle Moffett
2005-09-10 22:04                                   ` Andrew Morton
2005-09-11  0:33                                     ` Kyle Moffett
2005-09-11  0:48                                       ` Andrew Morton
2005-09-11  3:15                                         ` Kyle Moffett
2005-09-12  8:09                                           ` Paul Jackson
2005-09-12 15:19                                             ` H. Peter Anvin
2005-09-12 15:47                                               ` Paul Jackson
2005-09-12 17:17                                                 ` Sam Ravnborg
2005-09-12 21:14                                                   ` Paul Jackson
2005-09-12 21:39                                                     ` Kyle Moffett
2005-09-12 17:18                                                 ` H. Peter Anvin
2005-09-12 17:51                                                 ` Kyle Moffett
2005-09-12 21:04                                                   ` Paul Jackson
2005-09-14 13:56                                                   ` Bill Davidsen
2005-09-15 21:53                                           ` Jeremy Fitzhardinge
2005-09-03  5:55           ` [RFC] Splitting out kernel<=>userspace ABI headers Kyle Moffett
2005-09-03  5:57             ` H. Peter Anvin
2005-09-03  6:05               ` Kyle Moffett
2005-09-03 15:36             ` Denis Vlasenko
2005-09-03 16:33               ` Kyle Moffett
2005-09-03 16:51                 ` Denis Vlasenko
2005-09-14 13:46         ` Bill Davidsen
2005-09-14 17:01           ` Sam Ravnborg
2005-09-14 17:01             ` H. Peter Anvin
2005-09-14 18:14           ` Kyle Moffett
2005-09-14 19:09             ` linux-os (Dick Johnson)
2005-09-14 19:20               ` H. Peter Anvin
2005-09-14 19:46               ` Kyle Moffett
2005-09-02 21:42 ` Jeff Dike
2005-09-02 21:55   ` H. Peter Anvin
2005-09-02 22:44     ` Kyle Moffett
2005-09-02 23:24       ` H. Peter Anvin
2005-09-02 23:41         ` Kyle Moffett
2005-09-02 23:53           ` H. Peter Anvin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox