Microkernel?

By: --- (---.delete@this.redheron.com), March 16, 2021 10:07 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.
>
> >
> > > > 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)

Apple runs most drivers (more every year) in userspace:
https://developer.apple.com/documentation/driverkit

Evolution towards ever more user-space networking is on-going:
https://devstreaming-cdn.apple.com/videos/wwdc/2017/707h2gkb95cx1l/707/707_advances_in_networking_part_1.pdf

Apple uses XPC (IPC, rather than function calls) as the primary communications mechanism from userspace to any service that has RAS implications:
https://www.objc.io/issues/14-mac/xpc/

< 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?