[TUHS] Macs and future unix derivatives

Andrew Warkentin andreww591 at gmail.com
Tue Feb 9 16:37:38 AEST 2021


On 2/8/21, Theodore Ts'o <tytso at mit.edu> wrote:
> On Mon, Feb 08, 2021 at 10:58:08PM -0500, M Douglas McIlroy wrote:
>> > Do they *really* want something which is just V7 Unix, with nothing
>> > else?
>> > No TCP/IP, no hot-plug USB support?  No web browsing?
>>
>> > Oh, you wanted more than that?  Feature bloat!  Feature bloat!
>> > Feature bloat!   Shame!  Shame!   Shame!
>>
>> % ls /usr/share/man/man2|wc
>>     495     495    7230
>> % ls /bin|wc
>>    2809    2809   30468
>>
>> How many of roughly 500 system calls (to say nothing of uncounted
>> ioctl's) do you think are necessary for writing those few crucial
>> capabilities that distinguish Linux from v7? There is
>> undeniably bloat, but only a sliver of it contributes to the
>> distinctive utility of today's systems.
>
> Well, let's take a look at those system calls.  They fall into a
> number of major categories:
>
> *) BSD innovations
>   *) BSD socket interfaces (so if you want TCP/IP... is it bloat?)
>   *) BSD job control
>   *) BSD effective id and its extensions
>   *) BSD groups
> *) New versions to maintain stable ABI's, e.g., (dup vs dup2 vs dup3,
>    wait vs wait3 vs wait4 vs waitpid, stat vs stat64, lstat vs lstat64,
>    chown vs chown32, etc.)
> *) System V IPC support (is support for enterprise databases like
>    Oracle "bloat"?)
> *) Posix real-time extensions
> *) Posix extended attributes
> *) Windows file streams support (the original reason for the *at(2)
>    system calls -- openat, linkat, renameat, and a dozen more)
>
> Ok, that last I'd agree was *pure* bloat, and an amazingly bad idea.
> But there are plenty of people who have bugged/begged me to add
> windows file streams because they were *convinced* it was a critical
> feature.  And I dare say bug-for-bugs Windows compatibility was worth
> millions of $$$ of potential sales, which is why they agreed to add it
> --- and why I kept on getting nagged to add that feature to ext4 (and
> I pushed back where the Solaris developers caved, so there.  :-)
>
> As for things like System V IPC support, that was only added to Linux
> because it was worth $$$, because enterprise databases like DB2 and
> Oracle demanded it.  Is that evidence of "cancer"?  You might not want
> it, but that's a great example of "one person's bloat is another
> person's critical feature".
>
> Or consider the dozen plus BSD sockets interface, which if removed
> would mean no TCP/IP support, and no graphical windowing systems.
> Critical feature, or bloat?
>
> But hey, if you only want V7 Unix, why are you complaining?  Just go
> and use it, and give up on all of this cancerous new features.  And I
> promise to get off of your lawn.  :-)
>
There's no reason any of that has to be implemented with primitives
though. All of that could be implemented on top of normal file APIs
fairly easily.

Also, sockets are not the ideal interface for a window server IMO. The
only reason they are used is because conventional Unix didn't provide
user-mode file server support until fairly recently (and the support
that's been added to more recent conventional Unices is a hack that
has poor performance and isn't used all that much).


More information about the TUHS mailing list