[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What is the standard microkernel?

From: William ML Leslie
Subject: Re: What is the standard microkernel?
Date: Sat, 21 Jan 2023 00:00:46 +1000

On Tue, 10 Jan 2023 at 00:28, Cut Hour <cuthour@gmail.com> wrote:

Recently I saw a C++ code which implements the recursive descent parser.
The code uses own stack variable and own loop.  It actually says "the
function call is the overhead."

I knew Apache web server says "fork() is the overhead."  And I thought
that the goals of this kind of things must be the dedicated machine, the
dedicated OS, or the dedicated language.

I came up with an idea that "How about the Apache directly on microkernel."
I checked microkernels and I see (the IPC of) Mach was a failure. I also
checked Linux on L4 shows only a few percent performance degradation.

If your goal is simply performance on a single-purpose computer, you will likely do much better avoiding posix altogether.

I think that Genode includes a native port of lighttpd, which sounds a lot like what you're after.

The https server that ships with CapROS was pretty neat, but it doesn't build with modern toolchains and I need to update the SSL library.  What makes the CapROS tutorial server special is that you can submit native programs to it and it will run them for you - it's a very effective demonstration of the reliability and security of the operating system when native RCE is not a security vulnerability.  I'm not sure if that tickles you, given that you mostly mentioned performance and not security; and I've no idea how it compares with apache or nginx.

The l4-hurd project itself is effectively discontinued.  Nobody has been actively working on it.  There is a lot of information available if anyone wanted to pick it up, and I have had some success porting parts of it to Coyotos.  The trickiest part for me so far was the fact that mach ports are refcounted and you can get notifications when the sender is gone or when all the listeners are gone; to do this reliably on simpler microkernels you need to have some other service keep track of that information.

I hope that helps, if not, maybe you can clarify what you're really interested in?

William ML Leslie

reply via email to

[Prev in Thread] Current Thread [Next in Thread]