Re: Linux-2.1.54..

Mailing lists (lists@cnti.uanet.kharkov.ua)
Wed, 10 Sep 1997 13:13:43 +0300


In message <199709082046.QAA14346@dcl.MIT.EDU> Theodore Y. Ts'o writes:

> Date: Sat, 6 Sep 1997 17:22:17 -0700 (PDT)
> From: Linus Torvalds <torvalds@transmeta.com>

> I'm also seriously considering breaking anything that uses various other
> old system calls (getting rid of oldstat etc). It's not that each and
> every of these small features is painful to maintain: they are usually
> pretty painless. It's the accumulation of these things that I'd perfer not
> to ever have to face.

>Linus,

> What I'd strongly advise that you do is to change the old syscalls
>to printk a warning, and remove them *after* 2.2 is released, in the 2.3
>development tree. For some syscalls where we can be reasonable certain
>that they've never been used, we could simply remove them, but I'd
>strongly suggest that we err on the side of safety.

> I plan to do same thing with desupporting the old /dev/cuaXX
>devices --- add printk's warning that the cua devices are deprecated,
>and then remove them after 2.3 starts.

Yes, I think thats will be optimal decission.

> As far as the select() issue is concerned, although I don't feel
>as strongly about this as Alan obviously does, my preference would be to
>keep the old behaviour in the kernel, and then let the libc
>implementation save and restore the timeout value for compatibility with
>other systems. It's easy to put the "select wrapper" in libc, and then
>it's easy enough to have both normal select and linux_select without
>needing two system calls. (Although I suppose you might still have do
>something special for OSF/1 and Solaris compatibility, hmm...)

I think that select() as a system call must stay with timeout
modification in 2.2 & 2.3 too. Why we must make Linux as bad as any
other Unix is ? To my mind Linux MUST be better, or even best!
Problems with compatibility can be fixed in libc, and no problems
there, but in this case we have a posibility make smth like:

#ifdef linux
_syscall5(int,select,int,n,fd_set *,readfds,fd_set *,writefds,fd_set *,exceptfds,struct timeval *,timeout);
res=select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
#endif
and we have select() with timeout modification, wich very usefull in some
cases. This select() system call may be used for programs which can't be
running under any other system, which developed specialy for use with
Linux - for example trafshow/packet.

In any case this options for select() can be make as a configurable options,
so everyone can decide is this options need for him.

SY, Stanislav Voronyi.