2017-10-25
Having different commands on different systems does matter
In a comment on yesterday's entry about our frustrations with OmniOS lacking a lot of normal system commands, opk wrote:
As Chris mentions, there are alternatives and on a Solaris system, that means prstat and snoop. And for the vast majority of cases, they are more than just enough. Maybe they don't have quite so many options but it's unfair to criticize the lack of top and tcpdump if it is just that you're used to typing those command names on Linux.
I'm afraid that I have to disagree; I think it absolutely is fair to criticize a modern Unix system for being different in this way. In fact, I think such gratuitous differences should be criticized regularly.
If you operate in a homogenous environment (in this case, all
Illumos-based) then yes, this doesn't really matter; at most you
have an initial learning process as you come into the environment.
But if you operate in a heterogenous environment, every divergence
between different Unixes is a point of friction and an overhead.
It's yet another thing to remember (or to rediscover), and although
we might think otherwise, we have only a finite capacity to remember
and keep track of this sort of thing. It is simpler and better to
have tcpdump
and top
on every system than to have to keep track
of how each different system does these things.
(I don't object if a system wants to have extra commands, including ones that exist because they do more than the now-standard ones; that's up to it. I just want the standard set too.)
Today, pragmatically, merely having equivalent commands under different names is not good enough. Unixes that do this create annoyance and irritation in sysadmins that have to use them in heterogenous environments (and generally a lot of people do). You can say that it shouldn't be this way, but that's not solving the real problem. In fact, people adopted many of these tools in the first place not just because they were good but also because they created uniformity across your systems, even if you had to get there by compiling things yourself.
(To be clear, this is independent of either the features of the
commands or what command line arguments they take, although differences
there don't help matters. Merely renaming tcpdump
to networkdump
is enough to make life irritating.)