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).

By Unknown author — http://catb.org/~esr/jargon/html/U/Unix.html, Public Domain, https://commons.wikimedia.org/w/index.php?curid=31308

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.

Unix Emulators:

  • Cygwin is an open source "Linux-like environment for Windows [4.x and up]" (emulator) originally developed by Cygnus Solutions and then acquired by Red Hat.

    Similar to other Unix distributions regardless of OS or vendor, Cygwin has its own package manager — apt-cyg, which does not come installed by default. You would need to run the following commands to get the package from the specific website (wget) as shown below.

                  
                  wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
                

    Then you need to change the mode (chmod) of apt-cyg package to executable (+x).

                  
                  chmod +x apt-cyg
                

    As the last step, you need to move (mv) the apt-cyg package to /usr/local/bin so it can be accessible — included in the path system variable.

                  
                  mv apt-cyg /usr/local/bin
                

    Now that apt-cyg has been installed, made into an executable and made accessible in the path system variable, you can use it as any other apt package manager similar to apt-get as in Debian and its derivatives.

                  
                  apt-cyg install gcc-core  # compiler collection from GNU
                  apt-cyg install git       # version control system
                  apt-cyg install lynx      # text-only web browser
                  apt-cyg install nano      # text editor
                  apt-cyg install nasm      # assembly language
                  apt-cyg install pip       # package installer for Python
                  apt-cyg install python3   # language we all must to learn
                  apt-cyg install sqlite3   # relational database
                  apt-cyg install tidy      # utility to clean up HTML code
                

    By User:Cljk — Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=186257

  • Git for Windows offers a limited open source Bash emulator for Windows in order to access the Git version control system based on the MinGW-w64 (MINGW64) project. This emulator is often the choice of open source developers using Windows. As of 2018, GitHub including the Octocat (its mascot) became part of Microsoft.

    I have not found a package manager for MINGW64. I guess installing apt-cyg, but I have not tried it. As a purist, I would not do it.

    Copyright (c) 2021 Git for Windows, All rights reserved.; By Source, Fair use, https://gitforwindows.org/img/gw1.png

  • Termux< is an open source emulator and Linux environment for Android with its own package manager (pkg) Similar to apt-get (Linux), brew (macOS, also used in Linux) and other package managers, you can update the list of available packages in the pkg repository and upgrade the packages currently installed in the Termux instance (guest) running on Android (host). I would recommend doing this before installing any new package and to make sure that your packages are up-to-date.

              
              pkg update &&
              pkg upgrade
            

    The latter runs two commands in order — one after another using the && (and) operator.

    You can also install packages in the Termux instance using pkg calling the correct package name.

              
              pkg install [package_name]
            

    By Cyandie-overlord — Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=108727161