Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!ut-sally!husc6!cmcl2!philabs!micomvax!musocs!mcgill-vision!mouse From: mouse@mcgill-vision.UUCP (der Mouse) Newsgroups: comp.unix.questions Subject: Re: dsb unix vs. dec's vms Message-ID: <786@mcgill-vision.UUCP> Date: Sun, 31-May-87 03:06:58 EDT Article-I.D.: mcgill-v.786 Posted: Sun May 31 03:06:58 1987 Date-Received: Thu, 11-Jun-87 02:55:36 EDT References: <5828@shemp.UCLA.EDU> <34ab0e42.8be4@apollo.uucp> <667@bsu-cs.UUCP> Organization: McGill University, Montreal Lines: 36 >> Why can't anybody in DEC write something like C-Shell? They have. (But it runs under Ultrix.... :-) Really, though, there *is* a UNIX-like shell for VMS. Don't ask me anything more about it though, I'm sure your local DEC salescritter will be glad to tell you all about it. > [can't be done, here's why] > VAX/VMS is extremely inefficient at creating new processes. When the > VMS command interpreter executes a user program, it does not create a > new process, but simply does the equivalent of a UNIX exec() system > call. Thus the current invocation of the command interpreter > effectively dies and is replaced by the user program. (How it > regains control after the user program terminates is a long, long > story that I don't fully understand.) The CLI doesn't die. Memory on a VAX is partitioned into four regions, according to the top two bits of the virtual address: 0x00000000 - 0x3fffffff P0 space 0x40000000 - 0x7fffffff P1 space 0x80000000 - 0xbfffffff System space 0xc0000000 - 0xffffffff Reserved space The first two are per-process (a context switch switches them); all processes share the same system space (though for a normal operating system, a normal user program can't access much, if any, of it). Under VMS, the CLI lives in P1 space. When a user program is run, it is run in P0 space; it uses P1 space only for the stack. The CLI is careful to set the stack up well below the memory used by the CLI itself. Thus, the CLI is still around when the user program exits. It has to be - how do you imagine DCL keeps symbols around? der Mouse (mouse@mcgill-vision.uucp)