Is Linux a kernel or an operating system?
I have been participating in a thread on another forum where some members contend that Linux is an operating system of itself and I am contending it is a kernel, and therefore not an operating system but a crucial part of one and the missing link that kind of tied the GNU project together.
I have been informed that Android has no GNU stuff (I didn't know that, apparently they replaced the GNU bits with Java or something). Would the members here consider Linux without any GNU bits to be an OS? I have invited the members there to remove everything from their system that was not the kernel and report back, so far nobody has done it. Not much surprise there.. I have quoted the GNU.org take on this issue on the other forum, but they keep coming back with links to Linux.org which seems to claim that Linux is an OS in and of itself: http://www.linux.com/learn/resource-...erating-system Leaving convenient parlance aside to avoid saying {Slackware-GNU-slash-linux} etc, is Linux really considered an operating system now? |
It depends on your perspective.
As a computer scientist, the kernel is the operating system. However as an end-user, the operating system is a packaged product that includes a user-space environment. From a user perspective then, a Linux distribution is an OS, as is a non-GNU Linux plus user-space product, like Android. Just keep in mind the audience when using terminology, as the same terms can have different meanings in different context. |
Linux is the kernel.
Period. |
And, by computer science definition, the kernel is the operating system. An operating system is defined as the software which performs resource management, scheduling and I/O. That's the kernel.
Users aren't required to get a CS degree when buying products, so marketing has historically used the term OS to apply to the package - kernel, user-space, applications. It's very similar to the lay confusion over the word theory. To a lay person, a theory is a proposed explanation. To a scientist, a proposed explanation is a hypothesis, and a theory is a fact. If you're not a computer scientist, arguing over the definition of an OS is like arguing over any terminology used to market products to a general audience. |
Quote:
I mean, if I delete everything except the kernel on a computer it won't actually operate, therefore by definition isn't the kernel not an operating system, but simply a kernel? |
Quote:
|
Quote:
Knowing the CS definition of an operating system, you can see that a user-space and other applications are not needed. Resource management, scheduling and I/O are very basic functions, far removed from an end-user interface. An operating system doesn't provide end-user functionality - it provides functionality to the other software (if any) residing on the system. The flip side is true as well; a user-space collection of applications and libraries can't function without an operating system - the kernel. For this reason, marketing tends to refer to the package by the common term. An over-simplification of a relatively complex subject for a broad audience. When discussing concepts with others, a little pedantry is required. If everyone in a discussion isn't using the same definition for a term, there's less discussion and more pointless arguing. |
Quote:
Quote:
Quote:
|
Quote:
|
Quote:
I am still having trouble getting my head around this. If one wants to designate Linux as an operating system then surely it should be able to make a computer, well, operate. If it takes a Linux kernel and a bunch of stuff from GNU or whoever to make the thing operate then how could Linux be called an operating system? I know I am coming across as pig-headed but that is not my intention, I am merely failing to see how the GNU description of an OS is wrong. |
Quote:
For example, instead of telling the Linux kernel to load the usual initialization software, you can tell it to run /bin/true. The kernel will initialize hardware, allocate the memory, perform disk I/O, handle interrupts, and /bin/true will execute. The OS will do its job and, having run out of work, halt. That will probably cause a reboot or message and 'hang' (really the OS is waiting for keyboard input for a ctrl-alt-del, for example). This is a fully functioning system that has no user interaction or even perceivable function. You generally wouldn't consider that an operating computer, but in fact it is. In this example, /bin/true (which just sets a success return code) is the workload for the OS. |
Quote:
|
Quote:
Maybe an analogy would help in the OS discussion. Imagine that the first car hadn't yet been given an identifier. The salesman looks under the hood and says "what's that?" and the engineer replies "that's the engine". So the salesman calls the entire machine an 'Engine' instead of giving it a unique name, like 'automobile'. Now you're saying that the machine is of no use without wheels and headlights and a body, so the whole thing must be an engine. As engineers, we're left trying to point out that the only thing that's an engine is the thing under the hood, the power plant for the machine. The rest uses the engine, even if the glossy calls the whole thing an engine. See the problem? |
The way it was explained to me, years ago, is this: Linux is the kernel. Gnu/Linux is the OS (that is, kernel plus tools). The tools don't run without a kernel and the kernel needs the tools.
A distro is simply Gnu/Linux (or Gnu/Hurd) packaged and made pretty. |
Quote:
|
All times are GMT -5. The time now is 03:29 AM. |