Unix needs to grow and a consequence of that

January 25, 2013

I hope it will not be news to people that Unix is neither perfect nor complete. By this I mean that there are things that a traditional Unix system doesn't do ideally and that can be improved as well as any number of things that it doesn't do that people really do want. I'm not talking about minor technology additions on the side (IPv6, say); I'm talking about significant additions and changes.

(If you feel that Unix is only a server OS you may feel that it is more or less complete as it stands. I disagree; my Unix is general and in many non-server environments a traditional Unix system is clearly incomplete and lacks important features. And even as a server OS only Unix is still not perfect (eg try to tell me with a straight face that SysV init is the best init system possible).)

So Unix needs to grow and change. But there is a consequence of this, one having to do with people's attitudes about changes to Unix.

To put it simply: any number of people will say that such growth is fine but only as long as the growth is (perfectly) 'Unixy', that it fits beautifully into the spirit of Unix. Unfortunately the practical consequence of saying this is that you are actually saying that Unix can't grow.

(Let us set aside for now the chances of getting a roomfull of people to agree in detail on just what the Unix spirit is and whether or not something is sufficiently Unixy.)

The reality is that it has always taken time and experimentation to work out just how to do something new in the Unixy way and the first attempts were often not very good. Even Bell Labs, the very home of the Unix way, took years and multiple attempts to get things like window systems and networking to really fit right into Unix. Other core sources of Unix development did (much) worse. Things that we think of as big parts of the correct Unix way are often relatively late additions, displacing much older and cruder solutions.

(For instance, virtual filesystems like /proc seem obviously the right way to do things but they appeared only in the late 1980s and required a whole string of previous innovations from various places. And you really don't want to know how programs like ps got information about processes before /proc.)

If you insist that people get changes to Unix correct right from the start, on the very first attempt, you are demanding that they be even more insightful about Unix than Bell Labs was. This is more or less impossible so what you are really saying is 'you can't change Unix'.

(This elaborates on two tweets of mine.)

Comments on this page:

From at 2013-01-25 06:50:01:

SysV init - well, at least on Solaris it has been replaced long time ago when SMF integrated. Linux is heading in a similar direction as well.

What other features do you have in mind? (not that it is hard to come up with a wish list - I'm just curious what you would like to see.

By cks at 2013-01-25 12:06:35:

I started replying in a comment but the result totally got away from me; it turned into a monster list that I have put in a new entry, UnixNeedsToGrowII.

From at 2013-01-25 19:13:01:

(eg try to tell me with a straight face that SysV init is the best init system possible)

Of course it isn't. Everyone knows BSD's is....

Written on 25 January 2013.
« My Unix is a general purpose operating system
Some places where I think that Unix is incomplete or imperfect »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Jan 25 00:17:12 2013
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.