It doesn’t launch the new binary at all. When the current process wants to create a new process, instead of doing fork+exec (which launches the new binary and wreaks havoc because versions now don’t match), it simply tells the ForkServer (a different process running the old binary) to fork (split) itself.
Chromium also does this; they call their equivalent to ForkServer the zygote process and this article explains it really well.
It doesn’t launch the new binary at all. When the current process wants to create a new process, instead of doing fork+exec (which launches the new binary and wreaks havoc because versions now don’t match), it simply tells the ForkServer (a different process running the old binary) to fork (split) itself.
Chromium also does this; they call their equivalent to ForkServer the zygote process and this article explains it really well.
Thank you, I feel smarter (no)!