Was Linux Really A Copy Of Unix?


Recommended Posts

This is a serious question. I need to get lightened up about the past that did not exist before my oldest memory.

Link to comment
Share on other sites

If you are really interested in the origin of Linux, the Wikipedia article History of Linux is a good place to start. The Wikipedia article on UNIX is also a good reference for both the history and definition of UNIX in a nutshell. Aside from the UNIX kernel architecture (for which UNIX System V Release 4 largely serves as the canonical reference point), POSIX compliance is the principal component that defines UNIX and UNIX-like operating systems, so it is definitely something you should look into so you can see the whole picture.

 

In short, the answer to your question depends heavily on your intent. If you consider Linux to be a copy of UNIX if-and-only-if Linux was forked from the UNIX code base (which clearly refers to the canonical reference point: UNIX System V) at some point - which is the most literal interpretation of your question - the answer is categorically "no". Linus Torvalds wrote the original version of Linux from scratch. However, he modeled the system on Minix, which also shares no code with other UNIX-like operating systems but behaves similarly, and took into account the traditional UNIX design philosophy while writing his kernel. Today Linux is POSIX compliant (although only specific distributions and releases are officially certified), and, consequently, most code is easily portable between Linux and more traditional UNIX systems. Architecturally the Linux kernel is monolithic and internally differs greatly from more traditional UNIX kernel designs (such as OpenBSD or Solaris). Therefore if you consider kernel architecture, the answer to your question is still "no". However if you merely consider POSIX compliance and the paradigm that Linux encourages, you could consider it a copy of UNIX in a sense.

 

PS: I think you posted this question in the wrong section. You probably would have received more replies faster if you had posted it in the "Linux / UNIX Discussion & Support" sub-forum.

Link to comment
Share on other sites

If you are really interested in the origin of Linux, the Wikipedia article History of Linux is a good place to start. The Wikipedia article on UNIX is also a good reference for both the history and definition of UNIX in a nutshell. Aside from the UNIX kernel architecture (for which UNIX System V Release 4 largely serves as the canonical reference point), POSIX compliance is the principal component that defines UNIX and UNIX-like operating systems, so it is definitely something you should look into so you can see the whole picture.

 

In short, the answer to your question depends heavily on your intent. If you consider Linux to be a copy of UNIX if-and-only-if Linux was forked from the UNIX code base (which clearly refers to the canonical reference point: UNIX System V) at some point - which is the most literal interpretation of your question - the answer is categorically "no". Linus Torvalds wrote the original version of Linux from scratch. However, he modeled the system on Minix, which also shares no code with other UNIX-like operating systems but behaves similarly, and took into account the traditional UNIX design philosophy while writing his kernel. Today Linux is POSIX compliant (although only specific distributions and releases are officially certified), and, consequently, most code is easily portable between Linux and more traditional UNIX systems. Architecturally the Linux kernel is monolithic and internally differs greatly from more traditional UNIX kernel designs (such as OpenBSD or Solaris). Therefore if you consider kernel architecture, the answer to your question is still "no". However if you merely consider POSIX compliance and the paradigm that Linux encourages, you could consider it a copy of UNIX in a sense.

 

PS: I think you posted this question in the wrong section. You probably would have received more replies faster if you had posted it in the "Linux / UNIX Discussion & Support" sub-forum.

 

 

Appreciate the deep answer. Sorry about the being in the wrong category, I've been working too much to realize where I was though I've been so curious.

 

I figured that Linux would be, though you've mentioned POSIX. Due to me using the Terminal every 30 minutes for SSH'ing, I felt like even OS X was some sort of Debian, if that makes sense. I mean where CentOS uses yum and Ubuntu uses apt-get, but the style of OS X seems more similar to Ubuntu.

 

But maybe I am speaking gibberish, these are 2 kernels, right? This has nothing to do with the Terminal and what they use for packages and whatnot.

Link to comment
Share on other sites

Every release of OS X since Leopard has been certified as POSIX compliant, but that has little to do with the kernel architecture or the available command-line tools. For example, OpenSSH and CoreUtils (cp, mv, ls, top, sh, ...) were shipped with OS X long before it was POSIX compliant (not to mention certified). OS X is built on FreeBSD, and although they share a lot of code (especially in the base system), the OS X kernel is a hybrid kernel whose architecture differs greatly from standard UNIX design (much more so than Linux). Therefore while the OS X command-line is superficially similar to both traditional UNIX and the Linux Standard Base, the underlying operating system is fairly dissimilar to both.

Link to comment
Share on other sites

Every release of OS X since Leopard has been certified as POSIX compliant, but that has little to do with the kernel architecture or the available command-line tools. For example, OpenSSH and CoreUtils (cp, mv, ls, top, sh, ...) were shipped with OS X long before it was POSIX compliant (not to mention certified). OS X is built on FreeBSD, and although they share a lot of code (especially in the base system), the OS X kernel is a hybrid kernel whose architecture differs greatly from standard UNIX design (much more so than Linux). Therefore while the OS X command-line is superficially similar to both traditional UNIX and the Linux Standard Base, the underlying operating system is fairly dissimilar to both.

 

Seeing FreeBSD and Solaris on the list, I was even more confused when I was looking at the UNIX wikipedia a few days. I used to think OS X was UNIX, and then I once googled "unix open source".

 

Here's another thing, iOS and OS X being so well made for each other, though iOS uses Darwin.

Link to comment
Share on other sites

Technically both OS X and iOS are built on Darwin, which is in-turn based on FreeBSD. Darwin is just the name for the formerly open-source base Apple builds their operating systems on. At one time the OpenDarwin project existed to develop this base operating system which Apple then fitted with their proprietary frameworks and user interface to create OS X. Some of this base still exists as open-source software, but Apple long ago stopped supporting the project. Darwin is now more of a figurative name for Apple's base operating system because the company no longer provides enough of the underlying components of OS X (not to mention iOS) as open-source to build a usable Darwin system. A complete version of Darwin may still exist somewhere inside of Apple, but it is not likely you will ever see it unless you join their core operating system team.

 

As much as Apple would like you to believe otherwise, they are not committed to open-source software. They merely contribute as much as they feel is necessary to benefit their own ends. Apple has founded some innovative open-source projects in the past (CUPS being the quintessential example), but the company is far less ambivalent these days. They still contribute to some extent (for example, Apple occasionally contributes to the FreeBSD kernel and employs many important LLVM developers), but their contributions are strictly low-level and only when convenient.

  • Like 2
Link to comment
Share on other sites

Technically both OS X and iOS are built on Darwin, which is in-turn based on FreeBSD. Darwin is just the name for the formerly open-source base Apple builds their operating systems on. At one time the OpenDarwin project existed to develop this base operating system which Apple then fitted with their proprietary frameworks and user interface to create OS X. Some of this base still exists as open-source software, but Apple long ago stopped supporting the project. Darwin is now more of a figurative name for Apple's base operating system because the company no longer provides enough of the underlying components of OS X (not to mention iOS) as open-source to build a usable Darwin system. A complete version of Darwin may still exist somewhere inside of Apple, but it is not likely you will ever see it unless you join their core operating system team.

 

This entirely makes believe a little more why so many developers choose OS X and iOS to first to develop on. Seeing both systems being typically the same, I look at XCode (I wanted to build an app, but haven't had the time) having an environment where you won't have to worry about building up an app from the ground up, it's practically all in the UI mostly with these two OSs.

Link to comment
Share on other sites

This entirely makes believe a little more why so many developers choose OS X and iOS to first to develop on. Seeing both systems being typically the same, I look at XCode (I wanted to build an app, but haven't had the time) having an environment where you won't have to worry about building up an app from the ground up, it's practically all in the UI mostly with these two OSs.

 

That is not true. You can't just drag a bunch of buttons and widgets onto a window and have Xcode create you a functioning app. It doesn't work that way. You still need to code the app like you would if you were building something on top of FreeBSD. The difference is that on OS X you'd probably use Cocoa for the UI whereas on FreeBSD you might use something like QT.

Link to comment
Share on other sites

SCO once claimed that Linux was a copy of UNIX code (at least in part).  They even raised a big stink and hired pricey lawyers and sued just about anyone they could think of.  They were funded (indirectly) by Microsoft in this endeavour.

It didn't end up well for them.  :P

Linux is often called "UNIX-like", for the reasons amply described in the previous posts.

Link to comment
Share on other sites

Appreciate the deep answer. Sorry about the being in the wrong category, I've been working too much to realize where I was though I've been so curious.

 

I figured that Linux would be, though you've mentioned POSIX. Due to me using the Terminal every 30 minutes for SSH'ing, I felt like even OS X was some sort of Debian, if that makes sense. I mean where CentOS uses yum and Ubuntu uses apt-get, but the style of OS X seems more similar to Ubuntu.

 

But maybe I am speaking gibberish, these are 2 kernels, right? This has nothing to do with the Terminal and what they use for packages and whatnot.

Actually, if POSIX compliance was what floated your boat (and, for a lot of military IT contracts, POSIX compliance was mandatory) you had three choices - UNIX, OS/2, and - don't laugh - Windows NT.  NT and OS/2 got their POSIX compliance from the original 16-bit OS/2 (common source code), and it was kept specifically because of those military contracts.  Windows 9x was, amusingly, NEVER POSIX-compliant; eComStation still is.

Link to comment
Share on other sites

Actually, if POSIX compliance was what floated your boat (and, for a lot of military IT contracts, POSIX compliance was mandatory) you had three choices - UNIX, OS/2, and - don't laugh - Windows NT.  NT and OS/2 got their POSIX compliance from the original 16-bit OS/2 (common source code), and it was kept specifically because of those military contracts.  Windows 9x was, amusingly, NEVER POSIX-compliant; eComStation still is.

 

Windows NT was once POSIX compliant (specifically for military contracts like you mentioned), but it only ever implemented the first version of the POSIX standard. POSIX has long since moved beyond the limited version Windows once provided. Not to mention the fact that Windows 8 officially deprecated Windows Services for UNIX, and Windows 8.1 completely removed the last vestiges of it. The best way to get modern POSIX support for Windows is now Cygwin, but even that is a limited solution which Microsoft will never support. Since the Cygwin library has to translate POSIX system calls before passing them on to the operating system and emulate missing functionality, applications built using it often take a significant performance hit. However, for all its flaws, Cygwin implements newer versions of POSIX and generally works much better than Windows Services for UNIX ever did.

 

Your list of POSIX certified operating systems is quite incomplete. Many enterprise Linux distributions (notably Red Hat Enterprise Linux and SUSE Linux Enterprise Server/Desktop) are officially POSIX certified, and so are several versions of FreeBSD. Apple has dutifully obtained official POSIX certification for each version of OS X since Leopard, and Solaris, HP-UX, and AIX have basically been certified since their inception (or more properly, since the inception of POSIX since they predate the standard). Also while most Linux distributions either move too rapidly to get a single release officially POSIX certified or do not have the time, resources, or inclination to apply for certification, they still technically conform to recent versions of the POSIX standard.

 

While POSIX compliance is still a major concern for some large industry and government contracts, the official certification is not as important as it once was. The POSIX standard, however, has only become more important. Windows is the only major modern operating system which does not implement it. Aside from the fact that Windows does not conform well to the UNIX model POSIX was derived from, this is probably because Microsoft is now a large enough player that it can skirt POSIX compliance on many major contracts.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.