sys/kern/kern_fork.c
$B$h$j(B
    128 /*
    129  * New vfork(2) system call for NetBSD, which implements original 3BSD vfork(2)
    130  * semantics.  Address space is shared, and parent is blocked until child exit.
    131  */
    132 /*ARGSUSED*/
    133 int
    134 sys___vfork14(struct proc *p, void *v, register_t *retval)
    135 {
    136
    137         return (fork1(p, FORK_PPWAIT|FORK_SHAREVM, SIGCHLD, NULL, 0,
    138             NULL, NULL, retval, NULL));
    139 }

$BF1$8$/(B
    197         /*
    198          * Although process entries are dynamically created, we still keep
    199          * a global limit on the maximum number we will create.  Don't allow
    200          * a nonprivileged user to use the last process; don't let root
    201          * exceed the limit. The variable nprocs is the current number of
    202          * processes, maxproc is the limit.
    203          */
    204         uid = p1->p_cred->p_ruid;
    205         if (__predict_false((nprocs >= maxproc - 1 && uid != 0) ||
    206                             nprocs >= maxproc)) {
    207                 tablefull("proc", "increase kern.maxproc or NPROC");
    208                 return (EAGAIN);
    209         }
