In this lesson, we will consider the relationship of Unix and Linux. Technically, Linux is only the kernel. Everything else that makes up the full operating system comes from a variety of different sources. Linux is not Unix, although is clearly Unix-like, it is generally not certified as being actual Unix. Unix goes back at least as far as 1969. It was at the beginning intended to be the operating system for serious heavy iron enterprise system. It did not begin on the Intel family of CPUs, it began more on mainframe-type computers. By the time Linux was originated in 1991, Unix itself had split into a number of different versions and there was a complicated family tree with two major groupings: System V and BSD. It was not clear at all on those days that Linux would grow to work on other architectures to become anything like what it is today. It was a toy. Now, there were many Unix variants. Most were associated with hardware companies and were shipped with the hardware companies computers, SGI had IRIX, Sun had SunOS and later Solaris, IBM had AIX, Cray had UNICOS, et cetera. Each one of these manufacturers had different varieties running on their own hardware. There were a lot of efforts to achieve standardization, but there were strong self-interests by many vendors in keeping things proprietary and individually constructed for their platform. So, if you wrote an application, you had to keep in mind all the different variants, especially just between System V and BSD, and write code that had different branches on it depending on where it was running. There are many cases where even if the APIs were not that different and so, in theory, the code didn't have to be that different. The actual implementation was quite different, especially where there was any kind of ill-defined or undefined behavior. Also, each platform had its own set of basic utilities for viewing files, compiling programs, et cetera. This is where the Free Software Foundation project, the GNU project, which stands for GNUs Not Unix, came in and made an extremely valuable contribution by making hardware and operating system independent versions of many basic utilities that administrators and developers use everyday, things like tar, ls, grep, et cetera, as well as compilers and libraries. Without the GNU project, you really wouldn't have had Linux, at least nothing like we have today. There are people who insist Linux should really be called GNU/Linux or something similar, but let's stay out of such silly arguments and we'll just call it Linux. Now, Unix and Linux may not be the same thing, but the main developers of Linux had a solid foundation in Unix and they borrowed many basic components, such as inode-based filesystems, the use of device nodes to access hardware, the way scheduling is done, how processes and threads are created and destroyed, these are all derived from basic Unix ideas. Therefore, it hasn't been very hard to take applications written for any of the Unix variants and import them to Linux. Because Linux is very open and accommodates change from all directions, this is actually helping avoid the kind of fracturing that took place in Unix. So, nowadays, most hardware vendors support Linux directly on their hardware, while they still maintain versions of their own operating systems, they do that really for long-term support of their customers and most of their current work goes into just working with Linux. Linus once joked when asked about what his plans were, he said "world domination". It may be the case that at least in terms of Unix-like operating systems, Linux is achieving that goal today. So, that's a brief explanation of the relationship of Unix and Linux.