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.
Unix is a family of multitasking, portable, multi-user computer operating systems, which also have time-sharing configurations.
Unix systems use a centralized OS kernel which is responsible for managing the entire system.
The programming interface, file abstraction, built-in networking and persistent background processing called daemons are the other features and capabilities that are supported by a Unix OS.
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.
What is Linux?
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.
Difference Between Unix and Linux
|Linux||Unix and other Variants|
|Linux refers to the kernel of the GNU/Linux operating system. More generally, it refers to the family of derived distributions.||Unix refers to the original operating system developed by AT&T. More generally, it refers to family of derived operating systems.|
|Original code developed by Linus and the GNU Foundation||Original code developed by AT & T|
|The Linux trademark is owned by Linus Trovalds, and managed by the Linux Mark Institute under the Linux Foundation.||The UNIX trademark is certified by the Open Group. List of certified operating systems.|
|The Linux Standard Base (LSB), available as ISO/IEC 23360, is a standardization effort by a number of Linux distributors. LSB is mostly an extension of POSIX but has some differences. However, there isn’t a strong need for LSB certification as the various distributions use the same kernel in any case.||UNIX certification based on the ‘Single Unix Specification’ which is an extension of IEEE 1003 (POSIX), also available as ISO/IEC 9945. POSIX specifies programming APIs and shell and utility interfaces. POSIX was developed as a way to allow interoperability between different UNIX vendors.|
|GNU/Linux and derivates like Debian and Fedora||System-V Unix and derivatives like IBM-AIX and HP-UX; Berkeley Unix and derivatives like FreeBSD and macOS|
|Open Source under the copyleft General Public License||Berkeley Unix is partially open source under the BSD License. System-V Unix source may be procured under a proprietary commercial license.|
|Different variants maintained by different communities; with the kernel merging into the branch maintained by Linus||Different variants maintained by different companies; each maintains their own kernel|
|Designed as a general-purpose scalable platform for a broad set of applications.||Typically designed for a narrow audience with a defined set of target platforms and applications.|
|Broadly available as configurable software download and installer.||Typically shipped along with hardware e.g. MacBook|
|Free community support. Paid support available from a number of service providers.||Paid commercial support. Often leads to vendor lock-in.|
|Interfaces often evolve||Interfaces usually stable|
|Frequent updates, with quick bug fixes||Infrequent updates, and fixes may take time|
|Supports almost all file systems used across operating systems||Most versions support two or perhaps three file systems|
|Breadth of system administration tools often with limited focus e.g. Suse YAST||Each version typically has a mature system administration tool e.g. HP SAM|
|Preferred OS for cloud deployment and data centers primarily for economic reasons||Preferred OS for special purpose server requirements due to application availability, and internet servers for legacy reasons|
|Scalability achieved using clusters, grids or cloud.||Scalability achieved using clusters or grids|
|(A cluster is a collection of homogenous computers, a grid is a collection of distributed computers, and a cloud service is a collection of virtualized clusters.)|
|Most of the command line and graphical utilities are similar to Unix||Most of the command line and graphical utilities are similar to Linux|
We hope you must have understood the core differences between Unix and Linux from this article.
Let us now see some more important differences between Linux and Unix in the below tabular format:
|Developer||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.|
|Written in||C and other programming languages.||C and assembly language.|
|Source Model||Open source||Mixed. Traditionally closed source, however, few Unix projects are open source which include illumos OS and BSD (Berkley Software Distribution) OS.|
|Initial release||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||Monolithic kernel||Kernel Type varies. It can be monolithic, microkernel and hybrid.|
|License||GNUv2(GPL General Public License) and others.||Licensing varies. Few versions are proprietary while others are free/OSS.|
|Default user interface||Unix shell||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.|
|Cost||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.|
|Examples||Debian, Ubuntu, Fedora, Red Hat, Android, etc.||IBM AIX, Solaris, HP-UX, Darwin, macOS X, etc.|
|Architecture||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.|
|Security||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.|
|Price||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.
Linux vs Unix Kernel
As Linux alone is just a kernel, it is worth discussing the major differences between the Linux Kernel and Unix kernel.
There are three types of the kernel i.e. monolithic, micro and hybrid (combination of monolithic and micro) as seen in the below imag
In monolithic kernel architecture, the entire OS works in single kernel space. It single-handedly defines a high-level virtual interface on top of the computer hardware.
Though Linux kernel derives most of its characteristics from Unix/ Unix-like kernels, however, there are some significant points of differences between the two.
In microkernel architecture, the core services of the OS run in one process while the other services run in different processes.
In µ kernel, the near-minimum amount of mechanisms is included in the kernel mode. These mechanisms include basic IPC (inter-process communication), scheduling and low-level address space management.
In terms of source code size, generally, a microkernel is smaller than the monolithic kernel.
|Features||Linux Kernel||Unix Kernel|
|Kernel approach||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.|
|Streams||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.
|Kernel threading||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.
|In Unix, the LWP is based on kernel threads.|
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.
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.