Thread: monolithic vs. microkernel

  1. #1
    Just because ygfperson's Avatar
    Join Date
    Jan 2002

    monolithic vs. microkernel

    here's an attempt to get some new material put into the faq... (even though i am the mod and all, it would be good to get some support)

    what's the difference between a monolithic operating system kernel and a microkernel? linus torvalds and the teacher argued about that often, i think.

  2. #2
    Registered User
    Join Date
    Jun 2002
    A monolithic kernel (as far as I understand) is one where as much as possible of the o/s related stuff (drivers, memory managers, etc) is part of the kernel and runs as part of the central kernel process. The alternative (microkernel) is where o/s components are isolated from the kernel and run as separate processes in their own address space.

  3. #3
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    A micro-kernel is probably more structured than a monolithic kernel, but the monolithic kernel is probably more efficient. I say probably because it really depends on the implementation.

    My best code is written with the delete key.

  4. #4
    Disagreeably Disagreeable
    Join Date
    Aug 2001
    This is a very debated topic amongst OS gurus (although it shouldn't be), but Enmeduranki summed up the modern concensus.

    Originally a microkernel, by definition, was a kernel that was...well, micro in size. Say 50 KB or less.

    Now, microkernel is usually meant as a systematic design where the device drivers, programs, and system services run outside of the kernel memory space. The only thing that actually is in the kernel is some sort of mechanism that can tie all of the external OS components together and work.

    Likewise, a monolithic kernel is one where a large portion of the OS components are "inside" and a part of the kernel, and are executed inside the kernel address space. There is also a form of the monolithic design, where some OS components are modules that run in their own address space which pushes the model into the direction of a microkernel.

    But then, there's those who argue what exactly a kernel is. Is it the core code of the OS that is vital? My definition of kernel (as is a lot of people's) is the code that is directly responsible for the tasking model (the part of the operating system that controls how tasks are executed and in what order). [Def. from Richard Burgess]

    So, sometimes the line between monolithic and microkernel blurs. And sometimes the definition of kernel blurs. That's probably why it's such a hot topic.

    Edit: I put 500 when I meant 50.
    Last edited by Hillbillie; 08-18-2002 at 06:36 PM.

  5. #5
    Registered User hermit's Avatar
    Join Date
    Apr 2002
    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
    Mac osX server uses microkernel concept which is initially developed in MACH
    Last edited by hermit; 08-23-2002 at 05:56 AM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. SOS - Can a monolithic kernel be used in a micro-kernel style OS?
    By sean in forum A Brief History of
    Replies: 7
    Last Post: 11-20-2008, 09:30 AM