Path: utzoo!mnetor!uunet!mcvax!ukc!its63b!simon From: simon@its63b.ed.ac.uk (ECSC68 S Brown CS) Newsgroups: comp.os.misc Subject: Re: OS features Message-ID: <875@its63b.ed.ac.uk> Date: 11 Jan 88 00:07:27 GMT References: <1971@cup.portal.com> <1169@nmtsun.nmt.edu> <170@imagine.PAWL.RPI.EDU> <174@imagine.PAWL.RPI.EDU> Reply-To: simon@lfcs.ed.ac.uk (Simon Brown) Organization: LFCS, University of Edinburgh Lines: 78 In article <174@imagine.PAWL.RPI.EDU> userft4z%rpitsmts@itsgw.rpi.edu writes: > >Yup, the Stratus command line form stuff is really nice, but i dont think its >inherently part of the operating system. I have worked out two ways to >implement it in unix, one in the executables, which is nice because it would >help to document the code and options, and one which would run in the shell >and would use a separate file describing the options. [silly mode on...] Or the third way - use the manuals as they stand, and use an Incredibly Clever Program to consult them to find out what you want. For example, if I want to find out what a particular option to a command does, the ICP looks in the manual to find out what it does, and prints out a little paragraph descibing it. Or I could get it to print out a short summary of all possible options, or I could get it to tell me what's wrong with what I've done (when using something complex like awk or sed on a command-line, for instance). Just like "asking an expert"! Also, since the ICP is just a program, it could be used by any other program to do this sort of thing - not just the shell. So, you get automatic help for any program you like by just hooking in a few ICP calls. It could even be called *automatically* before actually giving your input to its target program, to do sanity-checking, so you could fix it easily without having to type very much at all: $ awk "complex-and-difficult-to-understand-expressions" < file --ICP: Oops, that's not going to work, you know, Simon! According to the "awk" manual: {desciption of why what I said was wrong} I suggest changing it to {something-else} Which of the following would you like to do? a) make the change I suggested b) edit the expression yourself (with $EDITOR) c) give up --? Or whatever kind of sickly user-smarmy interface you prefer to use.... :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) [...silly mode off] > >The important point here is not what the command processor does or doesnt >do, or what language is used by the shell, or what spiffy features you >can get at, but what parts of this are inherently part of the operating >system. Things like the name structure for the filesystem, the >way that files are built and accessed, the way that processes are handled... >That is the essential part of the operating system, not the command language >or neat features like forms for entering program options. However, there's no reason why such things shouldn't be part of the operating system (or, more usefully, *appear* to be so). That's why the Logical-Names feature of VMS is such a big win - they're not restricted just to the command interpreter and those few other programs which happen to know about them, but are available anywhere (unlike "environment variables" in Unix). Something analagous to Streams, allowing user-definable interfaces to be installed on top of the bare system access-points (not system-calls; I'm thinking more of things like namei()) would be incredibly useful. I want to be able to use logical variables whenever I use filenames?- easy; I just push a namei-module that recognizes such things, then all processes I create will automatically be able to use them. In this way, all the junk that's crept into the shells can be taken out and re-implemented in a uniform way. --Simon -- -------------------------------------------------- | Simon Brown | | Laboratory for Foundations of Computer Science | | Department of Computer Science | | University of Edinburgh, Scotland, UK. | -------------------------------------------------- UUCP: uunet!mcvax!ukc!lfcs!simon ARPA: simon%lfcs.ed@nss.cs.ucl.ac.uk "Life's like that, you know" JANET: simon@uk.ac.ed.lfcs