Microkernel Vs Monolithic Kernel

By: Rob Thorpe (robert.thorpe.delete@this.antenova.com), May 15, 2006 1:41 am
Room: Moderated Discussions
David Kanter (dkanter@realworldtech.com) on 5/9/06 wrote:
>Kernel_Protector (kernelprotector@yahoo.com) on 5/9/06 wrote:
>>According to my view, since its a kernel, its design should be planned good.
>>variable codes(codes which interact with hardware, daily new hardwares appears)
>>Vs fixed codes(or not frequently changing codes and 100% >reliable codes and does not deal with hardware)
>>only fixed codes should be running in kernel space with full priviledges and variable
>>codes should be running in user space.
>No amount of planning can substitute for seeing what is going on. If you try to
>freeze software in stone and never change it over the course of 10 years, you're going to be very very sorry.

Not completely, but you would be surprised. Those who have spent a lot of time in the world of windows are used to programs changing all the time. This is because many of those program and much of the OS is badly designed.

In Unix things have lasted much longer. The basic function call interface used today has few differences to that of the eighties, most of the differences additions not changes.

Some of the basic userland utilities have changed even less. (Though in my opinion some of them should have changed more than they have).

In general there is a principle that programs(and modules) can be split into two basic types:-
1. Code with a fixed requirement
2. Code with expanding requirements

Many programs, including OSes and most apps fall into class 2. Some though fall into class 1, drivers for example fulfill a fixed requirement, when the hardware changes a new driver is needed. This may reuse code from an old driver, but that isn't quite the same thing.

More modules than programs fall into #2. In large peices of software it's not hard to find files that have not changed in many years, or where the only changes have been bug fixes. These modules can generally be kept freer of bugs more easily than others, often the only "bugs" found in them are misunderstanding in the interfaces.

If the core part of an OS kernel could be brought into class #2 then that would be a great achievement, because it would make achieving high reliability for that part much easier. It may not be impossible, since the amount of functionality and code concerned may be only relatively small, say 20000 lines.

>>if IPC, Memory management those which has a complete programming which wont have
>>bugs(since the codes for these may be small and which wont have any frequent code
>>change) only runs in the kernel and everything else(remaining drivers) which might
>>have code change even daily runs in the user-level, will result in a good secured and reliable OS.
>Has it occurred to you that these functions might need to change over time?

This may actually be possible. All that is needed is for the base kernel to implement the absolute most general cases. Libs further down can translate this into interfaces for other programs.

It would be progress even if these things could change little.

>>regarding performance,
>>i like to say this...
>>i had a program which took 15 minutes to complete with a pentium II processor.the
>>same program took 7 mintues to complete with a pentium III processor. and it took
>>only 2 or 3 minutes in a pentium IV processor.
>Do you write code which can run efficiently (> 90% speed up) on N threads, for
>arbitrary N? If not, I wouldn't count on that any more.
>Besides, just because hardware gets faster isn't an excuse to write bad software.
>That's like saying that we don't need seat belts in cars since people tend to be
>healthier over time as nutrition and our understanding of the body improves.

As "blah" said, I personally would rather have safety and security than speed. Both would be preferable though.

I'm not sure this is such an issue anyway.

>>the performance will be increased by the hardware automatically as time goes on.BUT
>>will a kernel safety like microkernel be given by any >hardware automatically ???
>Is a ukernel really that much safer than existing operating systems? It seems
>to me that some systems like VMS, zOS and NSK all have up times as high as a couple
>of decades. Doesn't seem like safety's really a problem...

Many systems have been made safe and secure through extremely paranoid kernel programming. This is a legitimate engineering choice. But it causes many problems. Many of the operating systems you mention are primitive in many regards compared to more modern systems. That is their filesystems, syscall interfaces, threading etc leave much to be desired. They also support relatively little hardware.
This is because of the enormous care that must be taken in changing them.

The (possibly false) hope that microkernels give is that they may make it possible for more sophisticated systems -ones with the capabilities of say linux- to be similarly reliable.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Hybrid (micro)kernelsTzvetan Mikov2006/05/08 04:41 PM
  Hybrid (micro)kernelsS. Rao2006/05/08 06:14 PM
  Hybrid (micro)kernelsBill Todd2006/05/08 06:16 PM
    Hybrid (micro)kernelsTzvetan Mikov2006/05/08 07:21 PM
      Hybrid (micro)kernelsnick2006/05/08 07:50 PM
      Hybrid (micro)kernelsBill Todd2006/05/09 01:26 AM
        There aren't enough words...Rob Thorpe2006/05/09 02:39 AM
          There aren't enough words...Tzvetan Mikov2006/05/09 03:10 PM
            There aren't enough words...Rob Thorpe2006/05/15 12:25 AM
        Hybrid (micro)kernelsTzvetan Mikov2006/05/09 11:17 AM
          Hybrid (micro)kernelsBill Todd2006/05/09 04:05 PM
  Hybrid (micro)kernelsrwessel2006/05/08 11:23 PM
    Hybrid kernel, not NTRichard Urich2006/05/09 06:03 AM
      Hybrid kernel, not NT_Arthur2006/05/09 07:06 AM
        Hybrid kernel, not NTRob Thorpe2006/05/09 07:40 AM
          Hybrid kernel, not NT_Arthur2006/05/09 08:30 AM
            Hybrid kernel, not NTRob Thorpe2006/05/09 09:07 AM
              Hybrid kernel, not NT_Arthur2006/05/09 09:36 AM
                Linux vs MacOSX peformance, debunked_Arthur2006/05/18 07:30 AM
                  Linux vs MacOSX peformance, debunkedRob Thorpe2006/05/18 08:19 AM
                    Linux vs MacOSX peformance, debunkedAnonymous2006/05/18 12:31 PM
        Hybrid kernel, not NTLinus Torvalds2006/05/09 08:16 AM
          Hybrid kernel, not NTAndi Kleen2006/05/09 02:32 PM
            Hybrid kernel, not NTmyself2006/05/09 03:24 PM
              Hybrid kernel, not NTmyself2006/05/09 03:41 PM
              Hybrid kernel, not NTBrendan2006/05/09 05:26 PM
                Hybrid kernel, not NTLinus Torvalds2006/05/09 08:06 PM
                  Hybrid kernel, not NTBrendan2006/05/13 01:35 AM
                    Hybrid kernel, not NTnick2006/05/13 04:40 AM
                      Hybrid kernel, not NTBrendan2006/05/13 09:48 AM
                        Hybrid kernel, not NTnick2006/05/13 07:41 PM
                          Hybrid kernel, not NTBrendan2006/05/13 09:51 PM
                            Hybrid kernel, not NTnick2006/05/14 05:57 PM
                              Hybrid kernel, not NTBrendan2006/05/14 10:40 PM
                                Hybrid kernel, not NTnick2006/05/14 11:46 PM
                                  Hybrid kernel, not NTBrendan2006/05/15 04:00 AM
                                    Hybrid kernel, not NTrwessel2006/05/15 07:21 AM
                                      Hybrid kernel, not NTBrendan2006/05/15 08:55 AM
                                        Hybrid kernel, not NTLinus Torvalds2006/05/15 09:49 AM
                                          Hybrid kernel, not NTnick2006/05/15 04:41 PM
                                          Hybrid kernel, not NTtony roth2008/01/31 02:20 PM
                                    Hybrid kernel, not NTnick2006/05/15 06:33 PM
                                      Hybrid kernel, not NTBrendan2006/05/16 01:39 AM
                                        Hybrid kernel, not NTnick2006/05/16 02:53 AM
                                          Hybrid kernel, not NTBrendan2006/05/16 05:37 AM
                  Hybrid kernel, not NTAnonymous2008/05/01 10:31 PM
                    Following the structure of the treeMichael S2008/05/02 04:19 AM
                      Following the structure of the treeDean Kent2008/05/02 05:31 AM
                        Following the structure of the treeMichael S2008/05/02 06:02 AM
                        Following the structure of the treeDavid W. Hess2008/05/02 06:48 AM
                          Following the structure of the treeDean Kent2008/05/02 09:14 AM
                            Following the structure of the treeDavid W. Hess2008/05/02 10:05 AM
                              LOL!Dean Kent2008/05/02 10:33 AM
                              Following the structure of the treeanonymous2008/05/02 03:04 PM
                                Following the structure of the treeDean Kent2008/05/02 07:52 PM
                                Following the structure of the treeFoo_2008/05/03 02:01 AM
                                  Following the structure of the treeDavid W. Hess2008/05/03 06:54 AM
                                    Following the structure of the treeDean Kent2008/05/03 10:06 AM
                                      Following the structure of the treeFoo_2008/05/04 01:06 AM
                                        Following the structure of the treeMichael S2008/05/04 01:22 AM
            Hybrid kernel, not NTLinus Torvalds2006/05/09 05:19 PM
              Microkernel Vs Monolithic KernelKernel_Protector2006/05/09 09:41 PM
                Microkernel Vs Monolithic KernelDavid Kanter2006/05/09 10:30 PM
                  Sigh, Stand back, its slashdotting time. (NT)Anonymous2006/05/09 10:44 PM
                  Microkernel Vs Monolithic Kernelblah2006/05/12 08:58 PM
                  Microkernel Vs Monolithic KernelRob Thorpe2006/05/15 01:41 AM
          Hybrid kernel, not NTAnalGuy2006/05/16 03:10 AM
            Theory versus practiceDavid Kanter2006/05/16 12:55 PM
              Distributed algorithmsRob Thorpe2006/05/17 12:53 AM
              Theory versus practiceHoward Chu2006/05/17 02:54 AM
                Theory versus practiceJS2006/05/17 04:29 AM
          Play online poker, blackjack !!! Gamezonex2007/08/16 01:49 PM
  Hybrid (micro)kernelsphilt2006/05/14 09:15 PM
    Hybrid (micro)kernelsLinus Torvalds2006/05/15 08:20 AM
      Hybrid (micro)kernelsLinus Torvalds2006/05/15 11:56 AM
        Hybrid (micro)kernelsRob Thorpe2006/05/16 01:22 AM
          Hybrid (micro)kernelsrwessel2006/05/16 11:23 AM
            Hybrid (micro)kernelsRob Thorpe2006/05/17 12:43 AM
              Hybrid (micro)kernelsrwessel2006/05/17 01:33 AM
                Hybrid (micro)kernelsRob Thorpe2006/05/19 07:51 AM
                  Hybrid (micro)kernelsrwessel2006/05/19 12:27 PM
      Hybrid (micro)kernelstechIperson2006/05/15 01:25 PM
      Hybrid (micro)kernelsmas2006/05/15 05:17 PM
        Hybrid (micro)kernelsLinus Torvalds2006/05/15 05:39 PM
          Hybrid (micro)kernelsColonel Kernel2006/05/15 09:17 PM
            Hybrid (micro)kernelsWink Saville2006/05/15 10:31 PM
              Hybrid (micro)kernelsLinus Torvalds2006/05/16 10:08 AM
                Hybrid (micro)kernelsWink Saville2006/05/16 09:55 PM
          Hybrid (micro)kernelsrwessel2006/05/16 11:31 AM
            Hybrid (micro)kernelsLinus Torvalds2006/05/16 12:00 PM
        Hybrid (micro)kernelsBrendan2006/05/16 01:36 AM
        Hybrid (micro)kernelsPaul Elliott2006/09/03 08:44 AM
          Hybrid (micro)kernelsRob Thorpe2006/09/04 09:25 AM
      Hybrid (micro)kernelsphilt2006/05/16 12:55 AM
        Hybrid (micro)kernelspgerassi2007/08/16 07:41 PM
  Another questionable entry on Wikipedia?Chung Leong2006/05/18 10:33 AM
  Hybrid (micro)kernelsisrael2006/05/20 04:25 AM
    Hybrid (micro)kernelsRob Thorpe2006/05/22 08:35 AM
Reply to this Topic
Body: No Text
How do you spell purple?