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
>

Reply via email to