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 -y <package_name>
                  
                  apt-cyg install -y gcc-core             # compiler collection by GNU (C, OpenMP)
                  apt-cyg install -y gcc-debuginfo        # compiler collection by GNU (debug info)
                  apt-cyg install -y gcc-g++              # compiler collection by GNU (C++)
                  apt-cyg install -y gcc-objc             # compiler collection by GNU (Objective C)
                  apt-cyg install -y gcc-objc++           # compiler collection by GNU (Objective C++)
                  apt-cyg install -y git                  # version control system
                  apt-cyg install -y lynx                 # text-only web browser
                  apt-cyg install -y mc                   # terminal file manager
                  apt-cyg install -y nano                 # command line text editor
                  apt-cyg install -y nasm                 # assembly language by Netwide Assembler
                  apt-cyg install -y python3              # language that we should all learn
                  apt-cyg install -y python3-pip          # package manager for `python3`
                  apt-cyg install -y sqlite3              # relational database with no GUI
                  apt-cyg install -y tidy                 # utility to tidy up HTML code
                  apt-cyg install -y whois                # access to the `whois` database (domain registration)
                

    My only complaint about apt-cyg is that it cannot upgrade packages. You need to run the Cygwin installer and select the new packages the installer finds. There is also no way to automate upgrades.

    Note that not all Linux applications are ported to Cygwin. In some cases, like GNU compilers (gcc-*), the applications are ported, but they are not bundled as available for various Linux distros (no build-essential). You should refer to the Cygwin installer and/or the Cygwin website for a complete list. Third-party applications might also be available, which you might need to compile or install at your discretion.

    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.

    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