LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 02-18-2011, 04:16 AM   #1
slackist
Member
 
Registered: Feb 2004
Location: Phuket
Distribution: Slackware 14.2 and Slackware Arm
Posts: 479

Rep: Reputation: 44
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?
 
Old 02-18-2011, 04:24 AM   #2
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
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.
 
0 members found this post helpful.
Old 02-18-2011, 04:38 AM   #3
syg00
LQ Veteran
 
Registered: Aug 2003
Location: Australia
Distribution: Lots ...
Posts: 21,103

Rep: Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117Reputation: 4117
Linux is the kernel.

Period.
 
Old 02-18-2011, 04:47 AM   #4
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
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.
 
0 members found this post helpful.
Old 02-18-2011, 05:02 AM   #5
slackist
Member
 
Registered: Feb 2004
Location: Phuket
Distribution: Slackware 14.2 and Slackware Arm
Posts: 479

Original Poster
Rep: Reputation: 44
Quote:
Originally Posted by macemoneta View Post
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.
That was one argument raised against my contention, but a kernel itself as the only thing on a computer is surely pretty much useless right?

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?
 
Old 02-18-2011, 05:09 AM   #6
H_TeXMeX_H
LQ Guru
 
Registered: Oct 2005
Location: $RANDOM
Distribution: slackware64
Posts: 12,928
Blog Entries: 2

Rep: Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301Reputation: 1301
Quote:
Originally Posted by syg00 View Post
Linux is the kernel.

Period.
I agree. However, I predict this thread will continue to dwell in technicalities...
 
Old 02-18-2011, 05:18 AM   #7
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Quote:
That was one argument raised against my contention, but a kernel itself as the only thing on a computer is surely pretty much useless right?

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?
You are using the term in the lay sense, so yes, without a user-space (which could be as simple as a single monolithic application), the computer won't operate.

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.

Last edited by macemoneta; 02-18-2011 at 05:20 AM.
 
Old 02-18-2011, 05:44 AM   #8
slackist
Member
 
Registered: Feb 2004
Location: Phuket
Distribution: Slackware 14.2 and Slackware Arm
Posts: 479

Original Poster
Rep: Reputation: 44
Quote:
Originally Posted by macemoneta View Post
You are using the term in the lay sense, so yes, without a user-space (which could be as simple as a single monolithic application), the computer won't operate.
Firstly, I am really grateful for you for taking the time to reply, it's helping me understand where the other guy is coming from.

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.
How would one give instructions to a computer with only our Linux kernel? Surely there must have to be *some* user-space stuff to interact with it and do something useful?


Quote:
If everyone in a discussion isn't using the same definition for a term, there's less discussion and more pointless arguing.
Ya got that right! But work is slow so I can waste the time and I hope to learn something. Actually I already did from your posts so it's not a complete waste of time..
 
Old 02-18-2011, 05:48 AM   #9
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Quote:
How would one give instructions to a computer with only our Linux kernel? Surely there must have to be *some* user-space stuff to interact with it and do something useful?
I think that may be the basis of your issue. An operating system doesn't do anything useful for an end user; that's not its job. Applications do useful things for users - and to an operating system, everything (not part of itself) is an application.
 
Old 02-18-2011, 06:01 AM   #10
slackist
Member
 
Registered: Feb 2004
Location: Phuket
Distribution: Slackware 14.2 and Slackware Arm
Posts: 479

Original Poster
Rep: Reputation: 44
Quote:
Originally Posted by macemoneta View Post
I think that may be the basis of your issue. An operating system doesn't do anything useful for an end user; that's not its job. Applications do useful things for users - and to an operating system, everything (not part of itself) is an application.

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.
 
Old 02-18-2011, 06:21 AM   #11
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Quote:
Originally Posted by slackist View Post
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.
'Operating system' doesn't refer to a 'system which is operational' from a user perspective. The computer is completely operational once the kernel is loaded - from the computer's perspective.

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.

Last edited by macemoneta; 02-18-2011 at 06:23 AM.
 
Old 02-18-2011, 06:33 AM   #12
slackist
Member
 
Registered: Feb 2004
Location: Phuket
Distribution: Slackware 14.2 and Slackware Arm
Posts: 479

Original Poster
Rep: Reputation: 44
Quote:
Originally Posted by macemoneta View Post
'Operating system' doesn't refer to a 'system which is operational' from a user perspective. The computer is completely operational once the kernel is loaded - from the computer's perspective.
Serious question: Does the kernel load itself or does it require something else?
 
Old 02-18-2011, 06:48 AM   #13
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Quote:
Originally Posted by slackist View Post
Serious question: Does the kernel load itself or does it require something else?
There are typically two pieces of software that get control before the kernel in a PC. The first is a BIOS, which is software residing in an EPROM. It's job is to contain a basic description of hardware and then to load a single sector from disk and pass control to it. That software is the bootloader (lilo, grub or grub2 on most Linux systems). The bootloader is responsible for finding the kernel and reading it into memory, then passing control to it.

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?

Last edited by macemoneta; 02-18-2011 at 07:00 AM. Reason: typos
 
1 members found this post helpful.
Old 02-18-2011, 06:48 AM   #14
XavierP
Moderator
 
Registered: Nov 2002
Location: Kent, England
Distribution: Debian Testing
Posts: 19,192
Blog Entries: 4

Rep: Reputation: 475Reputation: 475Reputation: 475Reputation: 475Reputation: 475
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.
 
Old 02-18-2011, 07:21 AM   #15
macemoneta
Senior Member
 
Registered: Jan 2005
Location: Manalapan, NJ
Distribution: Fedora x86 and x86_64, Debian PPC and ARM, Android
Posts: 4,593
Blog Entries: 2

Rep: Reputation: 344Reputation: 344Reputation: 344Reputation: 344
Quote:
Originally Posted by XavierP View Post
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.
The problem with that set of definitions is Android. It's certainly a pretty packaged version of Linux, but it doesn't use the GNU tools. So the kernel is Linux, there's no OS, and it's not a distribution.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Tracing Intruders connecting to our system in Redhat Linux operating system vkunasani Linux - Software 4 02-15-2010 06:23 AM
two kernel in one operating system kaushalsingh Linux - Newbie 9 12-06-2009 03:35 PM
'Operating system not found' Any operating system installed wont work. TechniSlave Linux - Newbie 55 02-09-2009 11:02 AM
Why Linux is best Operating System for Learning/Doing System Programming ? ubaid_t General 6 03-21-2004 02:10 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 04:27 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration