There are many similarities between Linux and Unix. They have a very similar directory structure, uses most of the same tools and the same shells. But, what are the differences between Linux and Unix? Why is Linux called Unix-like and not a true Unix operating system?
Linux (or GNU/Linux, to be technically correct) is a kernel developed by Linus Torvalds in 1991. UNIX is a commercial operating system created by AT&T employees from Bell Labs in 1969. From these two definitions, you can see the first difference between Linux and UNIX. Linux is technically only the kernel and UNIX is a complete operating system. Each Linux distribution is technically its own operating system.
The second major difference between Linux and UNIX is how they are licensed. GNU/Linux is licensed under the GPL (GNU General Public License) which is an open source license. This means that the code for the kernel is available for anyone to use or change, as long as the changes are also licensed under the GPL.
UNIX, on the other hand, is traditionally a commercial product with a proprietary license. The UNIX trademark is held by The Open Group which is an industry standards consortium. The Open Group only allows operating systems that are fully compliant with the Single UNIX Specification, and are certified as such, to use the UNIX name. I say traditionally because Sun recently released OpenSolaris which is licensed under the Common Development AND Distribution License (CDDL) which is an open source license.
Another large difference between Linux and the different versions of UNIX is the architecture on which the operating systems can run. Each version of UNIX- Solaris, HP-UX, AIX, IRIX- all run on specific architecture. For example, Solaris runs on Sparc and x86 architecture while HP-UX runs on PA-RISC and Itanium machines. Linux, on the other hand, runs on all types of machines. This means that the UNIX operating systems can be tweaked to the specific architecture, while Linux developers must ensure that the code is as flexible as possible.
Like the supported architectures, the different UNIX versions usually only support one or two filesystems. Solaris supports the ufs and vfs filesystems. HP-UX supports hfs and vxfs. AIX supports jfs and gpfs. Linux supports all of those filesystems and more. Some of the filesystems are not supported natively. Instead they need additional utilities to be installed.
Traditionally, Linux customer support came from the community at large. However, some distributions, like Red Hat and Mandriva, offer Linux distributions with a support package. You can also get support packages from third party companies.
The different UNIX versions automatically come with support packages when you purchase the operating system. However, the community support is not as large.
The above are not the only differences between Unix and Linux. Others include the package management systems, the proprietary software support, and where the initialization scripts are located. However, the Linux distributions have these differences, also. End users may not see all the differences between the operating systems, but they will become apparent to system administrators almost immediately.