Microkernel?

By: dmcq (dmcq.delete@this.fano.co.uk), March 16, 2021 9:17 am
Room: Moderated Discussions
anon2 (anon.delete@this.anon.com) on March 15, 2021 8:31 pm wrote:
> dmcq (dmcq.delete@this.fano.co.uk) on March 15, 2021 11:51 am wrote:
> > anon2 (anon.delete@this.anon.com) on March 15, 2021 4:59 am wrote:
> > > dmcq (dmcq.delete@this.fano.co.uk) on March 15, 2021 4:06 am wrote:
> > > > anon2 (anon.delete@this.anon.com) on March 15, 2021 1:58 am wrote:
> > > > > Anon (no.delete@this.spam.com) on March 14, 2021 11:49 pm wrote:
> > > > > > Linus Torvalds (torvalds.delete@this.linux-foundation.org) on March 14, 2021 4:58 pm wrote:
> > > > > > > That kind of thing could be useful for a microkernel (not that I believe in the
> > > > > > > concept - I continue to be of the opinion that microkernel proponents are overplaying the advantages,
> > > > > > > and underplaying the very real issues with communication and sharing).
> > > > > >
> > > > > > In several places I saw Linux being classified as "microkernel", I never touhgt
> > > > > > this classification have any relevance, but now I read you bashing the concept.
> > > > > >
> > > > > > So, is Linux a microkernel after all?
> > > > >
> > > > > No. It has taken some concepts and applied them where they are are a good fit
> > > > > (e.g., to implement userspace device drivers for certain classes of device).
> > > > >
> > > > > > What is the true concept of microkernel?
> > > > > >
> > > > >
> > > > > Traditionally it is a minimal kernel that supports only thread scheduling, low level interrupt handling,
> > > > > IPC, and perhaps low level virtual memory management. The
> > > > > rest of the kernel services are built with threads
> > > > > (which may or may not be in different address spaces and privilege modes) on top of that base.
> > > > >
> > > > > It sounds like such a nice clean idea that even experienced computer scientists
> > > > > and engineers throw away careers trying to make it work like a monolithic kernel.
> > > > > The reality is not all problems can be decomposed into "clean, simple".
> > > > >
> > > > > But when you step back and think about things a bit more generally and not just myopically at the kernel,
> > > > > it's much less of a surprise that it doesn't work well -- would anybody think a "microuserspace" is
> > > > > a good idea? glibc broken up into dozens of services running as threads, every application in the system
> > > > > making IPC requests to the memory allocator server for malloc and free, to the string server for memcpy
> > > > > or strlen, to the file server for fopen/fclose, etc.? No, when you put it that way it's easy to see
> > > > > it's not actually all that nice and clean at all. Particularly if you want to get non-trivial performance
> > > > > or scalability from it. There is certainly no fundamental nicety to it.
> > > >
> > > > I see you never mentioned security so I guess that's not of interest to you.
> > >
> > > Non sequitur.
> >
> > In the computer industry you have to make your priorities clear.
>
> You blame me because you made a false assertion due to invalid assumption
> that was not supported by anything I wrote or implied? lol
>
> > Any you leave out are maybe 'would
> > be nice'. You have put in performance and scalability and clean code. The first three of the priorities
> > are as much as one can expect from a project and those already will require trade offs.
>
> I can't decipher your blathering, but I'm afraid you are wrong. Try being constructive
> next time rather than coming straight out the gate with such garbage accusation.

I'm not blaming you for anything, I'm just pointing out the facts. And it is pretty clear from what you say below that security is not one of your major prorities. There is nothing wrong with that, that is true of most people and it serves them well enough normally.


> > > > If you really
> > > > want performance you should get rid of the user/supervisor distinction as well.
> > >
> > > Ironic. In fact it is microkernels that tend to get rid of those "clean" layerings and
> > > abstractions from their ivory tower architecture vision when the rubber hits the road
> > > and they find performance is so terrible they need to start mashing together their academically
> > > (alleged) beautiful design of privilege and memory protection modes.
> >
> > Perhaps you can give an illustration of what you mean?
>
> Kind of like how Apple used a microkernel and it sucked so they had to start putting
> device drivers in the kernel and then half of a BSD kernel in their kernel space so
> now device drivers, filesystems, network stack are all running in the kernel.
>
> In other words, they really wanted performance sothey got rid of the user/supervisor
> distinction for all their microkernel services of importance.
>
> (And their performance still sucks sadly for them, in no small
> part due to the underlying microkernel foundations)

Here you make abundantly clear that performance is your top priority and everything else takes second or further down the order place.


> > > > If you have
> > > > megabytes in the system and it is being constantly improved it doesn't really give stong
> > > > security, just a constantlty rolling protection via updates against script kiddies.
> > >
> > > ?!
> >
> > I see above you thimk megabytes of monolithic supervisor code can 'in theory' satisfy the priorities
> > that microkernels are supposed to deal with so I suppose it is reasonable that you question this.
> >
>
> Well that's the fallacy isn't it?
>
> It's taken as axiomatic that microkernels are better at security / stability / whatever property
> one wants to name, just "because". And therefore other approaches are worse, and therefore
> if you are a proponent of another approach then you don't care about those things.
>
> In fact it goes even further than that, the rule is not that they are simply better at some particular
> things, it is that they are a better model to build a real world system on that satisfies and optimizes
> your requirements. That's just the base assertion, microkernel zealots I've encountered have never
> felt the slightest inclination to actually substantiate any of this, because arguing with those for
> whom it is not self-evident (the philistines who don't care for security) is beneath them.

You have not said how megabytes of monolithic software can be made so for instance Microsoft's Patch Tuesday occurs less than once a year and only has to fix one security bug. IBM's machines do better but you don't get them running browsers or downloading odd software from the web.

Personally I agree with you to an extent. I don't think a microkernel can satisfy people in general since performance is the first thing they measure. The current Von Neumann architecture with user and supervisor states simply can't support sending messages between tasks efficiently enough. However then I go on to wondering what kind of thing would mean that we didn't have megabytes of code in the kernel and yet could do things as efficiently or better and support most current programs without disruptive changes? As far as I can see if you want to avoid copying lots of data it seems capabilities are the way - that brings other problems of course but I think they would be easier to manage and contain.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
x86 - why unite when you can fragment?anonymou52021/03/12 06:16 PM
  x86 - why unite when you can fragment?Linus Torvalds2021/03/13 01:18 PM
    x86 - why unite when you can fragment?Jon Masters2021/03/13 07:25 PM
      x86 - why unite when you can fragment?Jon Masters2021/03/13 07:44 PM
        x86 - why unite when you can fragment?Yuhong Bao2021/03/13 08:49 PM
        x86 - why unite when you can fragment?tt2021/03/20 09:30 AM
    x86 - why unite when you can fragment?Andrey2021/03/14 04:15 PM
      x86 - why unite when you can fragment?Linus Torvalds2021/03/14 04:58 PM
        x86 - why unite when you can fragment?anonymou52021/03/14 05:31 PM
          x86 - why unite when you can fragment?anon22021/03/14 08:07 PM
        Microkernel?Anon2021/03/14 11:49 PM
          Microkernel?none2021/03/15 12:37 AM
            Microkernel?Anon2021/03/15 01:56 AM
          Microkernel?anon22021/03/15 01:58 AM
            Microkernel?Simon Farnsworth2021/03/15 03:12 AM
              Microkernel?anon22021/03/15 04:53 AM
                Microkernel?Simon Farnsworth2021/03/15 06:56 AM
                  Microkernel?iz2021/03/15 08:10 AM
                    Microkernel?Anon2021/03/15 09:05 AM
                      Microkernel?iz2021/03/16 01:25 AM
                        Microkernel?Andrey2021/03/16 02:54 AM
                          Microkernel?iz2021/03/16 08:36 AM
                            Microkernel?Andrey2021/03/16 10:06 AM
                              Microkernel?anonymou52021/03/16 11:44 AM
                              Microkernel?iz2021/03/21 02:58 AM
                                Microkernel?Andrey2021/03/21 09:34 AM
                  Microkernel?anon22021/03/15 08:31 AM
                    Microkernel?Simon Farnsworth2021/03/16 04:42 AM
            Microkernel?Gabriele Svelto2021/03/15 03:21 AM
              Microkernel?anon22021/03/15 04:56 AM
                Microkernel?Gabriele Svelto2021/03/15 10:41 AM
                  Microkernel?anon22021/03/15 08:00 PM
                    Microkernel?Gabriele Svelto2021/03/16 07:23 AM
                      Microkernel?anon22021/03/16 05:13 PM
                        Microkernel?anon22021/03/16 05:16 PM
                    Microkernel?Gian-Carlo Pascutto2021/03/16 01:40 PM
                      Microkernel?anon22021/03/16 05:53 PM
                        Microkernel?Linus Torvalds2021/03/16 07:25 PM
                          Microkernel?Doug S2021/03/17 09:30 AM
                            Microkernel?Linus Torvalds2021/03/17 10:30 AM
                              Microkernel?Brendan2021/03/17 10:56 PM
                                Microkernel?Michael S2021/03/18 03:47 AM
                                  Microkernel?Brendan2021/03/18 09:07 AM
                              Microkernel?Jose2021/03/18 09:35 AM
                            Microkernel?zArchJon2021/03/18 05:42 PM
                          TransputerRichardC2021/03/17 09:47 AM
                          Microkernel?dmcq2021/03/17 11:15 AM
                            Microkernel?Linus Torvalds2021/03/17 11:59 AM
                              Microkernel?dmcq2021/03/17 12:38 PM
                              Microkernel?Adrian2021/03/17 01:00 PM
                              Microkernel?Ana R. Riano2021/03/18 04:33 AM
                              Microkernel?2021/04/30 04:52 PM
                          Microkernel?NvaxPlus2021/03/17 11:48 AM
                            Microkernel?Michael S2021/03/18 03:32 AM
                              Microkernel?Adrian2021/03/18 04:12 AM
                                Microkernel?dmcq2021/03/18 06:30 AM
                                  Microkernel?dmcq2021/03/18 06:55 AM
                                  Microkernel?Adrian2021/03/18 08:35 AM
                                    Microkernel?---2021/03/18 09:49 AM
                                    Microkernel?dmcq2021/03/18 10:59 AM
                                      Microkernel?dmcq2021/03/18 04:09 PM
                              Microkernel?---2021/03/18 09:27 AM
                          Microkernel?Kalle A. Sandström2021/03/20 06:34 AM
                            Microkernel?---2021/03/20 08:35 AM
                            Microkernel?anon22021/03/21 05:29 PM
            Microkernel?dmcq2021/03/15 04:06 AM
              Microkernel?anon22021/03/15 04:59 AM
                Microkernel?dmcq2021/03/15 11:51 AM
                  Microkernel?anon22021/03/15 08:31 PM
                    Microkernel?dmcq2021/03/16 09:17 AM
                      Microkernel?Jukka Larja2021/03/16 11:22 AM
                        Microkernel?dmcq2021/03/16 04:06 PM
                          Microkernel?Jukka Larja2021/03/17 03:42 AM
                            Microkernel?dmcq2021/03/17 07:00 AM
                      Microkernel?anon22021/03/16 05:26 PM
                    Microkernel?---2021/03/16 10:07 AM
            Microkernel?-.-2021/03/15 08:15 PM
              Microkernel?anon22021/03/15 09:18 PM
                Microkernel?Foo_2021/03/16 03:37 AM
                  Read the thread (NT)anon22021/03/16 05:27 PM
                    Already did (NT)Foo_2021/03/17 02:55 AM
                      Already didanon22021/03/17 03:46 AM
                        Already didEtienne Lorrain2021/03/18 02:31 AM
                Microkernel?-.-2021/03/17 05:04 AM
                  Microkernel?Gabriele Svelto2021/03/17 08:53 AM
                    Microkernel?-.-2021/03/17 02:43 PM
              Microkernel?dmcq2021/03/16 08:40 AM
        x86 - why unite when you can fragment?Konrad Schwarz2021/03/17 10:19 AM
    x86 - why unite when you can fragment?anonon2021/03/15 07:37 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?