1. What Is Kernel? A kernel is a central component of an operating system. It acts as an interface between the user applications and the hardware. The sole aim of the kernel is to manage the communication between the software (user level applications) and the hardware (CPU, disk memory etc). The main tasks of the kernel are : Process management Device management Memory management Interrupt handling I/O communication File system...etc.. 2. Is LINUX A Kernel Or An Operating System? Well, there is a difference between kernel and OS. Kernel as described above is the heart of OS which manages the core features of an OS while if some useful applications and utilities are added over the kernel, then the complete package becomes an OS. So, it can easily be said that an operating system consists of a kernel space and a user space. So, we can say that Linux is a kernel as it does not include applications like file-system utilities, windowing systems and graphical desktops, system administrator commands, text editors, compilers etc. So, various companies add these kind of applications over linux kernel and provide their operating system like ubuntu, suse, centOS, redHat etc. 3. Types Of Kernels Kernels may be classified mainly in two categories Monolithic Micro Kernel 1 Monolithic Kernels Earlier in this type of kernel architecture, all the basic system services like process and memory management, interrupt handling etc were packaged into a single module in kernel space. This type of architecture led to some serious drawbacks like 1) Size of kernel, which was huge. 2)Poor maintainability, which means bug fixing or addition of new features resulted in recompilation of the whole kernel which could consume hours In a modern day approach to monolithic architecture, the kernel consists of different modules which can be dynamically loaded and un-loaded. This modular approach allows easy extension of OS's capabilities. With this approach, maintainability of kernel became very easy as only the concerned module needs to be loaded and unloaded every time there is a change or bug fix in a particular module. So, there is no need to bring down and recompile the whole kernel for a smallest bit of change. Also, stripping of kernel for various platforms (say for embedded devices etc) became very easy as we can easily unload the module that we do not want. Linux follows the monolithic modular approach 2 Microkernels This architecture majorly caters to the problem of ever growing size of kernel code which we could not control in the monolithic approach. This architecture allows some basic services like device driver management, protocol stack, file system etc to run in user space. This reduces the kernel code size and also increases the security and stability of OS as we have the bare minimum code running in kernel. So, if suppose a basic service like network service crashes due to buffer overflow, then only the networking service's memory would be corrupted, leaving the rest of the system still functional. In this architecture, all the basic OS services which are made part of user space are made to run as servers which are used by other programs in the system through inter process communication (IPC). eg: we have servers for device drivers, network protocol stacks, file systems, graphics, etc. Microkernel servers are essentially daemon programs like any others, except that the kernel grants some of them privileges to interact with parts of physical memory that are otherwise off limits to most programs. This allows some servers, particularly device drivers, to interact directly with hardware. These servers are started at the system start-up. So, what the bare minimum that microKernel architecture recommends in kernel space? Managing memory protection Process scheduling Inter Process communication (IPC) Apart from the above, all other basic services can be made part of user space and can be run in the form of servers. QNX follows the Microkernel approach
I think Linux is an OS because it does includes user space. Unix you can say kernel but I would not agree in the true sense because Unix also had user space though no GUI
Well, I think Linux is a just a kernel developed by Linus while the distributions like fedora, red-hat etc are OS.
Actually ... I disapprove on this... Shabbir is right.... Its a OS not a kernel... Linux is a OS that uses the Linux kernel... Wikipedia also Provides the same :- http://en.wikipedia.org/wiki/Linux And i must say... Good article...Great start!!!!!
Just copy n paste the link into ur web browser and open it . actually i was not able to post the complete link as i was getting an error like " too many live link or image in your post content"..so i removed the initial string and posted the link. hope this helps!!!!!
Ofcource i know how to open a link... But its only loading and at the end of that... The page is blank....
Yeah!! I am also confused on that.... I'll try to open it some time after... Maybe there is some problem with My ISP...
What people say in the link means what they think but definition of Kernel itself suggest that Linux or even Unix is more than kernel and so it should be an OS.
Well, this is what Linus (father of Linux) said (taken from wikipedia) : In the "Notes for linux release 0.01", Torvalds lists the GNU software that is required to run Linux:[11] Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc. These are separate parts and may be under a stricter (or even looser) copyright. Most of the tools used with linux are GNU software and are under the GNU copyleft. These tools aren't in the distribution - ask me (or GNU) for more info.[11] In 1992, he suggested releasing the kernel under the GNU General Public License. He first announced this decision in the release notes of version 0.12.[12] In the middle of December 1992 he published version 0.99 using the GNU GPL.[13] Linux and GNU developers worked to integrate GNU components with Linux to make a fully-functional and free operating system.[
Nice... I am totally confused... :sosp::sosp: But after reading that i have a strong feeling that linux was a kernel and now its a OS after the developers worked on it!!!!
That is what I am trying to say that the name Linux refers to a kernel while if some extra packages are added over it (which distributions like ubuntu, centOs etc do) then the whole package becomes an operating system. Also, whenever you serach for 'download Linux' you always get results like download ubuntu, download centOS etc as these are Linux(kernel) based OS.
I think this would technically clear all the doubts that Linux refers to kernel while GNU/Linux refers to OS but in general developers refer Linux as OS(Taken from Wikipedia) The designation "Linux" was initially used by Torvalds only for the Linux kernel. The kernel was, however, frequently used together with other software, especially that of the GNU project. This quickly became the most popular adoption of GNU software. In June 1994 in GNU's bulletin, Linux was referred to as a "free UNIX clone", and the Debian project began calling its product Debian GNU/Linux. In May 1996, Richard Stallman published the editor Emacs 19.31, in which the type of system was renamed from Linux to Lignux. This spelling was intended to refer specifically to the combination of GNU and Linux, but this was soon abandoned in favor of "GNU/Linux".[16] This name garnered varying reactions. The GNU and Debian projects use the name, although most developers simply use the term "Linux" to refer to the combination.
Thanks for clearing my doubts... Note : Hey... Avoid multiple posts at once...because this is depreciated according to the forum guidelines could lead to infractions...If you want to add some data in your previous post use the edit button... I learn t this from several infractions...Hope you can understand in one go!! Thanks...
This is what I meant. Any kernel is a virtual concept in real examples and as you use Unix it is also not kernel in true sense. Can be said. Great to see your understanding.