I do not like Unix's fossilization

January 17, 2010

I like Unix, but I'm not entirely happy with the modern world of Unix, and not for the reason you might expect. Instead of disliking the changes from the old days, I find it distressing to see Unix slowly fossilize.

Unix should be picking up new good ideas. It should be adopting better ways of writing shell scripts, adding more little programs, and all of that. Yes, things like seq and (GNU) stat and (GNU) date and time are not in the Posix specification and all that, but they're useful and I think that they're in the Unix spirit. That they are so strongly resisted makes me sad.

(I'll grumpily note that traditional Unix is really short of good ways for shell scripts to extract various sorts of information about things around them in ways that are easily usable by shell scripts. Yes, you can sort of parse 'ls -l' output and the like, but you shouldn't have to; ls -l is designed for human consumption, not for shell scripts.)

You can argue about whether these new ideas are strongly resisted, but I think that they are. Linux distributions adopt them fairly widely, but then they don't tend to migrate to FreeBSD, OpenBSD, and so on, and Solaris and AIX are of course more or less completely hopeless; most of the people running Solaris now don't want any changes, and Sun is happy to oblige. On the other hand, OpenBSD has been fairly successful at introducing commands to make shell scripting more secure and getting them widely adopted (eg, mktemp), so maybe there is some hope.

(One argument is that many of the things that aren't propagating are GNU tools, which have both licensing and cultural issues as roadblocks. OpenBSD has easier licensing for everyone to adopt, and people who care about this probably tend to feel culturally closer to it.)


Comments on this page:

From 128.100.102.5 at 2010-01-18 13:01:04:

I think you've overlooked the purpose of the ports tree in FreeBSD, at least. The core tools (/bin, /usr, ....etc) are not expected to change unless there's an extremely good reason. New tools or new versions of old tools are often available via the ports tree. I'm guessing that it's rare to see a FreeBSD system running without any tools from the ports tree.

By cks at 2010-01-19 00:14:47:

I have two issues with things like FreeBSD ports for this stuff. First, they don't seem to be installed all that often (the two FreeBSD machines I have easy access to don't have any of these things, although they do have jot in /usr/bin). Second, because they're optional you can't really use these programs in shell scripts that you want to be portable over even FreeBSD installations; this is important to me because one of the reasons I want things like stat is to make shell scripts easier to write.

From 66.92.52.243 at 2010-01-19 00:54:23:

I take it you haven't looked at OpenSolaris in the last two years? GNU tools are at the front of PATH by default. A lot of GNU compat changes have gone into the Solaris tools.

By cks at 2010-01-19 01:11:21:

OpenSolaris isn't interesting until it turns into Solaris proper (or perhaps stages a great escape from Sun to become a real open source project, but I'm not holding my breath on that one). At this point, no one has any idea what OpenSolaris changes will make it into Solaris 11.

From 68.81.141.96 at 2010-01-20 11:46:01:

The answer would seem to be "most of it." SXCE is dead. LiveUpgrade has been axed. IPS is the way forward. No reason to not have Crossbow et al in GA. It may not be exactly the same, but it's going to be damn close.

Written on 17 January 2010.
« Different visions of what packaging systems are for
More on mismatched sectors on Linux software RAID mirrors »

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

Last modified: Sun Jan 17 01:07:05 2010
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.