>>> What's clean about importing the VMS process model to Unix? >> That's hardly the VMS process model - or at least it wasn't back in >> the '80s when I used VMS. In particular, in the VMS paradigm, the >> CLI (as close as VMS gets to the shell) and the program being run >> run in the same process. > Well, the process model as such will not change just because another > system call is introduced in Unix.
No, of course not. That's why I think talking about "importing the VMS process model" is irrelevant - that's not what's happening. > Also, the CLI is not really related to the process model either. Well, it is in that the CLI and the program being run run in the same process, which means that process is very long-lived. Starting new processes under VMS is - well, was - a very heavyweight operation, far more costly than fork() under Unix. The paradigm was, a process was created on login and it lived until logout; that the CLI inhabits the same process as programs you run is relevant only in that it eliminates one of the principal reasons Unix needs lots of processes. > However, yes, this system call looks like it comes very close to how > tasks are run under VMS. Even down to the name. LIB$SPAWN, I think it was. But I don't know about "very close"; aside from relatively trivial things, like file descriptors having no particularly close analog, the real problem is that LIB$SPAWN is not how most things are - were - run under VMS. Rather, everything runs in the same process, with each program you run replacing the prvious one. Additional processes are necessary only if you want to run something detached, which is not common. Or at least, that's how it was. With POSIX's dominance, it would not surprise me if VMS had tried to jump on the bandwagon and support the Unix paradigm at least to the extent necessary to implement many of the POSIX interfaces. You've probably used more recent VMS than I have; has this happened? > I won't go into the pros and cons of different ways of starting a new > process to run something. And there we are: under VMS, you don't - well, didn't, back in the '80s when I used it - start a new process to run something. You ran it in the same process you ran everything else in. /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mo...@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B