The kernel is the heart of an operating system.
The kernel internally contains many components, such as a memory manager, scheduler, numerous device drivers, a file system, and so on. When an operating system is being written, there are numerous design philosophies which the designers can adopt. At one extreme is the monolithic kernel, in which all of the components mentioned above, and many others, are all lumped into a single operating system file. At the other extreme is the microkernel, where only the bare minimum is put into the kernel file, and every thing else is put into separate programs, which the microkernel loads and runs at boot time.
In practice, the design of most operating systems lies somewhere in between those two extremes, although they generally tend to be closer to a monolithic kernel than a microkernel. But, like everything else in life, the microkernel has its true believers.
Other Answer:
In monolithic operating system all services are provided in the operating system kernel itself. In my own understanding, monolithic operating system is one big program. Being 'one big program' all the services are associated with one another. This is prone to system crashes, because, if one particular function fails, the entire system will be brought to halt. In regards to resource management, it is difficult for the programmer to debug or implement the system. The only advantages of being monolithic are it deals with resource management rapidly. An example of a monolithic operating system will be the UNIX and MS-DOS. In microkernel operating system, processes are divided and stored in a different server. This key concept of the microkernel operating system is to keep the OS kernel small with basic and minimum process. Other services are stored in a different server. They communicate, via a communication channel
nope. they are different.
None. Solaris has a monolithic kernel.
Linux is a monolithic kernel. Some operating systems with a microkernel use Linux as a process for providing drivers, but this is irrelevant to mainstream Linux.
Monolithic Kernel is also known as "Macro Kernel" A monolithic kernel (Macro Kernel) is an operating system architecture where the entire operating system is working in the kernel space and alone as supervisor mode. The monolithic differs from other operating system architectures (such as the microkernel architecture) in that it defines alone a high-level virtual interface over computer hardware, with a set of primitives or system calls to implement all operating system services such as process management, concurrency, and memory management itself and one or more device drivers as modules.
Micro-Kernel: A micro-kernel is a minimal operating system that performs only the essential functions of an operating system. All other operating system functions are performed by system processes. Monolithic: A monolithic operating system is one where all operating system code is in a single executable image and all operating system code runs in system mode
Monolithic
Ubuntu uses the Linux kernel, which is a monolithic kernel with loadable modules.
Mac OS X is based on the XNU kernel, a microkernel Mach kernel with a BSD userland, which makes Mac OS X's kernel a hybrid-kernel.
A Kernel is classified into two main types: Monolithic Kernel Micro Kernel
Yes.
* Maintenance is generally easier. Patches can be tested in a separate instance, then swapped in to take over a production instance. * Rapid development time, new software can be tested without having to reboot the kernel. * More persistence in general, if one instance goes hay-wire, it is often possible to substitute it with an operational mirror
suffer from performance decreases due to increased system function overhead. Consider the history of Windows NT. The first release had a layered microkernel organization. However, this version delivered low performance compared with that of Windows 95. Windows NT 4.0 partially redressed the performance problem by moving layers from user space to kernel space and integrating them more closely. By the time Windows XP was designed, its architecture was more monolithic than microkernel.
Basically, there are three types of kernel: - Monolithic Kernel- Micro Kernel- ExoKernel Monolithic:As the name itself suggests, the kernel has every services like, FS Management, MM, Process Management, etc. in the kernel space. It does not run as a separate process. So, as you guess, there is no context switching, when you ask for a service. But, the probability of a monolithic kernel getting struck is more. Because, if there is a bug in the kernel itself, nothing can rescue it. Linux and Windows are good examples of Monolithic kernel. Linux, being a monolithic kernel, you can insert modules into the kernel dynamically using insmod command. Micro Kernel:Micro kernel runs all the services as a daemon in the user space. So, if a problem occurs in any of the service, the kernel will be able to decide what to do next. But, you pay-off the time to switch to a service in this type of kernel. Micro kernels are some what difficult to design and build than the monolithic kernel. There are always a discussion over the internet, talking about the advantage and disadvantages of monolithic and micro kernel. Exo Kernel:Exo kernel is not yet stabilized. It's under design and research. The user mode processes running in this type of kernel has the ability to access kernel resources like process tables, etc directly.