Path: utzoo!attcan!uunet!lll-winken!ncis.llnl.gov!ncis!helios.ee.lbl.gov!pasteur!ames!oliveb!tymix!antares!jms From: jms@antares.UUCP (Joe Smith) Newsgroups: comp.arch Subject: Re: Shells everywhere Summary: TOPS-10 has alternate contexts Keywords: Release 7.03 Message-ID: <350@antares.UUCP> Date: 18 Jan 89 05:40:57 GMT References: <28200249@mcdurb> <451@babbage.acc.virginia.edu> <1951@scolex> <1121@raspail.UUCP> <2618@ficc.uu.net> <5657@cbmvax.UUCP> <10847@tekecs.TEK.COM> Reply-To: jms@antares.UUCP (Joe Smith) Organization: Tymnet QSATS, San Jose CA Lines: 51 In article <10847@tekecs.TEK.COM> andrew@frip.gwd.tek.com (Andrew Klossner) writes: >A shell requires that the system supply fork() and exec(), or perhaps >start_task() (fork and exec combined) system services, or something >analogous and reasonably efficient. Lots of "usable computers" don't >have these. Two examples that come to mind are the original PDP-10 >running TOPS-10, and IBM CMS under VM/370. > [deleted] >write a shell for it by slipping a few tentacles into the (unprotected) >kernel. This wouldn't work under TOPS-10, because there's no way for a >shell coexisting with a user task to get control when the task exits. > -=- Andrew Klossner (uunet!tektronix!hammer!frip!andrew) [UUCP] Your example is referring to how TOPS-10 used to work. Release 7.03 introduced alternate contexts. From the command level, you can type Control-C to stop execution, type PUSH to get an alternate context, do a bunch of stuff, type POP to get back to the original context, and finally type CONTINUE. Some commands (such as HELP) are defined as auto-push, so they do not wipe out your "core image". From the system call level, a program can execute a CTX. uuo which will run a program in another context and report back the ending status. A similar feature exists in the OS that Tymshare created for their PDP-10's. The frame-run option to the FRMOP uuo creates a child frame, runs a program, and reports ending status. ______________________________________________________________ There is one feature of TOPS-10 that I have yet to see duplicated. That is the ability to scan up the directory heirarchy automatically when a file is openned for reading and does not exist in the current directory. For example: I have the sources to TOPS-10 in [10,11,TOPS10,703]*.MAC and my default directory is [10,11,TOPS10,703,TEST] with the /SCAN bit set. If I type ".COPY COMCON.MAC=COMCON.MAC" and [10,11,TOPS10,703,TEST]COMCON.MAC does not exist, the OS will find the file in [10,11,TOPS10,703]COMCON.MAC on the LOOKUP and PIP will duplicate it in the default directory. Editing this file will modify only the copy in the TEST directory, leaving the original alone. When it comes time to assemble and load the monitor, the linker will use the modified modules from the TEST directory and automatically find the unmodified modules in the directory above it. With TOPS-10 it is easy to tell when to stop scanning up the directory tree; it stops when it comes UFD (User File Directory). I could see where an OS like UNIX might have a problem in determining where to stop the scan (so as to not go all the way up to the root). -- Joe Smith (408)922-6220 | JMS@antares.Tymnet.COM[131.146.3.1] or jms@opus McDonnell Douglas FSCO | UUCP: {ames|pyramid}oliveb!tymix!antares!jms PO Box 49019, MS-D21 | PDP-10: JMS@F74.Tymnet CA license plate: "POPJ P," San Jose, CA 95161-9019 | (this line reserved for my Amiga 2000)