[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reflection and /proc
Charles Cazabon writes:
> Albert D. Cahalan <acahalan@cs.uml.edu> wrote:
>> Wrong. We have hit the mainstream; we can set the standards.
>> Everybody is following the Linux API now. (UnixWare, BSD...)
>
> SCO and *BSD doesn't mean 'everybody' -- Linux cannot expect to
> flagrantly violate existing practice and have the rest of the
> Unixen follow suit.
Oh please. Do you think Sun asks Compaq for permission to write
something useful? Do you think IBM waits for The Open Group?
> Breaking convention needlessly is just as bad as the Microsoft
> "embrace and extend" philosophy.
We already break convention in many _bad_ ways. We might as well
break it in good ways too. Nobody wants BlandOS.
We've already done "embrace and extend" on the editor concept.
Just look at what emacs does. The compiler has extra stuff too.
I have a big list of places where glibc blatantly violates common
practice and tradition. I don't mean useful stuff either.
> Solaris, HP/UX, Digital Unix, AIX, et. al. are too commercially
> important for Linux to ignore.
Sure... we should steal every feature they have, then add extensions.
---------------- List of glibc misfeatures: ---------------
llseek() does not have a prototype; this intentional bug destroyed some
people's filesystems when fsck ran
fputs() does not return a useful value. Both Digital UNIX and Solaris
return the number of characters printed.
SysV shared memory IPC is messed up. The struct ipc_perm members key
and seq were renamed to __key and __seq This is incompatible with
libc 5, AIX, and Solaris, Digital UNIX, etc. Some apps won't even
compile anymore because glibc doesn't define SEMMSL and other SysV
IPC related constants. (and they left the UID as a 16-bit value too)
signal() behavior is now incompatible with both libc 5 and UNIX(TM).
It follows the non-standard BSD behavior now, gratuitously breaking
old software in hard-to-detect ways.
socklen_t is not the same size as an int. According to Linus,
"shoot the library maintainer". I agree!
sigsend() is missing
Almost everything must be compiled with -D_GNU_SOURCE, including
non-GNU software. The namespace logic is backwards; one should
specify POSIX to get a plain, bland, vanilla (nearly useless) namespace.
-
Linux-future: thinking about the future of the Linux kernel
Archive: http://humbolt.nl.linux.org/lists/
Wish list: http://users.ox.ac.uk/~mert0236/linux-future.html