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/
> 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/
Topic | Posted By | Date |
---|---|---|
x86 - why unite when you can fragment? | anonymou5 | 2021/03/12 06:16 PM |
x86 - why unite when you can fragment? | Linus Torvalds | 2021/03/13 01:18 PM |
x86 - why unite when you can fragment? | Jon Masters | 2021/03/13 07:25 PM |
x86 - why unite when you can fragment? | Jon Masters | 2021/03/13 07:44 PM |
x86 - why unite when you can fragment? | Yuhong Bao | 2021/03/13 08:49 PM |
x86 - why unite when you can fragment? | tt | 2021/03/20 09:30 AM |
x86 - why unite when you can fragment? | Andrey | 2021/03/14 04:15 PM |
x86 - why unite when you can fragment? | Linus Torvalds | 2021/03/14 04:58 PM |
x86 - why unite when you can fragment? | anonymou5 | 2021/03/14 05:31 PM |
x86 - why unite when you can fragment? | anon2 | 2021/03/14 08:07 PM |
Microkernel? | Anon | 2021/03/14 11:49 PM |
Microkernel? | none | 2021/03/15 12:37 AM |
Microkernel? | Anon | 2021/03/15 01:56 AM |
Microkernel? | anon2 | 2021/03/15 01:58 AM |
Microkernel? | Simon Farnsworth | 2021/03/15 03:12 AM |
Microkernel? | anon2 | 2021/03/15 04:53 AM |
Microkernel? | Simon Farnsworth | 2021/03/15 06:56 AM |
Microkernel? | iz | 2021/03/15 08:10 AM |
Microkernel? | Anon | 2021/03/15 09:05 AM |
Microkernel? | iz | 2021/03/16 01:25 AM |
Microkernel? | Andrey | 2021/03/16 02:54 AM |
Microkernel? | iz | 2021/03/16 08:36 AM |
Microkernel? | Andrey | 2021/03/16 10:06 AM |
Microkernel? | anonymou5 | 2021/03/16 11:44 AM |
Microkernel? | iz | 2021/03/21 02:58 AM |
Microkernel? | Andrey | 2021/03/21 09:34 AM |
Microkernel? | anon2 | 2021/03/15 08:31 AM |
Microkernel? | Simon Farnsworth | 2021/03/16 04:42 AM |
Microkernel? | Gabriele Svelto | 2021/03/15 03:21 AM |
Microkernel? | anon2 | 2021/03/15 04:56 AM |
Microkernel? | Gabriele Svelto | 2021/03/15 10:41 AM |
Microkernel? | anon2 | 2021/03/15 08:00 PM |
Microkernel? | Gabriele Svelto | 2021/03/16 07:23 AM |
Microkernel? | anon2 | 2021/03/16 05:13 PM |
Microkernel? | anon2 | 2021/03/16 05:16 PM |
Microkernel? | Gian-Carlo Pascutto | 2021/03/16 01:40 PM |
Microkernel? | anon2 | 2021/03/16 05:53 PM |
Microkernel? | Linus Torvalds | 2021/03/16 07:25 PM |
Microkernel? | Doug S | 2021/03/17 09:30 AM |
Microkernel? | Linus Torvalds | 2021/03/17 10:30 AM |
Microkernel? | Brendan | 2021/03/17 10:56 PM |
Microkernel? | Michael S | 2021/03/18 03:47 AM |
Microkernel? | Brendan | 2021/03/18 09:07 AM |
Microkernel? | Jose | 2021/03/18 09:35 AM |
Microkernel? | zArchJon | 2021/03/18 05:42 PM |
Transputer | RichardC | 2021/03/17 09:47 AM |
Microkernel? | dmcq | 2021/03/17 11:15 AM |
Microkernel? | Linus Torvalds | 2021/03/17 11:59 AM |
Microkernel? | dmcq | 2021/03/17 12:38 PM |
Microkernel? | Adrian | 2021/03/17 01:00 PM |
Microkernel? | Ana R. Riano | 2021/03/18 04:33 AM |
Microkernel? | ⚛ | 2021/04/30 04:52 PM |
Microkernel? | NvaxPlus | 2021/03/17 11:48 AM |
Microkernel? | Michael S | 2021/03/18 03:32 AM |
Microkernel? | Adrian | 2021/03/18 04:12 AM |
Microkernel? | dmcq | 2021/03/18 06:30 AM |
Microkernel? | dmcq | 2021/03/18 06:55 AM |
Microkernel? | Adrian | 2021/03/18 08:35 AM |
Microkernel? | --- | 2021/03/18 09:49 AM |
Microkernel? | dmcq | 2021/03/18 10:59 AM |
Microkernel? | dmcq | 2021/03/18 04:09 PM |
Microkernel? | --- | 2021/03/18 09:27 AM |
Microkernel? | Kalle A. Sandström | 2021/03/20 06:34 AM |
Microkernel? | --- | 2021/03/20 08:35 AM |
Microkernel? | anon2 | 2021/03/21 05:29 PM |
Microkernel? | dmcq | 2021/03/15 04:06 AM |
Microkernel? | anon2 | 2021/03/15 04:59 AM |
Microkernel? | dmcq | 2021/03/15 11:51 AM |
Microkernel? | anon2 | 2021/03/15 08:31 PM |
Microkernel? | dmcq | 2021/03/16 09:17 AM |
Microkernel? | Jukka Larja | 2021/03/16 11:22 AM |
Microkernel? | dmcq | 2021/03/16 04:06 PM |
Microkernel? | Jukka Larja | 2021/03/17 03:42 AM |
Microkernel? | dmcq | 2021/03/17 07:00 AM |
Microkernel? | anon2 | 2021/03/16 05:26 PM |
Microkernel? | --- | 2021/03/16 10:07 AM |
Microkernel? | -.- | 2021/03/15 08:15 PM |
Microkernel? | anon2 | 2021/03/15 09:18 PM |
Microkernel? | Foo_ | 2021/03/16 03:37 AM |
Read the thread (NT) | anon2 | 2021/03/16 05:27 PM |
Already did (NT) | Foo_ | 2021/03/17 02:55 AM |
Already did | anon2 | 2021/03/17 03:46 AM |
Already did | Etienne Lorrain | 2021/03/18 02:31 AM |
Microkernel? | -.- | 2021/03/17 05:04 AM |
Microkernel? | Gabriele Svelto | 2021/03/17 08:53 AM |
Microkernel? | -.- | 2021/03/17 02:43 PM |
Microkernel? | dmcq | 2021/03/16 08:40 AM |
x86 - why unite when you can fragment? | Konrad Schwarz | 2021/03/17 10:19 AM |
x86 - why unite when you can fragment? | anonon | 2021/03/15 07:37 AM |