Re: What is the standard microkernel?
William ML Leslie <[email protected]> Sat, 21 Jan 2023 00:00:46 +1000
| Newsgroups | gmane.os.hurd.l4 |
|---|---|
| Message-ID | <CAHgd1hFUsg_QRhW1FUJ1r_yfgQMvv2sMzd=Ubf35fzo+iXUKkg@mail.gmail.com> |
--0000000000008df4fe05f2b27a61 Content-Type: text/plain; charset="UTF-8" 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 --0000000000008df4fe05f2b27a61 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon= t-family:arial,sans-serif">On Tue, 10 Jan 2023 at 00:28, Cut Hour <<a hr= ef=3D"mailto:[email protected]">[email protected]</a>> wrote:</div></div= ><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"marg= in:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1e= x">Hello.<br> <br> Recently I saw a C++ code which implements the recursive descent parser.<br= > The code uses own stack variable and own loop.=C2=A0 It actually says "= ;the<br> function call is the overhead."<br> <br> I knew Apache web server says "fork() is the overhead."=C2=A0 And= I thought<br> that the goals of this kind of things must be the dedicated machine, the<br= > dedicated OS, or the dedicated language.<br> <br> I came up with an idea that "How about the Apache directly on microker= nel."<br> I checked microkernels and I see (the IPC of) Mach was a failure. I also<br= > checked Linux on L4 shows only a few percent performance degradation.<br></= blockquote><div><br></div><div><div style=3D"font-family:arial,sans-serif" = class=3D"gmail_default">If your goal is simply performance on a single-purp= ose computer, you will likely do much better avoiding posix altogether.</di= v><div style=3D"font-family:arial,sans-serif" class=3D"gmail_default"><br><= /div><div style=3D"font-family:arial,sans-serif" class=3D"gmail_default">I = think that Genode includes a native port of lighttpd, which sounds a lot li= ke what you're after.<br></div><div style=3D"font-family:arial,sans-ser= if" class=3D"gmail_default"><br></div><div style=3D"font-family:arial,sans-= serif" class=3D"gmail_default">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.=C2=A0 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 o= f the operating system when native RCE is not a security vulnerability.=C2= =A0 I'm not sure if that tickles you, given that you mostly mentioned p= erformance and not security; and I've no idea how it compares with apac= he or nginx.<br></div><div style=3D"font-family:arial,sans-serif" class=3D"= gmail_default"><br></div><div style=3D"font-family:arial,sans-serif" class= =3D"gmail_default">The l4-hurd project itself is effectively discontinued.= =C2=A0 Nobody has been actively working on it.=C2=A0 There is a lot of info= rmation available if anyone wanted to pick it up, and I have had some succe= ss porting parts of it to Coyotos.=C2=A0 The trickiest part for me so far w= as the fact that mach ports are refcounted and you can get notifications wh= en the sender is gone or when all the listeners are gone; to do this reliab= ly on simpler microkernels you need to have some other service keep track o= f that information.</div></div></div><div><br></div><div><div style=3D"font= -family:arial,sans-serif" class=3D"gmail_default">I hope that helps, if not= , maybe you can clarify what you're really interested in?<br></div><br>= </div><br>-- <br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr= "><div>William ML Leslie<br></div></div></div></div> --0000000000008df4fe05f2b27a61--