views:

518

answers:

10

I am not able to understand the difference between a kernel and an operating system. I do not see any difference between them. Is the kernel an operating system?

+1  A: 

Simple Answer

The Kernel is the core piece of the operating system. It is not necessarily an operating system in and of itself.

Everything else is built around it.

Ellaborate Definition

Kernel (computing) - Wikipedia

Justin Niessner
So is Kernel Operating System without drivers ?
Xinus
No...most Kernels tie the various pieces of the Operating System together (not just drivers).
Justin Niessner
+4  A: 

The kernel is part of the operating system, while not being the operating system itself. Rather than going into all of what a kernel does, I will defer to the wikipedia page: http://en.wikipedia.org/wiki/Kernel_%28computing%29. Great, thorough overview.

danben
Meh, Try the first sentence of http://en.wikipedia.org/wiki/Operating_system instead. An operating system is formally tasked with mediating access to limited resources (approximately *everything* on the computer), and monolithic kernels do exactly that (micro kernels dump some of that work onto processes, but those are still distributed with the kernel). From a programmers prospective the kernel *is* the OS. Users may count on the shell or other interfaces, but that is *users*. Remember that OSs run on everything from super computers down to any embedded widget that needs to do *two* things.
dmckee
So your point is that SOME operating systems are themselves kernels, or that the parts of an OS that a user interacts with are not part of the OS?
danben
Also, "the first sentence of en.wikipedia.org/wiki/Operating_system" says "An operating system (OS) is an interface between hardware and user..." so I don't understand why you are making the distinction between what a user interacts with and the rest of it.
danben
A: 

In computing, the 'kernel' is the central component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources (the communication between hardware and software components). Usually as a basic component of an operating system, a kernel can provide the lowest-level abstraction layer for the resources (especially processors and I/O devices) that application software must control to perform its function. It typically makes these facilities available to application processes through inter-process communication mechanisms and system calls.

me_here
+1  A: 

The Operating System is a generic name given to all of the elements (user interface, libraries, resources) which make up the system as a whole.

The kernel is "brain" of the operating system, which controls everything from access to the hard disk to memory management. Whenever you want to do anything, it goes though the kernel.

Kyle
+1  A: 

The kernel might be the operating system or it might be a part of the operating system. In Linux, the kernel is loaded and executed first. Then it starts up other bits of the OS (like init) to make the system useful.

This is especially true in a micro-kernel environment. The kernel has minimal functionality. Everything else, like file systems and TCP/IP, run as a user process.

Richard Pennington
+3  A: 

A kernel is the part of the operating system that mediates access to system resources. It's responsible for enabling multiple applications to effectively share the hardware by controlling access to CPU, memory, disk I/O, and networking.

An operating system is the kernel plus applications that enable users to get something done (i.e compiler, text editor, window manager, etc).

Erich Douglass
Are compilers and text editors *really* part of the Operating System? Word is a glorified text editor - is that part of the OS?
jon hanson
+5  A: 

The technical definition is "platform that consists of specific set of libraries and infrastructure for applications to be built upon and interact with each other". A kernel is an operating system in that sense.

The end-user definition is usually something around "a software package that provides a desktop, shortcuts to applications, a web browser and a media player". A kernel doesn't match that definition.

So for an end-user a Linux distribution (say Ubuntu) is an Operating System while for a programmer the Linux kernel itself is a perfectly valid OS depending on what you're trying to achieve. For instance embedded systems are mostly just kernel with very small number of specialized processes running on top of them. In that case the kernel itself becomes the OS itself.

I think you can draw the line at what the majority of the applications running on top of that OS do require. If most of them require only kernel, the kernel is the OS, if most of them require X Window System running, then your OS becomes X + kernel.

ssg
A: 

Kernel resides in OS.Actually it is a memory space specially provided for handling the os functions.Some even say OS handles Resources of system and Kernel is one which is heart of os and maintain,manage i.e.keep track of os.

Raj
+2  A: 

It seems that the original metaphor that got us the word "kernel" for this in the first place has been forgotten. The metaphor is that an operating system is a seed. The "kernel" of the seed is the core of the operating system, providing operating system services to applications programs, which is surrounded by the "shell" of the seed that is what users see from the outside.

Some people want to tie "kernel" (and, indeed, "shell") down to be more specific than that. But in truth there's a lot of variation across operating systems. Not the least these variations is what constitutes a "shell" (which can range from Solaris' sh through Netware's Console Command Interpreter to OS/2's Workplace Shell and Windows NT's Explorer), but there's also a lot of variance from one operating system to another in what is, and isn't, a part of a "kernel" (which may or may not include disk I/O, for example).

It's best to remember that these terms are metaphors.

JdeBP
+1  A: 

a kernel is part of the operating system, it is the first thing that the boot loader loads onto the cpu (for most operating systems), it is the part that interfaces with the hardware, and it also manages what programs can do what with the hardware, it is really the central part of the os, it is made up of drivers, a driver is a program that interfaces with a particular piece of hardware, for example: if I made a digital camera for computers, I would need to make a driver for it, the drivers are the only programs that can control the input and output of the computer

noah