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.
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.
systemdchanged 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. OS X doesn't use NetInfo Manager anymore, and you're unlikely to deploy RHEL 4 in 2015. The revision control system is non-existent, and pull requests consists of email.
A few weeks back, when working on CertSimple's SSL CSR creation for Windows, I wondered what the Windows equivalent of
openssl req was. Most answer I 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.
OS X command line docs are also rare.
A lot of basic Linux docs are woefully out of date, pointing to tools like ifconfig (which hasn't been maintained in a decade, isn't used by Linux distros anymore, and might just refuse to show you your network interface at all), 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 like the rest of the OS.
Designing a new Rosetta Stone
The new Rosetta Stone should address the issues with the previous version:
Feature current, popular server OSs.
Sorry DG/UX fans.
We're documenting the current stable, LTS, server release. Ie, Windows Server 2012, OS X 10.10, Red Hat Enterprise Linux 7, Ubuntu 14.04 LTS, Debian 8 (AKA Jessie), OpenBSD 5.6 and the current SmartOS release.
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?
Presenting the Command Line Rosetta Stone.