Thursday, July 13, 2006

The Unix Command Compression & Encryption Algorithm

"Wow, you mean there is such a thing?", you gasp in all-too-late recognition.

"Now wait", say I.

While beginning my company's first use of (good-guy) old SCO unix in 1984, we noticed the extreme-ness of the command names could have been motivated by the desire to minimize typing in the face of 10 characters per second defining the bandwidth of the user interface, e.g. [ w cp dd df ed ex ln ls mt mv ps rm sh su vi, and ac ar as at bc cc ci co dc du ef ex gs id jw ld lp lz m4 nc nl nm od pr sg tr ud ul uz wc. But also there were commands, used just as often, that did not follow that pattern, e.g. grep more kill mail nice sort sync true. And what about basename?

That's where encryption came in. You see, we could tell that the goal was never to obscure reading the command, after all we were all assembly programmers skilled in mnemonics. This was more about obscuring the writing of commands. The cult of the unix power user. We were there, but we had pity on our more, normal, user community and never tried to make them believe that there was any sense behind the alphabet soup, just memorize.

No comments: