The background and differences between Unix and Linux.
While searching the Internet for the answer to the question “What are the differences between Unix and Linux,” I came across several websites and message boards that claim there are no noteworthy differences between them. It is true that both operating systems share a common ancestor: a monstrosity by the name of MULTICS, and that the two are very similar, but to say that there are no significant variations between them is ridiculous. Indeed, they are quite dissimilar, and in this article, I will explain some of the differences that make Unix and Linux two unique operating systems.
The History of Unix and Linux:
Ken Thompson and Dennis Ritchie created Unix at AT&T in 1969. Unix spawned from an earlier operating system called MULTICS, and was meant to be a single-processor version of the much larger os. In fact, that is where it got its name: un means “one” and ix is derived from MULTICS. Thusly, Unix is often spelled in all caps, just like its parent operating system. By 1974, Unix had become very efficient and was frequently used in scientific and academic environments. Widespread distribution among so many different institutions caused Unix to be ported to more system types than any other operating system. The University of California at Berkeley contributed much to Unix, eventually bringing about commercial versions, such as IS/1 and XENIX, in the late 1970s. Unix is a registered trademark of the Open Group.
The Linux kernel had a more humble beginning. It was developed in 1990 by a Finnish computer scientist named Linus Torvalds. The blueprint for Linux was a classroom teaching system called Minix. The Linux kernel closely resembles Unix, which Minix is derived from. Most of the operating system’s software applications and tools came from open source development. Linux should be pronounced “lee-nooks,” as it would be in Finland, however, most people pronounce it “lynn-icks.”
Comparing Their Features and Uses:
Unix is better suited for mission-critical applications, such as database management or anything else that is vital to the survival of an enterprise. One of its main functions is networking. It handles large numbers of processors very well, and is perfect for huge single-system data centers, although most current organizations use clustered servers instead of supercomputers, so this is rarely seen as an advantage. Unix is often more expensive than Windows or Linux because software developers must create a separate port for each flavor of Unix. The Unix operating system consists of the kernel, file system, and shell, which is the command line interface and has hundreds of commands (Linux also contains these three parts, though some versions use the Bourne Again Shell). The main shells are the original Bourne Shell, C shell, and the Korn shell. In the Unix shell, command options are called flags.
The current Linux kernel (version 2.4) can support up to 16 processors, much less than Unix (but this is made up for by superb clustering abilities). It is open-source, which means anyone can alter the operating system as they see fit. This has made a variety of distributions available, each geared toward a different purpose. Open-source also has the distinct advantage of increased hardware compatibility, since drivers for any device can be written for Linux, as long as someone has the time to do so. Most versions of the operating system are free, distributed under the GNU General Public License and, unlike Unix, have no licensing fees or profit agenda. Some of the groups that develop free versions also provide free updates and technical support. Linux is better suited to personal computers, but is becoming more and more popular on servers, a place where Unix used to reign supreme.
This is due to lower costs for commercial web server applications that are equal in stability and performance to the Unix equivalents. Lower costs are made possible by unified standards in the open source model, which eliminates the need for software developers to create a separate port for every flavor of the operating system. Linux is much easier to use than Unix, and comes complete with almost all the server applications an administrator could want. Compared to its predecessor, Linux bugs are often defeated early on, due to its open source nature. The combined knowledge and experience of developers around the world speeds up the processes of upgrading, adding to, and developing new Linux flavors. Linux is easily configured, and often described as “hackable.” It is also very scalable, and there are versions of Linux for laptops, personal computers, servers, PDA, and handheld computing devices
Unix is a proprietary operating system distributed under a license that denies its vendors the ability to share code with other vendors. Therefore, the code of any new feature that will make a version of Unix more popular must remain a secret within the organization that developed it. Vendors want to keep the code to themselves, anyway, since they are in competition with other Unix developers. Even if they did want to share the code for their improvements with other vendors, the license they are under would not allow it. Eventually, this causes each version of Unix to have substantial differences, which make some flavors of Unix clearly better than others.
Linux, on the other hand, is an open source operating system distributed under the GNU General Public License, which allows all vendors to share code openly. Obviously, Linux development groups will espouse any new feature that becomes popular in the market. This helps keep all versions of the operating system on an even level, and benefits users greatly by eliminating the effect of the distributions varying greatly over time. Also, it is almost certain that every distribution will contain the latest and greatest features, so the user always gets the best product possible. But, if for some reason they don’t like the best new version, they can change it. Open source allows Linux to put the user in control.
Linux Costs What?
Another main difference between Linux and Unix is price. I was shocked when I first found out that most Linux distributions are free. Because of Microsoft, I figured that free high-quality operating systems didn’t exist. As mentioned before, Unix, like Microsoft, is a proprietary operating system with a profit agenda. One purpose of its vendors is to make as much money as possible. However, Unix is even more expensive that Microsoft’s Windows, since each version must have its own port. They are each developed by different vendors, and without the ability to share code with each other, there isn’t really a way for them to come to a standardization that would allow all distributions of Unix to use the same port (Windows doesn’t have this problem because all versions are made by Microsoft).
The fact that Linux is open source allows each development team to share this important information, so even commercial distributions of Linux are cheaper than their Unix equivalents. Of course, the most substantial cost difference is with free distributions, since they don’t cost anything. They are developed by volunteers from all over the world who believe that great software should be available, easy to get, easy to use, customizable, and reliable. Even free upgrades, security updates, and technical support are provided for some freely distributed versions of Linux.
Some Command Differences Between Linux and Unix:
This section refers to differences between the Linux kernel and a version of Unix called AIX. This is referenced from the Rosetta Stone for Unix (http://bhami.com/rosetta.html), and is an example of more differences between the two operating systems. The Administrative Graphical User Interface for AIX is called smit, smitty, and wsm. Various Linux versions have different Administrative GUIs. For Red Hat, it is redhat-config. SuSE uses yast2. Debian uses dpkg-reconfigure, and Mandrake’s GUI is called drakconf. AIX commands for managing users are lsuser, mkuser (adds a user), chuser (changes user settings), and rmuser (deletes a user from the system).
In Linux, useradd (also called also called adduser) creates, modifies, and manages users. The userdel command deletes users from the system. The commands for listing hardware configurations for AIX are prtconf, lscfg, lsattr, lsdev. In Linux, they are /proc/*, lshw, dmidecode, lspci, lspnp, lsusb, lsmod, and hwinfo for the SuSE distribution. The command to add a device without rebooting in AIX is cfgmgr v, while Linux has 5 commands for that purpose: modprobe, kerneld, insmod, hotplug, and cardctl. The mkvg command is used to label a disk in AIX. Linux uses cfdisk, fdisk, and e2label. A disk can be partitioned in AIX with mklv, and in Linux with fdisk, or diskdrake if you are using the Mandrake distribution. To check your swap space in AIX, type lsps a. In Linux, use swapon s, cat /proc/meminfo, cat /proc/swaps, or free. Use crfs to create a file system in AIX, and use mke2fs (make an ext file system), mkreiserfs (for a Reiserfs system), or mkdosfs (for DOS-based) in Linux.
Although Unix and Linux share common characteristics, such as a common ancestor and some commands, there are many noteworthy differences between the two. Some of the variations we have investigated include: cost, purpose, features, history, commands, and licensing. Isn’t it amazing that two operating systems that seem so alike are, in actuality, so very different? As they continue to grow and evolve, how much more different will Unix and Linux be from each other in the future? We’ll just have to wait and see.