I've send the same patch to the mail like 3 times now. Apologies for the noise.
The 3rd time I send is the one that should be merged. If there's any questions, I'd be happy to send it again. Apologies for the noise. Joshua April 5, 2026 at 12:41 PM, "Joshua Branson" <[email protected] mailto:[email protected]?to=%22Joshua%20Branson%22%20%3Cjbranso%40dismail.de%3E > wrote: > > The image shows there is a separate rump process > for each rump driver. You can view the svg image > here: https://hurdos.com/wiki/hurd/rump.html > --- > hurd/rump.mdwn | 15 +- > images/rump-processes.svg | 312 ++++++++++++++++++++++++++++++++++++++ > 2 files changed, 321 insertions(+), 6 deletions(-) > create mode 100644 images/rump-processes.svg > > diff --git a/hurd/rump.mdwn b/hurd/rump.mdwn > index 49b36d14..69195d08 100644 > --- a/hurd/rump.mdwn > +++ b/hurd/rump.mdwn > @@ -1,4 +1,4 @@ > -[[!meta copyright="Copyright © 2009, 2010, 2011, 2024 Free Software > +[[!meta copyright="Copyright © 2009, 2010, 2011, 2024, 2026 Free Software > Foundation, Inc."]] > > [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable > @@ -19,17 +19,20 @@ License|/fdl]]."]]"""]] > > --- > > -The rump kernels provide existing real world drivers from netbsd. > +The rump unikernels provide existing real world drivers from NetBSD > Since [[DDE]] no longer seems like a promising approach to get drivers > -for the Hurd, it appears that rump kernels are the best alternative. > +for the Hurd, it appears that rump unikernels are the best alternative. > It already does the hard work of providing an environment where the > foreign drivers can run, and offers the additional benefit of being > externally maintained. Rump also offers the necessary facilities for > running all drivers in separate userspace processes, which is more > -desirable than drivers running in the microkernel. > +desirable than drivers running in the microkernel. There is one rump > +process for each driver as the below image shows. > > -A rump kernel is a minimal and portable NetBSD kernel running in > -userspace. Rump kernels provide drivers for modern hard drives, sound > +[[!img images/rump-processes.svg size="500x" alt="ftpfs logo" > align="center"]] > + > +A rump unikernel is a minimal and portable NetBSD kernel running in > +userspace. Rump unikernels provide drivers for modern hard drives, sound > cards, usb support, and a TCP/IP stack. Instead of re-inventing and > maintaining drivers ourselves, we can re-use the existing NetBSD > drivers. > diff --git a/images/rump-processes.svg b/images/rump-processes.svg > new file mode 100644 > index 00000000..68ddd05b > --- /dev/null > +++ b/images/rump-processes.svg > @@ -0,0 +1,312 @@ > +<?xml version="1.0" encoding="UTF-8" standalone="no"?> > +<!-- Copyright © 2026 Free Software Foundation > + > +Permission is granted to copy, distribute and/or modify this > +document under the terms of the GNU Free Documentation License, Version 1.3 > or > +any later version published by the Free Software Foundation; with no > Invariant > +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the > license > +can be found at https://www.gnu.org/licenses/fdl-1.3.html --> > + > +<!-- Created with Inkscape (http://www.inkscape.org/) --> > + > +<svg > + width="400mm" > + height="300mm" > + viewBox="0 0 400 300" > + version="1.1" > + id="svg1" > + inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)" > + sodipodi:docname="rump-processes.svg" > + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape%22 > + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd%22 > + xmlns="http://www.w3.org/2000/svg%22 > + xmlns:svg="http://www.w3.org/2000/svg%22> http://www.w3.org/2000/svg%22%3E > + <sodipodi:namedview > + id="namedview1" > + pagecolor="#ffffff" > + bordercolor="#000000" > + borderopacity="0.25" > + inkscape:showpageshadow="2" > + inkscape:pageopacity="0.0" > + inkscape:pagecheckerboard="0" > + inkscape:deskcolor="#d1d1d1" > + inkscape:document-units="mm" > + showguides="true" > + inkscape:zoom="0.32" > + inkscape:cx="529.6875" > + inkscape:cy="309.375" > + inkscape:window-width="1020" > + inkscape:window-height="709" > + inkscape:window-x="0" > + inkscape:window-y="0" > + inkscape:window-maximized="1" > + inkscape:current-layer="layer1" /> > + <defs > + id="defs1"> > + <marker > + style="overflow:visible" > + id="ArrowTriangleStylized" > + refX="0" > + refY="0" > + orient="auto-start-reverse" > + inkscape:stockid="Stylized triangle arrow" > + markerWidth="1" > + markerHeight="1" > + viewBox="0 0 1 1" > + inkscape:isstock="true" > + inkscape:collect="always" > + preserveAspectRatio="xMidYMid"> > + <path > + transform="scale(0.5)" > + > style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" > + d="m 6,0 c -3,1 -7,3 -9,5 0,0 0,-4 2,-5 -2,-1 -2,-5 -2,-5 2,2 6,4 9,5 z" > + id="path4" /> > + </marker> > + <rect > + x="322.61746" > + y="729.20386" > + width="291.68155" > + height="274.00388" > + id="rect18" /> > + <rect > + x="324.82718" > + y="132.58252" > + width="287.26212" > + height="276.21359" > + id="rect17" /> > + <rect > + x="64.081551" > + y="371.23105" > + width="194.45438" > + height="298.31067" > + id="rect6" /> > + <rect > + x="99.43689" > + y="388.90872" > + width="371.23105" > + height="428.6835" > + id="rect5" /> > + <rect > + x="50.823299" > + y="413.21552" > + width="174.56699" > + height="178.9864" > + id="rect4" /> > + <rect > + x="318.19806" > + y="212.13203" > + width="302.7301" > + height="92.807762" > + id="rect3" /> > + <rect > + x="324.82718" > + y="132.58252" > + width="287.26212" > + height="276.21359" > + id="rect17-4" /> > + <rect > + x="324.82718" > + y="132.58252" > + width="287.26212" > + height="276.21359" > + id="rect17-2" /> > + <rect > + x="322.61746" > + y="729.20386" > + width="291.68155" > + height="274.00388" > + id="rect18-1" /> > + <rect > + x="322.61746" > + y="729.20386" > + width="291.68155" > + height="274.00388" > + id="rect18-3" /> > + <marker > + style="overflow:visible" > + id="ArrowTriangleStylized-5" > + refX="0" > + refY="0" > + orient="auto-start-reverse" > + inkscape:stockid="Stylized triangle arrow" > + markerWidth="1" > + markerHeight="1" > + viewBox="0 0 1 1" > + inkscape:isstock="true" > + inkscape:collect="always" > + preserveAspectRatio="xMidYMid"> > + <path > + transform="scale(0.5)" > + > style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" > + d="m 6,0 c -3,1 -7,3 -9,5 0,0 0,-4 2,-5 -2,-1 -2,-5 -2,-5 2,2 6,4 9,5 z" > + id="path4-1" /> > + </marker> > + <marker > + style="overflow:visible" > + id="ArrowTriangleStylized-6" > + refX="0" > + refY="0" > + orient="auto-start-reverse" > + inkscape:stockid="Stylized triangle arrow" > + markerWidth="1" > + markerHeight="1" > + viewBox="0 0 1 1" > + inkscape:isstock="true" > + inkscape:collect="always" > + preserveAspectRatio="xMidYMid"> > + <path > + transform="scale(0.5)" > + > style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" > + d="m 6,0 c -3,1 -7,3 -9,5 0,0 0,-4 2,-5 -2,-1 -2,-5 -2,-5 2,2 6,4 9,5 z" > + id="path4-9" /> > + </marker> > + </defs> > + <g > + inkscape:label="Layer 1" > + inkscape:groupmode="layer" > + id="layer1"> > + <rect > + > style="fill:none;stroke:#000000;stroke-width:5;stroke-dasharray:none;stroke-opacity:0.993514" > + id="rect1-29" > + width="86.528511" > + height="86.528511" > + x="31.773041" > + y="184.51314" /> > + <rect > + > style="fill:none;stroke:#000000;stroke-width:5;stroke-dasharray:none;stroke-opacity:0.993514" > + id="rect1-7" > + width="86.528511" > + height="86.528511" > + x="156.76219" > + y="184.51314" /> > + <rect > + > style="fill:none;stroke:#000000;stroke-width:5;stroke-dasharray:none;stroke-opacity:0.993514" > + id="rect1-1" > + width="86.528511" > + height="86.528511" > + x="281.75137" > + y="184.51314" /> > + <rect > + > style="fill:none;stroke:#000000;stroke-width:5;stroke-dasharray:none;stroke-opacity:0.993514" > + id="rect1-29-4" > + width="86.528511" > + height="86.528511" > + x="31.585648" > + y="28.92532" /> > + <rect > + > style="fill:none;stroke:#000000;stroke-width:5;stroke-dasharray:none;stroke-opacity:0.993514" > + id="rect1-7-9" > + width="86.528511" > + height="86.528511" > + x="156.70937" > + y="28.958332" /> > + <rect > + > style="fill:none;stroke:#000000;stroke-width:5;stroke-dasharray:none;stroke-opacity:0.993514" > + id="rect1-1-1" > + width="86.528511" > + height="86.528511" > + x="281.69836" > + y="28.958332" /> > + <text xml:space="preserve" > + transform="matrix(0.31208788,0,0,0.50645607,-61.783649,-68.894759)" > + id="text17" > + > style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.6912px;font-family:'DejaVu > + Serif';-inkscape-font-specification:'DejaVu > + > Serif';text-align:start;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect17);display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.993514"><tspan > + x="324.82812" y="176.5471" id="tspan3"> </tspan><tspan > + x="324.82812" y="238.6611" id="tspan4"> </tspan><tspan > + x="324.82812" y="300.77509" id="tspan5">Rumpnet</tspan></text> > + <text > + xml:space="preserve" > + transform="matrix(0.31208788,0,0,0.50645607,193.66669,-68.52822)" > + id="text17-28" > + > style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.6912px;font-family:'DejaVu > Serif';-inkscape-font-specification:'DejaVu > Serif';text-align:start;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect17-2);display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.993514"><tspan > + x="324.82812" > + y="176.5471" > + id="tspan6"> > +</tspan><tspan > + x="324.82812" > + y="238.6611" > + id="tspan7"> > +</tspan><tspan > + x="324.82812" > + y="300.77509" > + id="tspan8">Rumpfs</tspan></text> > + <text > + xml:space="preserve" > + transform="matrix(0.31208788,0,0,0.50645607,59.462815,-68.536953)" > + id="text17-2" > + > style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:49.6912px;font-family:'DejaVu > Serif';-inkscape-font-specification:'DejaVu > Serif';text-align:start;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect17-4);display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.993514"><tspan > + x="324.82812" > + y="176.5471" > + id="tspan9"> > +</tspan><tspan > + x="324.82812" > + y="238.6611" > + id="tspan10"> > +</tspan><tspan > + x="324.82812" > + y="300.77509" > + id="tspan11">Rumpdisk</tspan></text> > + <text > + xml:space="preserve" > + transform="matrix(0.26458333,0,0,0.26458333,-49.096535,0)" > + id="text18" > + > style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:74.6667px;font-family:'DejaVu > Serif';-inkscape-font-specification:'DejaVu > Serif';text-align:start;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect18);display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.993514"><tspan > + x="322.61719" > + y="795.26566" > + id="tspan12"> Rump > +</tspan><tspan > + x="322.61719" > + y="888.59903" > + id="tspan13">process > +</tspan><tspan > + x="322.61719" > + y="981.9324" > + id="tspan14"> 1</tspan></text> > + <text > + xml:space="preserve" > + transform="matrix(0.26458333,0,0,0.26458333,76.170135,0.1468507)" > + id="text18-2" > + > style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:74.6667px;font-family:'DejaVu > Serif';-inkscape-font-specification:'DejaVu > Serif';text-align:start;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect18-1);display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.993514"><tspan > + x="322.61719" > + y="795.26566" > + id="tspan15"> Rump > +</tspan><tspan > + x="322.61719" > + y="888.59903" > + id="tspan16">process > +</tspan><tspan > + x="322.61719" > + y="981.9324" > + id="tspan17"> 2</tspan></text> > + <text > + xml:space="preserve" > + transform="matrix(0.26458333,0,0,0.26458333,200.12306,-0.98854577)" > + id="text18-5" > + > style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:74.6667px;font-family:'DejaVu > Serif';-inkscape-font-specification:'DejaVu > Serif';text-align:start;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect18-3);display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.993514"><tspan > + x="322.61719" > + y="795.26566" > + id="tspan18"> Rump > +</tspan><tspan > + x="322.61719" > + y="888.59903" > + id="tspan19">process > +</tspan><tspan > + x="322.61719" > + y="981.9324" > + id="tspan20"> 3</tspan></text> > + <path > + > style="fill:#000000;stroke:#000000;stroke-width:3.64709;stroke-dasharray:none;stroke-opacity:0.993514;marker-start:url(#ArrowTriangleStylized);marker-end:url(#ArrowTriangleStylized)" > + d="m 73.680405,138.17955 v 23.64089" > + id="path18" /> > + <path > + > style="fill:#000000;stroke:#000000;stroke-width:3.64709;stroke-dasharray:none;stroke-opacity:0.993514;marker-start:url(#ArrowTriangleStylized-5);marker-end:url(#ArrowTriangleStylized-5)" > + d="m 200.90346,138.17955 v 23.64089" > + id="path18-3" /> > + <path > + > style="fill:#000000;stroke:#000000;stroke-width:3.64709;stroke-dasharray:none;stroke-opacity:0.993514;marker-start:url(#ArrowTriangleStylized-6);marker-end:url(#ArrowTriangleStylized-6)" > + d="m 324.37704,138.17955 v 23.64089" > + id="path18-2" /> > + </g> > +</svg> > -- > 2.53.0 >
