On Thu, Apr 03, 2008 at 12:19:32PM +0300, Shachar Shemesh wrote:

>> My point is that the kernel (or glibc, or any other major piece of
>> system software) usually has subtle dependencies on other pieces of
>> system software.

> My point is that "user space backwards compatibility" is meaningless
> if there is no, well, user space backwards compatibility. Relying on
> the insides of file systems in motion (such as sysfs was at the
> early versions of 2.6) is sort of acceptable, but I really would
> have preferred it if Documentation/filesystems/proc.txt would say
> something along the lines of "the interface is guaranteed to have
> the field name, a bunch of white spaces, a number and a unit (which
> can be kB, mB or gB only)". In other words, if the docs gave all I
> needed to write a user space program that, if didn't actually work
> under all conditions, at least could tell when it doesn't have
> enough info to work, for all future versions. Otherwise, it seems to
> me, that the "stable userspace" pledge is just a facade.

You are mixing two different things. The system call interface is
stable and syscalls are never removed, only added. A 10-year-old
binary should - in theory - run on 2.6.25-rc8. The kernel, however,
employs a number of userspace helpers such as mount(8). The interface
between those helpers and the kernel (e.g., format of /proc files)
does change occasionally. The kernel developers however do understand
that just because an interface exists for the use of a limited subset
of helpers does *not* mean nothing else will use it (i.e., something
else will use it), and take extra care to only change the interface
when absolutely necessary.

Cheers,
Muli

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to