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
* 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.
