8

I was going through an article on GNU which goes something like below

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.

I always thought Linux as a kernel and Operating System but it looks like Linux = Linux kernel and GNU OS.

Could someone point out the exact functionality of each in the "Linux" terminology we use in our day to day life. Also, according to the wiki, GNU's design is Unix-like but differs from Unix by being free software and containing no Unix code. I thought Unix is opensource. Isn't it?

jasonwryan
  • 73,126

3 Answers3

7

I believe the bit you're referring to is covered here on the Free Software Foundation (FSF) website:

According to the FSF their contention is that Linux is just a Kernel. A usable system is comprised of a Kernel + the tools such as ls, find, shells, etc. Therefore when referring to the entire system, it should be referred to as GNU/Linux, since the other tools together with the Linux Kernel make up a complete usable system. They even go on to talk about the FSF Unix Kernel, Hurd, making arguments that Hurd and Linux are essentially interchangeable Kernels to the GNU/X system.

I find the entire argument tiring and think there are better things to do with our time. A name is just a name and the fact that people consider a system that includes GNU software + the Linux Kernel + other non-GNU software to be Linux or GNU/Linux a matter of taste and really doesn't matter in the grand scheme of things. In fact I think the argument does more to hurt Linux and GNU/Linux by fracturing the community and confusing the general public as to what each thing actually is.

For more than you ever wanted to know on this topic take a look at the Wikipedia articled titled: GNU/Linux naming controversy.

All Unixes opensource?

To my knowledge not all Unixes are opensource. Most of the functionality within Unix is specified so that how things work is open, but specific implementations of this functionality is or isn't open depending on which distro it's a part of.

For example, until recently Solaris, a Unix, wasn't considered open source. Only when Sun Microsystem's released core components into the OpenSolaris project, did it at least components of Solaris become open source.

Unix History

I'm by no means an expert on this topic, so I would suggest taking a look at the Unix Wikipedia page for more on the topic.

Linux History

Take a look at the Unix Lineage diagram for more on which Unixes are considered open, mixed, or closed source.

  ss of history

I also find the GNU/Linux Distribution Timeline Project useful when having this conversation.

ss of linux timeline

slm
  • 369,824
  • 2
    No UNIX is open source and Linux is not Unix. Unlike FreeBSD, which is a direct descendant and once contained ATT UNIX code, Linux has no direct connection and is only Unix-like. OSX is UNIX. – Rob Aug 22 '13 at 09:13
  • 1
    @Rob FreeBSD no longer contains ATT code: that's what made it free. It doesn't have more or less claim to the name Unix than Linux or MINIX or OSF/1. – Gilles 'SO- stop being evil' Aug 22 '13 at 21:49
  • 1
    @Rob - please site references. I'm sure you don't mean that comment to come across as sounding like a troll, but it is, at least a bit 8-).The whole is Linux a Unix debate has been covered here already. Please see this thread: http://unix.stackexchange.com/questions/4091/is-linux-a-unix. I find that argument tiring. It's like argument how to pronounce tomato. – slm Aug 23 '13 at 01:04
  • @Gilles How is anything I said not true? Why did you feel the need to comment about it? – Rob Aug 23 '13 at 23:19
  • @slm I only responded to your comment that "Not all Unixes are open source" and the truth is no Unixes are open source. UNIX is a trade name, a validation and certification. It also means there is POSIX compliance to a degree Linux and other systems can't validate (but OSX can). I wasn't arguing anything except UNIX is UNIX and Linux is not UNIX which your post seemed to say, iirc. (I was not aware of previous thread, or any other. – Rob Aug 23 '13 at 23:24
  • I forgot you asked for references: What is Unix? and Unix Certification – Rob Aug 24 '13 at 13:22
  • @Rob - I think Gilles was just clarifying what you said regarding your comment about FreeBSD. Given Gilles answer on the other Q&A puts it pretty clearly (the whole "is Linux a Unix") I think he's qualified to comment on it 8-). At the risk of opening a can of worms, regarding your comment that "No UNIX is open source", what about Open Solaris? It would seem that OpenIndiana is an example of an opensource UNIX. http://en.wikipedia.org/wiki/OpenSolaris – slm Aug 24 '13 at 14:31
3

Typically, what we usually call an Operating System, is a combination of software involving a kernel, whose job is to manage the resources of the machine and some applications that run on top of the kernel, called the userland (this contains browsers, compilers, pdf readers, anything that isn't the kernel, or a driver, or maybe a vm hypervisor).

The rest of this question can not be answered without some historical context. Richard Stallman anounced the GNU Project on the 27th of September of 1983. The aim was to provide the software needed to develop a UNIX like operating system (and the accompanying userland) as free software. By 1992, the GNU Project had completed nearly all pieces essential for their software - except for one: the kernel. By the same time, Linus Torvalds released his kernel Linux (version 0.12) as free software, licensed under the GPL license. So for the first time, it could be possible to run a computer comprised (nearly) entirely of free software.

Linux (as mentioned) is a kernel, and, although it's the ultimate base of the software that allows you to use your computer, it's not of much usefulness alone. You should pair it with some sort of applications (userland) for it to run. That's what GNU/Linux distributions like Debian or Ubuntu and the like do.

It's worth mentioning that a kernel is both important and unimportant at the same time. Allow me to explain. Most people that use a computer are accustomed with the userland rather than the kernel. The kernel is mostly transparent, and most people would use another kernel with the same userland and might not even notice the difference (unless of course they are depending on a feature provided by a particular kernel).

Therefore, when you use Linux, you trully are using a realisation of the GNU operating system; that is the Linux kernel and the GNU userland (GNOME, GNU Compiler Collection, GNU debugger, GNU Coreutils, GNU binutils, etc). That's why the FSF insists on calling it GNU/Linux (in my opinion, a fair request).

You can of course, use Linux without the GNU userland (hint: Android, Busybox) and ofcourse use the GNU userland on top of other kernels (kfreebsd, hurd, etc).

As for the Unix is open source and the like, that is a question that can involve quite a bit of arguing. You might however find some useful information here

NlightNFotis
  • 7,575
2

The linux kernel is a program which contributes the following functions to the OS:

   linux kernel map image

original link to image: http://www.makelinux.net/kernel_map/

The kernel is essential and on top of it you have utilities and all the rest of the packaged software. The difference between the full OS and the kernel equals the rest of the software and how it's put together by the distribution maintainers.

Those maintainers don't necessarily make all that extra software, they assemble it and modify it sometimes and put it all together to provide what the Linux experience is about for most people today - they add the "flavor" so to speak and there's often lineage to very established distributions like Debian and Redhat etc. The thing is, a significant proportion of the initial utilities and software that are packaged in linux distributions include software that was adapted from the GNU project. Lots of that software was put together by the GNU project using their resources before the linux kernel was even invented. And it's free and lots of that software helped building the popularity of linux as both were free and open source software linked by the GPL license. The libc framwework, the Gnome Desktop and the gcc compiler are examples of GNU maintained software.

It's certainly not trivial and acknowledging it shouldn't be that political but there's vocal people on both sides and there's a debate. Whatever the practical applications, knowing more about the history of the software in the distributions we use and its creators is a valid endeavor.

slm
  • 369,824