Unix Vs Linux: Learn what is the Core Difference between UNIX and Linux Architecture, Kernel And Commands
Linux is nothing but a UNIX clone which is written Linus Torvalds from scratch with the help of some hackers across the globe.
Unix and Unix-like operating systems are a family of computer operating systems that derive from the original Unix System from Bell Labs which can be traced back to 1965.
Linux is the most popular variant and there comes in a number of different distributions.
What is UNIX?
Unix is considered as the mother of most of the operating systems.
The design of Unix systems is based on “Unix Philosophy” which includes the following characteristics:
Usage of plain text for data storage.
Hierarchical file system.
Handling devices and some specific kinds of inter-process communication (IPC) as files.
Employing a huge number of software tools.
Multiple small, simple and modular programs which can be threaded together via a command-line interpreter using pipes, contrasting to use a single monolithic program which comprises of all the same functionality.
It’s worth mentioning here the below quote about Unix Philosophy:
“Although that philosophy can’t be written down in a single sentence, as its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves. Many UNIX programs do quite trivial things in isolation, but, combined with other programs, become general and useful tools.” – Brian Kernighan & Rob Pike
The below diagram will depict you the Unix architecture.
The master control program of Unix is its Kernel. The kernel has full control over the entire system. It has subsystems that offer services to file system handling, resource handling, memory management, start & stop programs and few other low-level core tasks.
The kernel is the heart of the OS and acts as an interface between the user and hardware. Each kernel subsystem has certain features like concurrency, virtual memory, paging, and a virtual file system.
In the outer layers of the architecture, we have the shell, commands and application programs. Shell is the interface between the user and the kernel. Shell and the user types in the commands, interpret these commands and call the computer programs accordingly.
Example of the Unix operating system is Solaris and HP-UX. The largest distributors of UNIX systems include IBM, HP, and SUN.
By now you would have got a fair idea about Unix. Let's now explore Linux in detail.
People do confuse a lot between the terms Unix and Linux and they generally ask questions like “Is Unix Different from Linux?” / “Are Linux and Unix the same thing?” / “Is Linux like Unix?”/ “Is Linux built on Unix?”.
Here is the answer to all such questions. First, let me clear your confusion in a one-liner. Linux and Unix are different but they do have a relationship with each other as Linux is derived from Unix.
Linux is not Unix, but it is a Unix-like operating system. Linux system is derived from Unix and it is a continuation of the basis of Unix design. Linux distributions are the most famous and healthiest example of the direct Unix derivatives. BSD (Berkley Software Distribution) is also an example of a Unix derivative.
At this juncture, it is important for us to make you clear about what is Unix-like?
A Unix-like OS (also called as UN*X or *nix) is the one that works in a way similar to Unix systems, however, it is not necessary that they conform to Single UNIX Specification (SUS) or similar POSIX (Portable Operating System Interface) standard.
SUS is a standard which is required to be met for any OS to qualify for using ‘UNIX’ trademark. This trademark is granted by ‘The Open Group’.
Few Examples of currently registered UNIX systems include macOS, Solaris, and AIX. If we consider the POSIX system, then Linux can be regarded as Unix-like OS.
As per Linux kernel official README file, Linux is a UNIX clone that is developed from scratch by Linus Torvalds and team. It targets for POSIX compliance. The Linux kernel code was completely written from scratch. It is designed in such a way so that it acts like Unix but it does not have the original Unix code in it.
It is also significant to note that Linux is just the kernel and not the complete OS. This Linux kernel is generally packaged in Linux distributions which thereby makes it a complete OS.
Thus, Linux is only the Kernel, while Linux distributions can be treated as the OS. On the other hand, UNIX in itself is a complete OS as everything (all required application tied together) comes from a single vendor. For Example,Solaris.
Linux distribution (also called as a distro in short) is an operating system that is created from a collection of software built upon the Linux Kernel and is a package management system.
A standard Linux distribution consists of a Linux kernel, GNU system, GNU utilities, libraries, compiler, additional software, documentation, a window system, window manager and a desktop environment.
Most of the software included in Linux distribution is free and open source. They may include some proprietary software like binary blobs which is essential for a few device drivers.
Linux based OS Architecture
Thus, Linux distributions actually make the Linux kernel completely usable as an operating system by adding different applications to it. There are various flavors of Linux distributions that serve a wide range of user needs.
For Example, we have OpenWrt Linux based OS for embedded devices, Linux Mint for Personal computers and Rocks Cluster Distribution for supercomputers. In total, around 600 Linux distributions do exist.
It will be interesting for you to know that Google’s popular Android mobile OS is based on Linux. Every iteration of the Android OS is built on the current Linux kernel.
Unix Vs Linux Commands
There are certain differences between the shell commands i.e. even among the versions of the same Unix variant. However, what varies most is the internal shell that is built-in rather than the presentation.
On the whole, efforts are made to keep Linux as close as possible to Unix by complying with the POSIX standards. Hence, the terminal commands in Linux distros and Unix operating systems are not exactly the same, but, there are not many differences too.
Each Linux distribution in itself has its own way of execution.
For Example, in CentOS which is a Linux family OS, we use yum (yellowdog update modifier) commands for installation of new packages, while in Debian which is another OS from the Linux family, we use apt-get commands for installation.
In IBM AIX, which is a proprietary Unix OS, we use -finger command to check who is logged into the system. But this command is not used in Linux. In Linux, we use the pinky command to fetch the same result.
In Ubuntu/Debian (a Linux OS), we have fdisk, parted, gparted commands for the ‘create’ task. On the other hand, in Solaris (a Unix OS), we have a format, fmthard for the ‘create’ task.
You can refer to the list of Linux and Unix commands, you will find that the Linux and Unix commands are similar but not exactly the same.
So far, in this article, we have seen the generalized core differences between Linux and Unix. These differences can be more specific if we compare the exact versions of the two. Let us see this through some examples.
Solaris vs Linux
Solaris, which is now called Oracle Solaris is a Unix family OS. Let's compare Linux with Solaris.
Linux supports more system architectures than Solaris does. Hence, Linux is more portable.
While talking about stability and hardware integration, Solaris seems to better here. Linux also has a faster rate of development when compared to Solaris.
There are few other technical differences between the two, but here we are limiting our comparison only to performance.
MacOS vs Linux
MacOS is a certified Unix OS. It has its own kernel named XNU. It is used in Apple’s computers which are considered as the most reliable PCs.
MacOS is relatively easy to set up. On the other side, Linux is cheaper and has a lot of open source software available as against Apple’s proprietary solutions. Also, Linux is more flexible as it can be executed on almost any hardware whereas MacOS can run only on Apple hardware. For Example, iPhones.
MacOS uses HFS+ as a default file system whereas Linux uses ext4.
Let us now see some more important differences between Linux and Unix in the below tabular format:
Inspired by MINIX (a Unix-like OS), Linux was originally developed by Finnish-American software engineer Linus Torvalds. Since it is an open source, we have community developers for Linux.
Originally derived from AT&T Unix, it was developed at Bell Labs by Kenneth Lane Thompson, Dennis Ritchie, and 3 others.
C and other programming languages.
C and assembly language.
Mixed. Traditionally closed source, however, few Unix projects are open source which include illumos OS and BSD (Berkley Software Distribution) OS.
Linux is newer when compared to Unix. It was derived from Unix and was released in September 1991.
Unix is older. Was released in October 1973 for outside parties. Before that, it was used internally in Bell Labs since its inception in 1970.
Kernel Type varies. It can be monolithic, microkernel and hybrid.
GNUv2(GPL General Public License) and others.
Licensing varies. Few versions are proprietary while others are free/OSS.
Default user interface
CLI (Command Line Interface) and Graphical (X Windows system)
Text Mode Interface
By default, the shell is BASH (Bourne Again Shell). Moreover, is compatible with many command interpreters.
Originally the Bourne shell. It is also compatible with many command interpreters.
Can be obtained and used freely. There are priced versions of Linux as well. But, generally, Linux is cheaper than Windows.
Proprietary operating systems have different cost structures set accordingly by the vendors selling it.
Debian, Ubuntu, Fedora, Red Hat, Android, etc.
IBM AIX, Solaris, HP-UX, Darwin, macOS X, etc.
Was originally created for Intel's x86 hardware, ports available for a lot of CPU types.
Compatible with PA and Itanium machines. Solaris is also available on x86/x64. OSX is PowerPC.
Threat detection and solution
As Linux is mainly driven by open source community, many developers across different parts of the world are working on the code. Hence threat detection and solution is quite fast in case of Linux.
Due to the proprietary nature of Unix, users need to wait for proper bug fixing patches.
Both Linux and Unix based OS is generally regarded as very well protected against malware. This is attributable to lack of root access, quick updates and comparatively low market share (as compared to windows). As of 2018, there has been none widespread Linux virus.
Unix is also considered to be very safe. It is even harder to infect as the source is also not available. There is no actively spreading virus for Unix nowadays.
Linux is free. However, corporate support is available at a price.
Unix is not free. However, some Unix versions are free for development use (Solaris). In a collaborative environment, Unix costs $1,407 per user and Linux costs $256 per user. Hence, UNIX is extremely expensive.
Unix is very old and is said to be the mother of all operating systems. Linux kernel is also derived from Unix. The major difference between Unix and Linux based operating systems is not in the presentation part, but on how they work internally, i.e. mainly at the kernel part.
The difference between the two will also depend upon which exact versions of Linux and Unix you are comparing.
It’s also essential to state that Linux (and many other Unix-like OS) are free to obtain and modify, whereas Unix operating systems are not. Cost is always a major concern while deciding what technology to use, and Linux has an edge in this regard.
Linux is more flexible and free when compared to true Unix systems and that is why Linux has gained more popularity. While discussing the commands in Unix and Linux, they are not the same but are very much similar. In fact, the commands in each distribution of the same family OS also varies.
Solaris, HP, Intel, etc. employ Unix internet servers, workstations, and personal computer. While, Linux is widely employed for computer software & hardware, gaming, tablet, mainframes, etc.
There are studies which say that Linux is growing fast than any other OS in the past few years. Hence, in the future, Linux may tend to leave UNIX installations far behind.
Hope you enjoyed this informative article on Unix and Linux difference!!
Linux follows the monolithic kernel approach.
Unix kernel can be monolithic, microkernel or hybrid. For Example, macOS has a hybrid kernel, Solaris has the monolithic kernel, and AIX has a monolithic kernel with dynamically loadable modules.
Adding/removing features of the kernel
Provides a great feature through which the kernel components like device drives can be dynamically added and removed as modules. This feature is called as loadable kernel modules (LDM). This eliminates the need to compile the whole kernel again. This feature in turn gives great flexibility to Linux.
Traditional Unix systems kernel need static linking of new systems being added.
In Linux, there are no streams I/O subsystem.
In most of the Unix kernels, streams I/O subsystem is included which turns out to be the desired interface for writing device drivers, terminal drivers, etc.
Preemptive vs non-preemptive approach
Normally a Linux kernel is non-preemptive. However, in recent times, Linux real-time OS has started using preemptive kernels.
Some Unix systems are fully preemptive. For example, Solaris 2.x. etc.
Linux uses kernel thread just for running some kernel code periodically.
Many Unix-like operating systems use kernel thread for the purpose of process context switching.
Ways to handle the multi-threaded environment
Through multi-threading, more than one independent execution flows which are called lightweight processes (LWP) are created. In Linux, LWP is created by calling clone () function. These processes in Linux can share physical memory, opened files, address space, etc.