|
|
Log in / Subscribe / Register

More multiplexing, why?

More multiplexing, why?

Posted Aug 5, 2026 15:49 UTC (Wed) by kleptog (subscriber, #1183)
In reply to: More multiplexing, why? by k3ninho
Parent article: The beginning of a process-builder API

I don't even think you need something as sophisticated as io_uring. You could make a syscall that spawned an empty process with a few parameters:

* envp
* argv
* location+length of statically linked binary (program loader), or filename/file descriptor perhaps
* location+length of data segment of instructions
* flags (ofcourse)

Then the program loader could interpret the information in the data segment as a list of commands how to configure the new process. It could be passed data the same way the command are structured in io_uring, but it could be anything. You could make a special shell-like language specifically to configure new processes. It would still inherit a lot of state from the parent but no memory.

Like:

mapfd 3 1
close_range 3-
signal 15 clear

... etc...

Afterward the process would simply execve the actual target program. This requires only a single syscall to create an empty program with some data passed in. It's basically posix_spawn, but moving all the extra structs into a separate memory block to be processed by a userspace program. I think setuid/setcap are the only things that are not obvious.


to post comments


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds