On Tue, 10 Jan 2023 at 00:28, Cut Hour <[email protected]> wrote: > Hello. > > 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
