Re: streams fopen

From: Andres Kroonmaa <andre@dont-contact.us>
Date: Thu, 20 Feb 2003 17:36:57 +0200

On 20 Feb 2003, at 9:41, Henrik Nordstrom <hno@marasystems.com> wrote:

> On Thu, 20 Feb 2003, Andres Kroonmaa wrote:
>
> > Hey, watch your words, i'm Solaris shop ;)
>
> I am free to express my opinion. Any my firm opinion in this matter is
> that the Solaris 32 bit STDIO subsystem limited to fd < 256 is just crap
> and seriously crippling the Solaris system for absolutely no reason.

 ah, of course you are, just calling names is not cute ;) Solaris is damn
 good os, despite all its conservativeness.

 There was reason. initial stdio posix.1 spec was crippled if you like. It
 lacked means to access FILE struct and coders had to do that outside specs,
 directly accessing FILE structs. Changing stdio rudely was freedom, but it
 would have broken alot of business and scientific environments depending on
 that, and it was hard choice. Linux has always had luxury to pull the plug
 between versions, and noone really expected binary compatibility from it.

 Sun decided that leaving this stdio alone was less damage than loosing
 ability to run old binaries natively, especially given that apps needing
>256 files open can workaround the limitations and at least notice the
 limitation during responsible testing.

> > When I first encountered this issue, I was told by Sun tech with sad
> > mode that yeah, sux, but thats invented looong ago that FILE has 8bits
> > for FD, and that they are forced to drag this along all the way for
> > backward compatibility. He also began shining suggesting 64-bit api.
> > Considering binary backward compatibility as crippledness is something
> > we owe to linux.
>
> This is not even about binary backward compability. They could easily have
> solved the problem in binary backward compatible ways the day SunOS
> started to support more than 256 filedescriptors per process, only
> requiring certain broken applications and libraries to be recompiled to be
> able to use more than 256 filedescriptors. Using binary compability as an
> excuse for not doing anything about such silly thing is intentional
> crippling of the system in my view.
 
 It is about binary compatibility, and it isn't even about the FD itself,
 but about rest of the FILE struct offsets. Stream state flags mostly. In
 heavily MP apps that had to know state of streams.
 it was easy to do on OS side. It WAS considered, it was pushed, weighted,
 and it was decided that it would cause more harm. recompiling large complex
 mission-critical apps for just this silly thing would cause only amuse,
 and huge risks and expenses. Sun built new hardware that needed new OS
 for its support, and old binaries had to run natively. Sun wasn't building
 exactly $1k desktops, and not for exactly hobbysts.. It had to listen
 to its customers.

 Why such disrespect, I'm amazed? Leaving alone API that works for
 99.999% of apps hands down, instead of pursuing perfectionism and force
 to recompile bunch of critical but damn old apps that don't even need
>256 files, but need to run on different OS versions in NFS environment,
 compared to those few that can make trivial workarounds, is that
 crippling of a system?

 nah, but I don't really care. Solaris has lf64 for years now.

------------------------------------
 Andres Kroonmaa <andre@online.ee>
 CTO, Microlink Data AS
 Tel: 6501 731, Fax: 6501 725
 Pärnu mnt. 158, Tallinn
 11317 Estonia
Received on Thu Feb 20 2003 - 08:47:25 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:19:16 MST