What are UNIX® and Unix?
"You need Unix-level performance and reliability. You don't
have a Unix-level budget."
— Microsoft advertisement (2003)
Unix is one of the oldest operating systems,
originally coded in assembly in 1969 by Dennis Ritchie (right)
and Ken Thompson (left) at Bell Labs (pictured below).
In 1972, Unix was coded again in C (its native
language) for portability. Unix is the most portable and reliable
OS.
By the way, UNIX® is not the same as Unix. UNIX® (in
upper case letters and often presented with the copyright symbol)
is a trademark while Unix (in proper case, proper name) is a
philosophy and an IEEE standard — Portable Operating System
Interface (POSIX). The open standard (as well as the trademark)
is currently owned and managed by The Open Group.
The current version is V7, which is "aligned
with the Single UNIX Specification Version 4, 2018 Edition"
(The Open Group, 08/2022). The latter unites specifications,
product, trade mark and technology under a single mark (name)
rather than having entities within UNIX® (The Open Group,
08/2022, published in 2020).
Several vendors have registered versions of
UNIX®. They are Tru64 Unix, IBM AIX, UnixWare, IRIX and Sun
Solaris.
There are also several clones such Linux. This means that
these are not UNIX®. They UNIX® clones, but nonetheless they are
considered Unix. If you are confused, you are not alone.
About 90% of the internet relies on a variation
of Unix (normally either Linux or BSD), with
Apache Software Foundation (ASF) or related technology.
If you are interested in learning Unix as well as
its clones or other derivatives, you should learn how to use, at
least, one shell.
Installing Unix (or Unix Clones):
Unfortunately, I have no experience installing or using Tru64
Unix, IBM AIX, UnixWare, IRIX or Sun Solaris.
I have experience installing BSD
and Linux
though. In the latter case, in most cases, installing the OS is
as simple as following the instructions from the installer. Some
are more technical where you need to know the hardware in detail
and select the proper packages.
Shells
Because there many distros in the market (mostly
based on a parent distro — for example, Linux Mint based
on Ubuntu, which is based on Debian — learning Linux is not
necessarily learning how to use the GUI installed in the
distro of your choice. Learning Linux is learning how to
operate the command language interpreter or shell. Just like the
number of distros, there are several shells available
for UNIX® and Unix-like OSs.
-
Bourne Shell (sh) was developed by
Stephen Bourne for Bell Labs in 1979 for Version 7 Unix. The
prompt is $ in user mode (user@foobar:~$)
and # as root using sudo -i
(root@foobar:~#).
-
Bourne Again Shell (bash) was
developed by Brian Fox for the GNU Project in 1989 as a
replacement of the 1979 Bourne Shell. It
"incorporates useful features from the Korn Shell (ksh) and the C Shell (csh)" (GNU
Project, 09/2020). Bash is the most used and most
commonly pre-installed in many Linux distributions. This
is the shell that I have used most and therefore I am
most comfortable with.
-
KornShell (ksh) was developed by
David Korn for Bell Labs in 1983. It is backward
compatible with bash
and partially compatible with C shell.
-
Almquist Shell (ash) was developed
by Kenneth Almquist in 1989 as a replacement for the
Bourne Shell in
System V4 (BSD).
-
C shell (csh) was developed by Bill Joy
in 1978 for 2BSD. The
prompt is % in user mode.
-
TENEX/TOPS C shell (tcsh,
pronounced tish) was developed by Ken Greer at
Carnegie Mellon University in 1975 and merged
tcsh into csh in 1981. Mike
Ellis at Fairchild A.I. Labs expanded tcsh with
command competition in 1983. Other key developers include
Paul Placeway and Christos Zoulas. It is backward
compatible with csh.
-
Z shell (zsh) was written by Paul
Falstad in 1990 while studying at Princeton University.
It is named after then-Princeton professor Zhong Shao. In
2019, Zsh became the default shell in macOS.