Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"every other system has a feature except us, and we are not going to add it (because reasons) even if it's very widely used"

also:

> When a fork syscall is made on WSL, lxss.sys does some of the initial work to prepare for copying the process. It then calls internal NT APIs to create the process with the correct semantics and create a thread in the process with an identical register context. Finally, it does some additional work to complete copying the process and resumes the new process so it can begin executing.

https://blogs.msdn.microsoft.com/wsl/2016/06/08/wsl-system-c...



They must have considered it many times (not least when making the partial posix support for NT) but felt that supporting it wouldn’t help deprecating it either.

AFAIK it’s only unix/Linux (posix) OSes that implement fork. Perhaps that’s what you meant by “every other system”, ie unix + clones/derivatives?


Also DRI's FlexOS 2.2 had it, it was not a unix clone per-se.

The COMMAND SVC had/has 4 variants:

- Execute program (akin to posix_spawn)

- Chain program (akin to posix_spawn, and parent exit)

- Execute subprocess (start a thread, one supplies code + stack address)

- Execute fork process (ala fork, but one supplies code + stack address like with 'subprocess' above)

Originally it only had the first two forms, 2.1 added the subprocess form, 2.2 added the fork form.

It didn't have a direct equivalent to exec(), but did have an OVERLAY SVC which loaded fresh code in to the process, and I expect that could be used to make something like exec(). Not that I ever tried, given there was no real need for it.

The other way to create an exec() like behaviour would have been with the CONTROL SVC, akin to ptrace(), but that would have been painful to do.


VAX/VMS implement "vfork()" which is an implementation of the most common use-cases of fork.

VAX and VMS are not POSIX or UNIX-like.


VAX is a hardware architecture. I'm not one to nitpick, but differentiating between VAX and VMS when VMS ran on the VAX is confusing.


On their POSIX compatibility layer.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: