We recreated the Unix Rosetta Stone

Bringing back the classic with modern OSs and commands

January 24, 2020

In the 90s, operating systems with TCPIP mainly consisted of various flavours of Unix. Despite their common origins, and various standardization attempts - and because they were in commercial competition - none of the Unix variants behaved similarly.

So The Unix Rosetta Stone was created. Much like the original Rosetta stone, which allowed historians to convert between Ancient Egyptian hieroglyphs, Demotic script, and Ancient Greek, the Unix Rosetta Stone allowed you to convert commands between IRIX, SCO Unix (the Demotic script of the Unix world), DG/UX and a bunch of other different Unix OSs.

an image

Fun times. Then a few things happened in no particular order:

  • Despite their common origins, and various standardization attempts - and because they were in commercial competition - none of the Linux variants behaved similarly.
  • Linux nevertheless replaced most of the other server Operating Systems on the list.
  • OS X became the dominant desktop Unix.
  • People who liked dtrace, zones, ZFS and other Good Things from Sun moved to SmartOS.
  • First iproute2 and then systemd changed major parts of Linux.
  • Windows got powershell, which was pretty good.
  • People started to realize that OpenBSD was right all along.

The current state of 'How do I do X on another OS'

The Unix Rosetta Stone is still around, but badly out of date - most of the proprietary operating systems don't exist, those remaining are legacy systems in banks. macOS doesn't use NetInfo Manager anymore, and you're unlikely to deploy old versions of RHEL. The revision control system is non-existent, and pull requests consist of email.

When working on SSL CSR creation for Windows, we wondered what the Windows equivalent of openssl req was. Most answers we found were based on clicking through screens in the IIS Admin console - since the whole point was to generate a command that could be pasted onto a Windows Server, the GUI answers weren't very useful.

So I got to thinking about the Rosetta Stone.

These days we have StackOverflow, but the non-programming, sysadmin-oriented StackOverflows don't have a lot of activity. In addition, they tend not have require references, so a lot of the answers are simply wrong.

And despite powershell being quite good (particularly when combined with an SSH server), there's still not a good source of info for the people who want to use Windows via command line. And the people who want to use Windows via command line tend to already know Unix commands.

macOS command line docs are also rare.

A lot of basic Linux docs are woefully out of date, pointing to tools like ifconfig (which has been deprecated for years in favor of the ip command), nslookup (its authors recommend you use dig instead), and hand-cooking traditional system V init shell scripts of varying quality rather than using a 10-line .service files with systemd.

Designing a new Rosetta Stone

The new Rosetta Stone should address the issues with the previous version:

Like these:

an image

Sorry DG/UX fans.

The idea is to document current stable, LTS, and server releases for each major platform - Windows Server, macOS, Red Hat Enterprise Linux, Ubuntu LTS, Debian stable, OpenBSD, and SmartOS.

Linux distributions vary in fundamental ways - even Ubuntu 14.04 LTS and Debian 8 have different init systems. So we treat them as different OSs.

We add references to official documentation, preferably from the distributor, since it will match the version distributed with the OS, otherwise from upstream projects.

Oh, and since most people don't want to look at 7 operating systems at once, we let you show just the ones you want to see. The Unix Rosetta does that too, but the UI is somewhat obscure.

Be easy to contribute to

The core of the Command Line Rosetta Stone is a single markdown file that anyone can edit and send a pull request for.

We do all the table work in a build script, so people who just want to add or edit things can justy edit the flat markdown and not worry about anything else.

So where is it?

The Command Line Rosetta Stone was a community project to help system administrators translate commands between different operating systems. While the original repository is no longer maintained, the concept lives on in various community resources and documentation sites.

The core idea remains valuable

The need for cross-platform command translation hasn't gone away - if anything, with the rise of containers and cloud platforms, administrators work across more systems than ever. Sites like SS64 and distribution-specific documentation remain valuable resources for this purpose.