Or CreateProcess(), which has a lot to do with microsoft.
You can use the posix_spawn function in glibc, which uses a vfork or clone syscall just like on Linux.
https://mobile.twitter.com/RichFelker/status/602313979894038...
"Rich Felker, May 24, 2015: Some interesting preliminary timing of @musllibc 's posix_spawn vs fork+exec shows it ~25x faster for large parent processes. (~360us vs 9ms). #glibc has a vfork-based posix_spawn but it's only usable for trivial cases; others use fork. @musllibc posix_spawn always uses CLONE_VM. This also means @musllibc posix_spawn will fill the fork gap on NOMMU systems cleanly/safely (unlike vfork) once we get NOMMU working."
Also evilotto's post here:
https://news.ycombinator.com/item?id=19622477
"a 100mb process generally takes >2ms to fork, while a 1mb or less process takes 70us"
I think it's well-known that Windows NT took a lot of ideas from VMS.
https://en.wikipedia.org/wiki/Dave_Cutler https://docs.microsoft.com/en-us/windows/desktop/api/process... https://www.itec.suny.edu/scsys/vms/OVMSDOC073/v73/5932/5932... http://www.itec.suny.edu/scsys/vms/OVMSDOC073/v73/5841/5841p...
I don't think we should ever forget how MS behaved through the mid 2000s. But we don't live in that world anymore, they aren't (capable of being) that company anymore, and I think we're at a point where dismissing research because of a connection to MS is not protecting anyone from anything.
Has the old theory that "Windows NT" aka "WNT" = "VMS + 1" ever been proved or disproved?
(https://americanhistory.si.edu/collections/search/object/nma... the Smithsonian has early design docs with the original name on the spine).
While the article points out that the NT kernel natively supports fork, it certainly isn't arguing for any extension of the call.
So all we're left with is "extinguish", which this article certainly does. And it is persuasive. I will look at posix_spawn() for my own code in the future.