tut@sun.uucp (Bill Tuthill) (02/25/86)
Let's not lose perspective by emphasizing differences between 4 BSD and System V. The two UNIX variants are at least 95% similar. It's not overly difficult to write software that will run on both (the more complicated the software, the harder it is, though). What's really good about UNIX was implemented by Thompson and Ritchie in the early days, and described in the famous CACM paper. The good stuff hasn't changed substantially since then. Just think of all the things that work on both 4.2 and SV: | > < cc, to name just a few. Adherents of 4 BSD think of themselves as rebels fighting evil Darth Vader and the Death Star, but in the real world, the distinction between good and evil isn't as clear as in the movies. Some people I know at a prestigious west-coast university just finished implementing alternatives to "cut" and "paste"; had they been familiar with System V, this wouldn't have been necessary. I can't help but form similar opinions about AT&T's networking efforts. I regularly use both 4 BSD and System V, and find the transition even less difficult than driving someone else's car. The main thing that bothers me about System V is the lack of word erase (^W) in the tty driver. It's like driving a car with no windshield washer. Others no doubt have different pet peeves. Bill Tuthill
scott@cstvax.UUCP (Scott Larnach) (02/27/86)
The one and only real thing which bugs me about system V is the total lack of job control. e.g. in the mail program and having to check something out .. fancy being faced with either writing your mail out (and later having to read it in again), or having to fork up another shell. With a big load up either of these options can be painful. The functionality of ^Z and fg is tremendous! Come on, AT&T, give me job control and I'll be a believer. -- Scott Larnach Janet: scott@uk.ac.ed.cstvax Edinburgh Unix Support Arpa: scott@cstvax.ed.ac.uk Tel: +44 31 667 1081 x2629 Uucp: scott@cstvax.uucp
rees@apollo.uucp (Jim Rees) (03/02/86)
Let's not lose perspective by emphasizing differences between 4 BSD and System V. The two UNIX variants are at least 95% similar. I don't buy it. One of our marketing guys actually counted up the number of programs, library calls, and system calls that are identical in both variants of unix, how many have the same name but do different things (setpgrp, for example), and how many exist in only one variant. I don't remember the exact percentage of those things that are the same in both variants, but it was nowhere near 95%. The most commonly used command on many unix machines is 'ls', and look at how different that is. When was the last time you saw a C program over 500 lines long that would compile and run under both variants with no changes or conditional code? The differences are big enough to be a pain in the neck. I would sure like to see them resolved.
campbell@maynard.UUCP (Larry Campbell) (03/03/86)
> The one and only real thing which bugs me about system V is the > total lack of job control. e.g. in the mail program and having to check > something out .. fancy being faced with either writing your mail > out (and later having to read it in again), or having to fork up > another shell. With a big load up either of these options can be > painful. The functionality of ^Z and fg is tremendous! > > Come on, AT&T, give me job control and I'll be a believer. > -- > Scott Larnach Janet: scott@uk.ac.ed.cstvax > Edinburgh Unix Support Arpa: scott@cstvax.ed.ac.uk > Tel: +44 31 667 1081 x2629 Uucp: scott@cstvax.uucp Job control is pretty neat, if all you have is a dumb terminal. But an even better solution is virtual consoles, or windows. I have perhaps one of the most modest Unix configurations imaginable: a DEC Rainbow personal computer running VENIX (a V7 port). To this I have added virtual consoles, so rather than typing ctrl-Z and messing up my terminal screen and having my mail session scroll off the page while I check something out -- I just touch a function key and a different console appears. I can do whatever I like, then touch another key to zap me back to the (undisturbed) mail job. This happens at memory speeds -- i.e., instantaneously -- and required changes only to the console driver, not to the tty driver or kernel. Virtual consoles are a standard feature of VENIX when running on IBM gear, and also of XENIX I believe. I only had to roll my own because VenturCom doesn't provide it for Rainbows. I've never used a Sun, but I'm sure their windows are even nicer. The nice part about virtual consoles or windows is that they don't require special Berkeley-esque signals and terminal drivers and whatnot. Programs are completely unaware anything is going on; you don't have to hack your screen editor to repaint the screen when you reenter it. -- Larry Campbell The Boston Software Works, Inc. ARPA: maynard.UUCP:campbell@harvard.ARPA 120 Fulton Street UUCP: {harvard,cbosgd}!wjh12!maynard!campbell Boston MA 02109
guy@sun.uucp (Guy Harris) (03/03/86)
> The one and only real thing which bugs me about system V is the > total lack of job control. e.g. in the mail program and having to check > something out .. fancy being faced with either writing your mail > out (and later having to read it in again), or having to fork up > another shell. With a big load up either of these options can be > painful. The functionality of ^Z and fg is tremendous! > > Come on, AT&T, give me job control and I'll be a believer. To be fair, they do have "shell layers" which sort of gives you the same functionality (although, since it does not permit you to stop processes nor permit you to move jobs originally started in the background back to the foreground, it should not be called "job control"). It does not, however, understand that when a process gets moved to the background it might want to clean up whatever it's done to the terminal (painted the screen, put they keyboard in a funny mode, put it into graphics mode where putting "text" to the terminal really draws vectors, etc.), and might want to re-do same when it gets moved to the foreground again. As such, it isn't complete. (Please save flames about how windowing is the only right way to do things for those who can afford windowing systems; those of us with such systems can generally afford them, but not everybody can.) -- Guy Harris {ihnp4, decvax, seismo, decwrl, ...}!sun!guy guy@sun.arpa (yes, really)
chris@umcp-cs.UUCP (Chris Torek) (03/03/86)
In article <257@maynard.UUCP> campbell@maynard.UUCP (Larry Campbell) writes: >Job control is pretty neat, if all you have is a dumb terminal. >But an even better solution is virtual consoles, or windows. ... and goes on to describe how wonderful it is. It is nice indeed: I have a Sun here with windows. But then, it is also nice to have job control so that I can do similar things from home. (Or could, if I had a phone....) `Get better equipment' is, to many, an unacceptable answer, alas. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1415) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@mimsy.umd.edu
ggs@ulysses.UUCP (Griff Smith) (03/03/86)
> > Job control is pretty neat, if all you have is a dumb terminal. But an > even better solution is virtual consoles, or windows. ... ... > > The nice part about virtual consoles or windows is that they don't > require special Berkeley-esque signals and terminal drivers and whatnot. > Programs are completely unaware anything is going on; you don't have > to hack your screen editor to repaint the screen when you reenter it. > -- > Larry Campbell The Boston Software Works, Inc. > ARPA: maynard.UUCP:campbell@harvard.ARPA 120 Fulton Street > UUCP: {harvard,cbosgd}!wjh12!maynard!campbell Boston MA 02109 Sigh. Just what we need to convince AT&T that their (our) imitation of job control is all we need, or that when windows come it will be completely unnecessary. I have a 5620, a nice 8.5 x 11 bit-mapped display with mouse and windows; I still use job control once in a while. For one thing, it's easier to move something to the background instead of drawing a new window. It's also nice to be able to stop things some times. If I have just gotten part way into a "make" and I remember that I missed something, I just stop the "make" while it fix the problem. I also like having the option of stopping a suspected run-away process instead of blowing it out of the water. Would you drive a car without brakes? -- Griff Smith AT&T (Bell Laboratories), Murray Hill Phone: (201) 582-7736 Internet: ggs@ulysses.uucp UUCP: ulysses!ggs ( {allegra|ihnp4}!ulysses!ggs )
andrew@amdahl.UUCP (Andrew Sharpe) (03/03/86)
In article <67@cstvax.UUCP>, scott@cstvax.UUCP (Scott Larnach) writes: > > The one and only real thing which bugs me about system V is the > total lack of job control. > > Come on, AT&T, give me job control and I'll be a believer. Uhh, excuse me, but what about shell layers ( shl ) ? It does not give you job control, per se, but it does allow you to break out of a foreground process, to 'do something else'. -- Andrew Sharpe ...!{ihnp4,cbosgd,hplabs}!amdahl!andrew ***************************************** ___________ * The views expressed above are solely * ,/| _____ | * my cat's opinions, and do not reflect * | | |___ /| | * the views of the employees, nor the * | | | | | | * management, of Amdahl Corporation. * | | | | | | * * | | |__| | | * * | | / | | ,| * * | ~~~~~ |/ ***************************************** ~~~~~~~~~~~
gemini@homxb.UUCP (Rick Richardson) (03/04/86)
> > Job control is pretty neat, if all you have is a dumb terminal. But an > even better solution is virtual consoles, or windows. ... ... > > The nice part about virtual consoles or windows is that they don't > require special Berkeley-esque signals and terminal drivers and whatnot. > Programs are completely unaware anything is going on; you don't have > to hack your screen editor to repaint the screen when you reenter it. > -- > Larry Campbell The Boston Software Works, Inc. Let me point out the "poor man's window system" which comes with VENIX SVR2. They used a slight hack to the console driver on an IBM PC; it allows four FULL SCREEN login sessions on a CGA, plus one more if you also have the monochrome adapter attached. Potentially, an EGA adapter could have eight such login sessions. You switch sessions by pressing Alt-1 through Alt-4 for the CGA, and Alt-5 for the monochrome. Now, for the way I typically use UNIX as a programmer, I submit that this approach provides the most functionality for the least cost. 1) I can log in as ANY user, on ANY screen (except root can only login on screen 1). 2) I always have a full 25 x 80 to work with. 3) I can instantly switch screens. No delay while screen is repainted. 4) I don't have to pay for expensive large screens, either in dollars or in space. 5) I can still do graphics, but if I do, I lose the current displays on other screens. Not a huge loss, since I rarely use graphics. A typical usage for me might find: screen 1 root Just in case I need a kill, or to install something. screen 2 me Using editor or compiling screen 3 me "Hack" ready to play during long compiles screen 4 me Terminal emulator running to host. (yup, lots of times I download software to the PC/AT to compile it there during development - it compiles MUCH faster than the (unamed) super-mini compiles it) What am I missing? To my mind, nothing, really. I felt some amount of mouse envy a year ago. So I got one, wrote a mouse driver with pop up menus, and tried using it with the editor, spreadsheet, shell, hack, etc. Guess what - cobwebs all over the poor little thing now. I found it was only usefull with "PAINT" programs. If I could change anything, I'd go for a display with (more) lines of 132 columns. It seems to me that the memory (screen and program) necessary for a real window system is being poorly utilized for a great percentage of us. Even if the display hardware doesn't support multiple pages, the kernel could simulate this by keeping the pages in kernel memory and just block moving them out to the screen on a session change. My point is that while huge displays and window systems are fun, for most of us they are an unecessary waste of (money, CPU cycles, memory). One page on one screen wasn't enough, to be sure, but the "in vogue" solution of large displays and massive window systems is overkill. Rick Richardson, PC Research, Inc. (201) 922-1134 ..!ihnp4!houxm!castor!{rer,pcrat!rer} <--Replies to here, not to homxb!!!
geoff@desint.UUCP (Geoff Kuenning) (03/04/86)
In article <1199@ulysses.UUCP> ggs@ulysses.UUCP (Griff Smith) writes: > It's also nice to be able to stop things some times... > I also like having the > option of stopping a suspected run-away process instead of blowing it > out of the water. Would you drive a car without brakes? The reason Dennis Ritchie qualifies as a genius is because when we say "it sure would be nice to..." to him, he responds "yup, sure would" instead of "hey, yeah, I'll go hack it in." DISCLAIMER: I've never met DMR; I'm just making a point here. Read his paper on streams to hear in his own words how incredibly hard it is to come up with a simple unifying concept instead of a bunch of hacks like BSD. -- Geoff Kuenning {hplabs,ihnp4}!trwrb!desint!geoff
scott@cstvax.UUCP (Scott Larnach) (03/05/86)
campbell@maynard.UUCP <257@maynard.UUCP>: | Job control is pretty neat, if all you have is a dumb terminal. That's the problem. | I've never used a Sun, but I'm sure their windows are even nicer. They are nice. But we can't afford one (or other bit mapped terminal) for everybody. And although I've never used shell layers as in System V, I gather from those who do that they are oriented towards bit mapped terminals, and that on an ascii terminal it is easy to lose track of where you are. For such as myself, and I suspect a large proportion (at least) of us are in the same position, job control seems the most practical way of doing things. -- Scott Larnach Janet: scott@uk.ac.ed.cstvax Edinburgh Unix Support Arpa: scott@cstvax.ed.ac.uk Tel: +44 31 667 1081 x2629 Uucp: scott@cstvax.uucp
henry@utzoo.UUCP (Henry Spencer) (03/05/86)
> It's also nice to be able to stop things some times...
The ability to stop processes is quite independent of all the other goo
in job control, in concept at least. Adding something like this to SysV
would probably be a five-minute hack (given sources!). You need to have
another context around before you can actually do anything to stopped
processes, but a window system is just right for that.
--
Henry Spencer @ U of Toronto Zoology
{allegra,ihnp4,linus,decvax}!utzoo!henry
campbell@maynard.UUCP (Larry Campbell) (03/06/86)
> It's also nice to be able to stop things some times. If I have just > gotten part way into a "make" and I remember that I missed something, I > just stop the "make" while it fix the problem. I also like having the > option of stopping a suspected run-away process instead of blowing it > out of the water. Would you drive a car without brakes? > -- > Griff Smith AT&T (Bell Laboratories), Murray Hill > Phone: (201) 582-7736 > Internet: ggs@ulysses.uucp > UUCP: ulysses!ggs ( {allegra|ihnp4}!ulysses!ggs ) It is nice to be able to pause things sometimes. I think this is a VENIX enhancement, but VENIX has suspend and resume commands (and the corresponding system calls) to pause and then resume a process. Yes, it is a bit more of a pain to go to another window, run ps, then issue a suspend command. I'd like to have job control. But given a choice between job control and windows, I'll take windows. -- Larry Campbell The Boston Software Works, Inc. ARPA: maynard.UUCP:campbell@harvard.ARPA 120 Fulton Street UUCP: {harvard,cbosgd}!wjh12!maynard!campbell Boston MA 02109
campbell@maynard.UUCP (Larry Campbell) (03/06/86)
> Let me point out the "poor man's window system" which comes with VENIX SVR2. > They used a slight hack to the console driver on an IBM PC; it allows four > FULL SCREEN login sessions on a CGA, plus one more if you also have the > monochrome adapter attached. Potentially, an EGA adapter could have > eight such login sessions. You switch sessions by pressing Alt-1 through > Alt-4 for the CGA, and Alt-5 for the monochrome. Pretty neat, but I wonder why they didn't do it for the monochrome display? I hate the CGA; I think its text display is completely unacceptable for day-in day-out use; and the EGA is expensive. I understand the technical difference between what it takes to do this for the CGA and what is required for the monochrome adapter (see below); doing it for the mono adapter just isn't that hard. > A typical usage for me might find: > screen 1 root Just in case I need a kill, or to > install something. > screen 2 me Using editor or compiling > screen 3 me "Hack" ready to play during long compiles > screen 4 me Terminal emulator running to host. Almost exactly the way I run (except instead of having a hack screen all ready to go at all times, I have a Jove screen). > It seems to me that the memory (screen and program) necessary for a real > window system is being poorly utilized for a great percentage of us. Even > if the display hardware doesn't support multiple pages, the kernel could > simulate this by keeping the pages in kernel memory and just block moving > them out to the screen on a session change. ... Exactly what my virtual console hack on the Rainbow does (and what could be done to support the IBM mono adapter). > ... My point is that while > huge displays and window systems are fun, for most of us they are > an unecessary waste of (money, CPU cycles, memory). One page on one > screen wasn't enough, to be sure, but the "in vogue" solution of large > displays and massive window systems is overkill. > > Rick Richardson, PC Research, Inc. (201) 922-1134 > ..!ihnp4!houxm!castor!{rer,pcrat!rer} <--Replies to here, not to homxb!!! Yes, indeed. I sure would like a Sun, but I'd rather have four PCs with virtual consoles for four programmers than one Sun they have to share. -- Larry Campbell The Boston Software Works, Inc. ARPA: maynard.UUCP:campbell@harvard.ARPA 120 Fulton Street UUCP: {harvard,cbosgd}!wjh12!maynard!campbell Boston MA 02109
ggs@ulysses.UUCP (Griff Smith) (03/06/86)
> In article <1199@ulysses.UUCP> ggs@ulysses.UUCP (Griff Smith) writes: > > > It's also nice to be able to stop things some times... > > I also like having the > > option of stopping a suspected run-away process instead of blowing it > > out of the water. Would you drive a car without brakes? > > The reason Dennis Ritchie qualifies as a genius is because when we say > "it sure would be nice to..." to him, he responds "yup, sure would" > instead of "hey, yeah, I'll go hack it in." > > DISCLAIMER: I've never met DMR; I'm just making a point here. Read his > paper on streams to hear in his own words how incredibly hard it is to > come up with a simple unifying concept instead of a bunch of hacks like BSD. > -- > > Geoff Kuenning > {hplabs,ihnp4}!trwrb!desint!geoff One comment in my defense: job control works in Eighth edition UNIX (V8). I don't know whether this is an oversight by the system impurity hit squad or a conscious effort to perserve an occasionally useful feature. I still think a tool for stopping processes is valuable; it is not really necessary that it also be usable as a terminal context switcher, but one convenient implementation has that side effect. -- Griff Smith AT&T (Bell Laboratories), Murray Hill Phone: (201) 582-7736 Internet: ggs@ulysses.uucp UUCP: ulysses!ggs ( {allegra|ihnp4}!ulysses!ggs )
rich@rexago1.UUCP (K. Richard Magill) (03/06/86)
In article <2864@amdahl.UUCP> andrew@amdahl.UUCP (Andrew Sharpe) writes: >In article <67@cstvax.UUCP>, scott@cstvax.UUCP (Scott Larnach) writes: >> The one and only real thing which bugs me about system V is the >> total lack of job control. >Uhh, excuse me, but what about shell layers ( shl ) ? It does not >give you job control, per se, but it does allow you to break out >of a foreground process, to 'do something else'. Aside from the fact that sxt requires kernal support that not all SYSV machines have, *something else*, indeed. So long as you have ksh, whose sxt job control crashes machines, running under shl so that you can read a new .*rc file to give you the same? environment you left especially resetting terminal characteristics *AND* you don't really want to background anything *AND* you don't mind a maximum number of processes *AND* you don't mind several processes on your screen at a time (this is most fun when each sxt has different stty params), *T*H*E*N* shl is a fair surrogate for "real" job control. You still can't stop & restart a process. ALSO, shl cannot be started under shl nor can shl be used as a login shell. I put shl in my .profile & use ksh as shell for nearly everything that will take it immediately on a 3b2 and ksh alone on a 7300. Given a choice, I prefer ksh on 4.x. K. Richard Magill
ka@hropus.UUCP (Kenneth Almquist) (03/07/86)
> One comment in my defense: job control works in Eighth edition UNIX > (V8). I don't know whether this is an oversight by the system impurity > hit squad or a conscious effort to preserve an occasionally useful > feature. Hmm. Has V8 cleaned up job control? (For example, start up readnews, read a bunch of articles, stop readnews with ^Z, and drop the phone line. What happens to the readnews? (It should be restarted and sent a hangup signal so it can update your .newsrc file.)) At any rate, I agree with your basic point. If after being given 7 years to think about the problem the best response to Berkeley job control that USDL can come up with is shl, it seems like they had better just install the Berkeley job control code. Kenneth Almquist ihnp4!houxm!hropus!ka (official name) ihnp4!opus!ka (shorter path)
jdb@mordor.UUCP (03/07/86)
If you can't afford a Sun, but you can afford a Macintosh, and you're running BSD UNIX, then you may want to consider my window package for the Mac w/BSD called UW. (Other people are making efforts to port it to the Amiga and Atari ST, but I don't believe those are available yet.) UW is available via anonymous FTP from S1-C.ARPA (the filenames are "uwdist3.1", "uwdist3.2", "uwdist3.3", "uwdist3.4"). It was posted to "net.sources.mac" several months ago, so if you archive the source newsgroups you can get it from there. If all else fails you can mail to me, and we'll work something out (I don't like to send UW across multiple-hop UUCP connections because of its size). To avoid the cost of sending UW across the oceans, two people have graciously agreed to redistribute UW for me. If you are in Europe you should contact Guido van Rossum "mcvax!guido". If you are Australia, please contact Robert Elz (kre@munnari.OZ). -- John Bruner (S-1 Project, Lawrence Livermore National Laboratory) MILNET: jdb@mordor [jdb@s1-c.ARPA] (415) 422-0758 UUCP: ...!ucbvax!dual!mordor!jdb ...!seismo!mordor!jdb
gwyn@brl-smoke.UUCP (03/09/86)
In article <168@desint.UUCP> geoff@desint.UUCP (Geoff Kuenning) writes: >In article <1199@ulysses.UUCP> ggs@ulysses.UUCP (Griff Smith) writes: > >> It's also nice to be able to stop things some times... >> I also like having the >> option of stopping a suspected run-away process instead of blowing it >> out of the water. Would you drive a car without brakes? > >The reason Dennis Ritchie qualifies as a genius is because when we say >"it sure would be nice to..." to him, he responds "yup, sure would" >instead of "hey, yeah, I'll go hack it in." I suspect there are other reasons, but this one is indicative. >DISCLAIMER: I've never met DMR; I'm just making a point here. Read his >paper on streams to hear in his own words how incredibly hard it is to >come up with a simple unifying concept instead of a bunch of hacks like BSD. A relevant observation here is that 8th Edition UNIX does have nice process control support, but it doesn't look at all like Berkeley's "job control" implementation. One wonders whether AT&T was smart enough to pick up /dev/proc etc. for inclusion in SVR3. Once one has the 8th Ed. process control hooks, one can implement terrific software such as the Process Inspector "pi" (also called the "transcendental" debugger, groan). The closest thing we (the public) have to "pi" at present is "dmdebug" (nee "joff"), which works only on DMD (Teletype 5620) downloaded processes. It's pretty spiffy! (Beats the heck out of "dbx" and BSD job control.)
gwyn@brl-smoke.UUCP (03/09/86)
In article <1200@ulysses.UUCP> ggs@ulysses.UUCP (Griff Smith) writes: >One comment in my defense: job control works in Eighth edition UNIX >(V8). I don't know whether this is an oversight by the system impurity >hit squad or a conscious effort to perserve an occasionally useful >feature. I am curious about how this is accomplished; I don't see any SIGSTOP-generating character defined in TTYLD(4) (standard terminal handler line discipline). Perhaps there is an extra module slipped into place in your terminal stream; such a critter could easily catch e.g. ^Z and post a SIGSTOP. Streams make it easy to add features like this; you could even have a "Hazeltine tilde kludge" module..
ken@rochester.UUCP (Ipse dixit) (03/09/86)
In article <168@desint.UUCP> geoff@desint.UUCP (Geoff Kuenning) writes: >The reason Dennis Ritchie qualifies as a genius is because when we say >"it sure would be nice to..." to him, he responds "yup, sure would" >instead of "hey, yeah, I'll go hack it in." Reluctance to introduce new "features", sure, that is important. But I think also it's more hindsight than foresight. You have to be able to see how other people's hacks miss the mark to come up with a simplifying/unifying concept. But it still takes genius. There was a paper on Unix hacker types - innovator, fixer, consolidator, etc. in some past Usenix proceedings. Anyone have the reference? Ken -- UUCP: ..!{allegra,decvax,seismo}!rochester!ken ARPA: ken@rochester.arpa Snail: CS Dept., U. of Roch., NY 14627. Voice: Ken!
boyd@inset.UUCP (Boyd Roberts) (03/10/86)
>campbell@maynard.UUCP <257@maynard.UUCP>: >| Job control is pretty neat, if all you have is a dumb terminal. > Job control is pretty neat, if all you have is a maniac to implement it. The SysV shl is a much better implementation, because it's a "bolt-on". Not, a huge kernel/user level kludge/rewrite (4.N approach). The way to go is to buy a jerq (5620) and somehow run the V8 mux/jim etc. The stuff that comes with SysV is truly revolting, and almost unusable. Invest some time into fixing the SysVile layers mess. The V8 stuff is SOOOO sweet. Boyd Roberts +++ + ..!mcvax!ukc!inset!boyd + boyd@inset.co.uk + boyd@basser.oz + +++ "Isn't that kind of severe?"
ggs@ulysses.UUCP (Griff Smith) (03/10/86)
> In article <1200@ulysses.UUCP> ggs@ulysses.UUCP (Griff Smith) writes: > >One comment in my defense: job control works in Eighth edition UNIX > >(V8). I don't know whether this is an oversight by the system impurity > >hit squad or a conscious effort to perserve an occasionally useful > >feature. > > I am curious about how this is accomplished; I don't see any > SIGSTOP-generating character defined in TTYLD(4) (standard > terminal handler line discipline). Perhaps there is an extra > module slipped into place in your terminal stream; such a > critter could easily catch e.g. ^Z and post a SIGSTOP. Streams > make it easy to add features like this; you could even have a > "Hazeltine tilde kludge" module.. Correct. There is a streams module that implements the BSD "new" line discipline. A V8 user gets access to the ^Z hook by running either csh or ksh, just as in 4.[123]BSD. Ksh just pops the standard line discipline and pushes the new one. A few of the "terminal I/O from/to background" features behave strangely; that doesn't seem to be much of a problem. To be fair, I doubt that many of the "true believers" who use V8 use job control. Most of the ones I see have 5620 bit-mapped terminals and use a stream-based window manager that may not have the right hooks for ^Z. -- Griff Smith AT&T (Bell Laboratories), Murray Hill Phone: (201) 582-7736 Internet: ggs@ulysses.uucp UUCP: ulysses!ggs ( {allegra|ihnp4}!ulysses!ggs )
davidsen@steinmetz.UUCP (Davidsen) (03/11/86)
In article <1307@homxb.UUCP> gemini@homxb.UUCP (Rick Richardson) writes: >> >> Job control is pretty neat, if all you have is a dumb terminal. But an >> even better solution is virtual consoles, or windows. ... ................ deletion ................ > >Let me point out the "poor man's window system" which comes with VENIX SVR2. >They used a slight hack to the console driver on an IBM PC; it allows four >FULL SCREEN login sessions on a CGA, plus one more if you also have the >monochrome adapter attached. Potentially, an EGA adapter could have >eight such login sessions. You switch sessions by pressing Alt-1 through >Alt-4 for the CGA, and Alt-5 for the monochrome. XENIX-286 for the AT (and I believe the XT version as well) offers ten virtual terminals using the same method. A limited number of them will be made active by default, and the user may either make special use of them or change configuration to start all of them for login. Since I don't need ten logins (four are nice, tho), I do some special things when I login to my "personal" id. For taking notes on phone calls and drop-in visitors is start a shell in window 9 which is already running in the correct directory and which has a modified prompt (to remind me where I am). In addition, I have a command which will start an additional shell in window ten if I want it. The advantage to me is that when I log out I don't have to log out in several places. I can still use the other five virtual terminals to login again if I'm doing something unusual. The commands which start the note taker are: (PS1="(note) $ ";cd $HOME/notes;sh -s) </dev/tty09 >/dev/tty09 2>&1 & -- -bill davidsen seismo!rochester!steinmetz!--\ / \ ihnp4! unirot ------------->---> crdos1!davidsen \ / chinet! ---------------------/ (davidsen@ge-crd.ARPA) "It seemed like a good idea at the time..."
isaac@mulga.OZ (Isaac Balbin) (03/14/86)
In article <865@inset.UUCP> boyd@inset.UUCP (Boyd Roberts) writes:
!
!
! Job control is pretty neat, if all you have is a maniac to implement it.
^^^^^^
Come on Mr Roberts. It has long been known that you dislike BSD
systems. I am not here to argue with you on that issue,
but I am here to take issue with you - and anyone else on the net -
on this ridiculous and insulting use of phrase you employ with wanton abandon.
It serves no more purpose than to convice many of us that your articles are
contemptuous and not for serious reading.
Well reasoned and intentioned articles do a lot more to
convince people than inane utterances.
gwyn@brl-smoke.ARPA (Doug Gwyn ) (03/15/86)
In article <865@inset.UUCP> boyd@inset.UUCP (Boyd Roberts) writes: > >The SysV shl is a much better implementation, because it's a "bolt-on". >Not, a huge kernel/user level kludge/rewrite (4.N approach). This isn't quite right. "shl" depends on the addition of an "sxt" pseudo-device driver to the UNIX System V kernel, since otherwise UNIX System V has no multiplexing or pseudoterminals. It also requires the addition of another special "switch" control character. It is true that the changes necessary to add shl/sxt are less extensive and less intrusive than those needed for 4BSD job control. >The way to go is to buy a jerq (5620) and somehow run the V8 mux/jim etc. >The stuff that comes with SysV is truly revolting, and almost unusable. >Invest some time into fixing the SysVile layers mess. The Blit/Jerq/DMD is indeed a nice alternative to job control, but of course it is not quite the same thing. I have both here and have found job control to still be of some (minimal) utility. I would much prefer full 8th Edition UNIX process control, though. Does anybody know for sure whether SVR3 includes this? Software for the Teletype 5620 (DMD) is available from AT&T. They provide it for VAX or various 3B machines, UNIX System V only; there is also a 4.2BSD port distributed by Teletype. At BRL we run the DMD software on a 4.3BSD kernel; it was built under our UNIX System V emulation, essentially unmodified except for layers, which was totally replaced by "mpx" (originally obtained from Teletype, then heavily modified at CWI in the Netherlands). The only thing missing is the hostagent feature, which can't be made to work reasonably with the Berkeley implementation of pseudo-terminals. I have also ported the DMD software to the Gould PowerNode (60x0/90x0) family. This software is available to sites that are properly licensed for it, as an added part of the BRL UNIX System V emulation for 4.2BSD.
lars@myab.UUCP (lars) (03/16/86)
>In article <67@cstvax.UUCP>, scott@cstvax.UUCP (Scott Larnach) writes: >> >> The one and only real thing which bugs me about system V is the >> total lack of job control. >> >> Come on, AT&T, give me job control and I'll be a believer. > >Uhh, excuse me, but what about shell layers ( shl ) ? It does not >give you job control, per se, but it does allow you to break out >of a foreground process, to 'do something else'. We have ported 'csh' to SVR2 using shell layers. Result: A program started with '&' runs in background. If it want to do tty input, it will hang until put in foreground. A background program can be put in foreground with the 'fg' command. A forground program can be stopped with the '^Z' key. Csh will then type 'blocked' and not 'stopped', because only tty io is blocked and the program continues. Typing 'bg' to a 'blocked' will enable output to tty for the blocked program. A maximum of 7 programs can be executed simultaneously. A program cannot catch '^Z'. This implies that 'vi' doesn't redraw its screen. Csh reads 'type ahead' characters back from a blocked sxt and inserts them into the current input line. Otherwise, type ahead wouldn't have worked. Despite these limits, it is much better than 'shl' (which creates one new 'sh' for each "job"). -- ______________________________________________________ Lars Pensjo {decvax,philabs}!mcvax!enea!chalmers!myab!lars
friesen@psivax.UUCP (Stanley Friesen) (03/19/86)
In article <137@myab.UUCP> lars@myab.UUCP (lars) writes: > >A program cannot catch '^Z'. This implies that 'vi' doesn't redraw its >screen. > When this is fixed I will admit that shell layers are a workable substitute for full job control! What good does it do to stop a job if I cannot restart it transparently? -- Sarima (Stanley Friesen) UUCP: {ttidca|ihnp4|sdcrdcf|quad1|nrcvax|bellcore|logico}!psivax!friesen ARPA: ttidca!psivax!friesen@rand-unix.arpa
henry@utzoo.UUCP (Henry Spencer) (03/23/86)
> >A program cannot catch '^Z'. This implies that 'vi' doesn't redraw its > >screen. > > When this is fixed I will admit that shell layers are a > workable substitute for full job control! What good does it do to stop > a job if I cannot restart it transparently? What good does it do to be able to stop and start jobs if every program has to know about it to redraw the screen? Also, what do you do about output from (say) grep, which prints output and terminates rather than sticking around to redraw the screen on request? The fact is, *both* job control and shell layers are brain-damaged. Both do the easy part of multiplexing -- centralized input administration -- without the hard part -- centralized output administration. Programs should not have to redraw the screen themselves, when they have done nothing to mess it up! Job control and shell layers are both cheap plastic imitations of real window systems. -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry
chris@umcp-cs.UUCP (Chris Torek) (03/26/86)
In article <6534@utzoo.UUCP> henry@utzoo.UUCP (Henry Spencer) writes: >The fact is, *both* job control and shell layers are brain-damaged. Both >do the easy part of multiplexing -- centralized input administration -- >without the hard part -- centralized output administration. You should be careful with these ideas, Henry: someone is liable to use them. I know *you* would never actually suggest something like this, but now someone will hack up 4.XBSD to remember what each processes' screen looks like and redraw it when you `fg'! -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1415) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@mimsy.umd.edu
keith@hp-pcd.UUCP (keith) (03/27/86)
> The fact is, *both* job control and shell layers are brain-damaged. Both > do the easy part of multiplexing -- centralized input administration -- > without the hard part -- centralized output administration. Programs should > not have to redraw the screen themselves, when they have done nothing to > mess it up! Job control and shell layers are both cheap plastic imitations > of real window systems. You've touched the root of the problem: the model for running multiple jobs. When I was demo-ing the HP Integral PC last year (its kernel is modified to support windowing), the first question some people would ask is "Does it have Berkeley job control?" My response was "You don't need it!" I had to show them the value of running several programs, each in it's own window. They had adopted a bad model for running multiple jobs. (Maybe this is the effect Dijkstra was talking about in his comment about Basic programmers being permanently brain damaged.) Keith M. Taylor Portable Computer Division Corvallis, Oregon hp-pcd!keith [ps. I've programmed in Basic; you may want to disregard this response!]
nz@wucs.UUCP (03/30/86)
In article <6534@utzoo.UUCP> henry@utzoo.UUCP (Henry Spencer) writes: > > >A program cannot catch '^Z'. This implies that 'vi' doesn't redraw its > > >screen. A program can catch ^Z, by ``signal(SIGTSTP, stop_handler)''. Further, the program can also catch the continue -- which lets it redraw the screen or print a message or change its state or whatever. I have several programs which do both. > > When this is fixed I will admit that shell layers are a > > workable substitute for full job control! What good does it do to stop > > a job if I cannot restart it transparently? You can. > What good does it do to be able to stop and start jobs if every program > has to know about it to redraw the screen? Also, what do you do about > output from (say) grep, which prints output and terminates rather than > sticking around to redraw the screen on request? Since when does EVERY program have to redraw the screen? I stop and start compiles, makes, news-readers, mail, etc. and none of them do screen refreshes. > The fact is, *both* job control and shell layers are brain-damaged. Both > do the easy part of multiplexing -- centralized input administration -- > without the hard part -- centralized output administration. Programs should > not have to redraw the screen themselves, when they have done nothing to > mess it up! Job control and shell layers are both cheap plastic imitations > of real window systems. > -- > Henry Spencer @ U of Toronto Zoology Job control is a helluva lot more than a cheap imitation of a window system. It is a general method of allowing some user control of system features -- time sharing and resource sharing. Remember that ^Z is only a character hook to the rather general SIGTSTP signal! The ability to stop a process is a very nice features that is NOT unique to BSD Unix (TOPS-10 and TOPS-20 had it). Further, I think window systems are just fine, but they require VERY special hardware to give acceptable performance. Job control frees up system resouces by allowing processes to be swapped out. Window systems leave processes lying around, and clutter the system even more with a window managing process! The fact that a job can catch or not catch the SIGCONT as it pleases is a very useful FEATURE! I would be very annoyed if somebody put screen control into the kernel (!) and forces a screen update (expensive at 1200 baud) every time I jumped into and out of a process. Don't clutter this group with off-the-cuff opinions and snorts! Both job control and window systems have their place, and they can even work together. -- ...nz (Neal Ziring at WU ECL - we're here to provide superior computing.) {seismo,ihnp4,cbosgd}!wucs!nz OR nz@wucs.UUCP "You could get an infinite number of wires into this !*$$#!?! junction box, but we usually don't go that far in practice" -- Employee of London Electricity Board, 1959
dpk@mcvax.uucp (Doug Kingston) (03/31/86)
Shell layers is a way to get around not having true windowing. If you have a real windowing system, then you don't need shell layers. As has been mentioned by others, shell layers are deficient in several areas. As for Berkeley job control, this is another matter. As a mechanism for handling multiple jobs simultaneously, it is a poor second to a true windowing system. I know. I use BLIT terminals and SUN-like workstations every day. However, this does not mean I want to give up the ability to STOP and RESTART jobs. By STOP, I mean really stop the job and take it from the RUN queue. This is a very powerful process control facility. This is an orthogonal capability to windowing or layers. The two are complementary. One of my favorite uses for BSD job control is taking core dumps of processes in infinite loops or which have gone "catatonic". In order to get a consistent coredump you must insure the process is NOT running. Job control allows you to accomplish just that. It is then possible to safely collect the processes context from /dev/*mem (using the "gcore" program in 4.2BSD). You can then continue the process afterwards with no ill effects. There are numerous other examples where this type of process control is useful. In summary, look at the broader uses of BSD job control before condemning its usefulness. Its not just for allowing simultaneous processing. I would urge other vendors to seriously consider adding this type of process control facility. I believe that the BSD facilities and many more are provided through /dev/proc on V8 Unix, although they may not be as efficient. Cheers, -Doug- Doug Kingston, CWI ("mcvax"), Amsterdam
pdg@ihdev.UUCP (P. D. Guthrie) (04/01/86)
In article <1524@wucs.UUCP> nz@wucs.UUCP (Neal Ziring) writes: >In article <6534@utzoo.UUCP> henry@utzoo.UUCP (Henry Spencer) writes: > > > >A program cannot catch '^Z'. This implies that 'vi' doesn't redraw its > > > >screen. >A program can catch ^Z, by ``signal(SIGTSTP, stop_handler)''. >Further, the program can also catch the continue -- which lets it redraw the >screen or print a message or change its state or whatever. I have several >programs which do both. On System V layers? I highly doubt it. That was the context of Henry's posting. This (as was explained before) is *not* possible with the current switch implementation as a signal is not generated. It might be an idea to have the tty driver generate SIGUSR1 when a switch character is entered - would break quite a bit of existing software though. > > > > When this is fixed I will admit that shell layers are a > > > workable substitute for full job control! What good does it do to stop > > > a job if I cannot restart it transparently? >You can. > > > What good does it do to be able to stop and start jobs if every program > > has to know about it to redraw the screen? Also, what do you do about > > output from (say) grep, which prints output and terminates rather than > > sticking around to redraw the screen on request? >Since when does EVERY program have to redraw the screen? I stop and start >compiles, makes, news-readers, mail, etc. and none of them do screen refreshes. > > > The fact is, *both* job control and shell layers are brain-damaged. Both > > do the easy part of multiplexing -- centralized input administration -- > > without the hard part -- centralized output administration. Programs should > > not have to redraw the screen themselves, when they have done nothing to > > mess it up! Job control and shell 2layers are both cheap plastic imitations > > of real window systems. > > -- > > Henry Spencer @ U of Toronto Zoology > >Job control is a helluva lot more than a cheap imitation of a window system. >It is a general method of allowing some user control of system features -- >time sharing and resource sharing. Remember that ^Z is only a character hook >to the rather general SIGTSTP signal! The ability to stop a process is a >very nice features that is NOT unique to BSD Unix (TOPS-10 and TOPS-20 had it). Yes, but in true windowing system this is unnecessary and I don't find myself missing it at all. > >Further, I think window systems are just fine, but they require VERY special >hardware to give acceptable performance. Not true. See the BLTJ article on the DMD's. >Job control frees up system resouces >by allowing processes to be swapped out. Window systems leave processes lying >around, and clutter the system even more with a window managing process! >The fact that a job can catch or not catch the SIGCONT as it pleases is a very >useful FEATURE! I would be very annoyed if somebody put screen control into >the kernel (!) and forces a screen update (expensive at 1200 baud) every time >I jumped into and out of a process. I do admit that there needs to be an extra signal which can be sent to a process when the size of the window is changed. This could be handled at a graphics library level though. > >Don't clutter this group with off-the-cuff opinions and snorts! Both job >control and window systems have their place, and they can even work together. Agreed. > >-- >...nz (Neal Ziring at WU ECL - we're here to provide superior computing.) > > {seismo,ihnp4,cbosgd}!wucs!nz OR nz@wucs.UUCP > > "You could get an infinite number of wires into this !*$$#!?! junction > box, but we usually don't go that far in practice" > -- Employee of London Electricity Board, 1959 -- Paul Guthrie `When the going gets weird, ihnp4!ihdev!pdg The weird turn pro' - H. Thompson
friesen@psivax.UUCP (Stanley Friesen) (04/02/86)
In article <127@sering.mcvax.UUCP> dpk@sering.UUCP (Doug Kingston) writes: >Shell layers is a way to get around not having true windowing. If you >have a real windowing system, then you don't need shell layers. As has >been mentioned by others, shell layers are deficient in several areas. > >As for Berkeley job control, this is another matter. As a mechanism >for handling multiple jobs simultaneously, it is a poor second to >a true windowing system. I know. I use BLIT terminals and SUN-like >workstations every day. I agree, a windowing system is the best solution. The question is, can a practical windowing system be designed to work on a normal 24 X 80 ASCII terminal without graphics capability? Not everyone can afford fancy stuff like BLIT's and SUN's. We only have about three of them here at Pacesetter and they are reserved for CAD/CAE work! I am stuck with a normal terminal. In the absence of a windowing system for such terminals Berkeley job control is far better than what is available on Sys V. -- Sarima (Stanley Friesen) UUCP: {ttidca|ihnp4|sdcrdcf|quad1|nrcvax|bellcore|logico}!psivax!friesen ARPA: ttidca!psivax!friesen@rand-unix.arpa
jpn@teddy.UUCP (04/03/86)
> > > >A program cannot catch '^Z'. This implies that 'vi' doesn't redraw its > > > >screen. >A program can catch ^Z, by ``signal(SIGTSTP, stop_handler)''. >Further, the program can also catch the continue -- which lets it redraw the >screen or print a message or change its state or whatever. I have several >programs which do both. I sure wish people would read before flaming. The original article was talking about SHELL LAYERS "shl" which is a System V poor imitation of Berkeley job control. Under Shell Layers, a ^Z (or equivalent keystroke) passes the terminal input to a different program, but the program that was intercepted is not told, and is NOT EVEN STOPPED (output will continue).
gwyn@brl-smoke.ARPA (Doug Gwyn ) (04/06/86)
In article <580@ihdev.UUCP> pdg@ihdev.UUCP (55224-P. D. Guthrie) writes: >I do admit that there needs to be an extra signal which can be sent to a >process when the size of the window is changed. This could be handled >at a graphics library level though. Any such implementation of SIGWINCH should ensure that the SIG_DFL action is to ignore the signal, not to terminate the process. I mention this because I see that AT&T hasn't yet changed the wording in the SVID to agree with the result of the P1003 discussion about this issue. SIG_DFL should NOT always mean "terminate".
gwyn@brl-smoke.ARPA (Doug Gwyn ) (04/06/86)
In article <1081@psivax.UUCP> friesen@psivax.UUCP (Stanley Friesen) writes: >Not everyone can afford fancy stuff like BLIT's and SUN's. Teletype 5620 DMDs go for around $4000 last I looked. (Each host system also needs to license some software at a few thousand per system.) When you consider the "overhead" cost of supporting professional employees, which is typically about twice their salaries, there is no good excuse for companies not investing a modest amount in productivity improvement tools.
friesen@psivax.UUCP (Stanley Friesen) (04/07/86)
In article <1524@wucs.UUCP> nz@wucs.UUCP (Neal Ziring) writes: >In article <6534@utzoo.UUCP> henry@utzoo.UUCP (Henry Spencer) writes: > > > >A program cannot catch '^Z'. This implies that 'vi' doesn't redraw its > > > >screen. > >A program can catch ^Z, by ``signal(SIGTSTP, stop_handler)''. >Further, the program can also catch the continue -- which lets it redraw the >screen or print a message or change its state or whatever. I have several >programs which do both. > This is only true on BSD systems! On SysV ^Z does NOT SEND A SIGNAL, so there is *nothing* to catch. This is what Henry was complaining about. (At least this is true of all SysV systyems I have ever heard tell of) > >Job control is a helluva lot more than a cheap imitation of a window system. >It is a general method of allowing some user control of system features -- >time sharing and resource sharing. Remember that ^Z is only a character hook >to the rather general SIGTSTP signal! The ability to stop a process is a >very nice features that is NOT unique to BSD Unix (TOPS-10 and TOPS-20 had it). However it is not found in SysV UNIX. On ATT UNIX the ^Z simply "disables" terminal I/O to the current process, and the "continue" operation simply re-enables it, there is no SIGSTP signal! > >Further, I think window systems are just fine, but they require VERY special >hardware to give acceptable performance. Job control frees up system resouces >by allowing processes to be swapped out. Window systems leave processes lying >around, and clutter the system even more with a window managing process! >The fact that a job can catch or not catch the SIGCONT as it pleases is a very >useful FEATURE! I would be very annoyed if somebody put screen control into >the kernel (!) and forces a screen update (expensive at 1200 baud) every time >I jumped into and out of a process. > >Don't clutter this group with off-the-cuff opinions and snorts! Both job >control and window systems have their place, and they can even work together. > Actually, a properly implemented windowing system should SIGSTP all processes not in active windows. And the window management system is best placed in the kernel where it does require a special process. My main objection to windowing is your last point - it requires to much in the way of special hardware to run correctly. In fact the 1200 Baud over-the-modem problem is *very* serious. -- Sarima (Stanley Friesen) UUCP: {ttidca|ihnp4|sdcrdcf|quad1|nrcvax|bellcore|logico}!psivax!friesen ARPA: ttidca!psivax!friesen@rand-unix.arpa
faustus@cad.UUCP (Wayne A. Christopher) (04/08/86)
> Actually, a properly implemented windowing system should > SIGSTP all processes not in active windows. And the window management > system is best placed in the kernel where it does require a special > process. I don't think you really mean that first comment -- the whole point of having windows is so that you can have some things running in the background, and being able to see them while you're doing something else in the foreground. Also, I see no reason to put window management in the kernel -- X (which I consider the best available window system) has no problems running in user mode. Comments? Wayne
tim@ism780c.UUCP (Tim Smith) (04/09/86)
In article <2417@teddy.UUCP> jpn@teddy.UUCP (John P. Nelson) writes: > I sure wish people would read before flaming. I sure wish people who lived in glass houses ... :-) > The original article was talking about SHELL LAYERS "shl" which > is a System V poor imitation of Berkeley job control. Shell layers is not an attempt to imitate job control! Shell layers is an attempt to solve the problem of multiplexing input to several processes. Job control seems to be a kludge attempting to solve multiple problems ( process control, input multiplexing, and output multiplexing ) all at once. > Under Shell Layers, a ^Z (or equivalent keystroke) passes the > terminal input to a different program, but the program that was > intercepted is not told, and is NOT EVEN STOPPED (output will > continue). Shell layers may be set up so that any process that attempts to do IO will block. Output in this case will not continue. -- Tim Smith sdcrdcf!ism780c!tim || ima!ism780!tim || ihnp4!cithep!tim
hfavr@mtuxo.UUCP (a.reed) (04/10/86)
Sarima (Stanley Friesen) writes: > Actually, a properly implemented windowing system should > SIGSTP all processes not in active windows. I don't think that anyone who has used the asynchronous layering capability of AT&T windowing (5620,7300 etc) will agree with you. I want the process in the "deselected" layer - for example, a make which is running in one window while I am editing other code in another layer - to keep on writing so I can monitor it. This is the main reason why windowing increases productivity: so you don't have to stop your work just because you have to monitor the slow progress of some other process in real time. The cleanest conceptual model is that layers are just like separate terminals (in fact, I used to work with two terminals and a T-switched keyboard before I got a Blit). Are you going to claim that a process should behave differently depending on whether the user's keyboard is connected to its terminal? Adam Reed (ihnp4!npois!adam)
pdg@ihdev.UUCP (P. D. Guthrie) (04/11/86)
In article <1090@psivax.UUCP> friesen@psivax.UUCP (Stanley Friesen) writes: > Actually, a properly implemented windowing system should >SIGSTP all processes not in active windows. Why would you want to do this? The beauty of a windowing system is the ability to monitor multiple running processes. Actually as we speak I am watching two interactive processes that I am testing. I couldn't do this properly without windows. I can generally do more than one thing at once and for my best productivity, I would like this to reflect on my computer usage. > And the window management >system is best placed in the kernel where it does require a special >process. Putting it in the kernel is a bad idea. The beauty of unix is that so much of the system software is *outside* of the kernel where it can be run and customized with much greater ease. No, the window system belongs to a great degree within a multiplexing process and inside the windowing device itself. > My main objection to windowing is your last point - it requires >to much in the way of special hardware to run correctly. In fact the >1200 Baud over-the-modem problem is *very* serious. >-- OK. I admit a good point, however we must consider the relative price of hardware. A DMD such as the one I am using now is rather expensive for the average user, but many other terminals also have at least simple windowing capabilities. My teletype 4425 has a 'windows' mode where it can have up to four windows and the scrolling is kept inside the window. I am currently (sporatically) working on a type of 'layers' for this. Most terminals made within the next few years will have this sort of capability, so it will become easier than ever to have 'windowing' in all environments, not just Unix. Yes, we should also have line modes for those who have 'older' terminals until these are all phased out, which should take a couple of decades. This really goes to show that large amounts of special hardware are not required and that terminal manufacturers are aware of this. I think it will become very important to them to produce the best windowing capabilities in their terminals for the lowest cost. AS for the 1200 (or god forbid 300) baud problem, you still have line (or I should say single screen) mode. No one is forcing you to use windows (and I often don't) but for most applications I find them more useful. > > Sarima (Stanley Friesen) > >UUCP: {ttidca|ihnp4|sdcrdcf|quad1|nrcvax|bellcore|logico}!psivax!friesen >ARPA: ttidca!psivax!friesen@rand-unix.arpa -- Paul Guthrie `When the going gets weird, ihnp4!ihdev!pdg The weird turn pro' - H. Thompson
herbie@polaris.UUCP (Herb Chong) (04/12/86)
on further reflection, it is more likely that it was curses redisplaying the screen. Herb Chong... I'm still user-friendly -- I don't byte, I nybble.... VNET,BITNET,NETNORTH,EARN: HERBIE AT YKTVMH UUCP: {allegra|cbosgd|cmcl2|decvax|ihnp4|seismo}!philabs!polaris!herbie CSNET: herbie.yktvmh@ibm-sj.csnet ARPA: herbie@ibm-sj.arpa, herbie%yktvmh.bitnet@wiscvm.wisc.edu ======================================================================== DISCLAIMER: what you just read was produced by pouring lukewarm tea for 42 seconds onto 9 people chained to 6 Ouiji boards.
guy@sun.uucp (Guy Harris) (04/12/86)
> Shell layers is not an attempt to imitate job control! From UNIX(TM) System V - System Release Description 2.0 - DEC(TM) Processors, April 1984, 307-006, Issue 1: 3. DETAILED FEATURE DESCRIPTIONS Job Control Job control gives users more control over their processes. It allows users to interact with different invocations of the shell, which can be conceptualized as shell "layers", only one of which receives input from the user's terminal at a time. ... The "shl" (shell layers) program is the user interface to the job control facility. ... This feature provides capabilities similar to BSD job control, but is a new implementation. ... For something which isn't an attempt to imitate job control, its description certainly uses the phrase enough times... > Shell layers is an attempt to solve the problem of multiplexing input > to several processes. Job control seems to be a kludge attempting to solve > multiple problems ( process control, input multiplexing, and output > multiplexing ) all at once. Shell layers, as you point out later, permits you to force all processes which attempt to do output when they're not the current layer to block. This sure sounds like an attempt to solve the input and output multiplexing problems all at once... > > Under Shell Layers, a ^Z (or equivalent keystroke) passes the > > terminal input to a different program, but the program that was > > intercepted is not told, and is NOT EVEN STOPPED (output will > > continue). > > Shell layers may be set up so that any process that attempts to do IO > will block. Output in this case will not continue. Yes, but what if the program isn't attempting to do output? What if, say, it's doing graphs on a VT100(TM) equipped with a board which provides Tektronix(TM) 4014 emulation, and has put the terminal in question in 4014 mode? How is the program running in that layer to know that it's layer is no longer the current layer, and that it should restore the terminal to normal mode? Then, when it becomes the current layer again, how is it to know that it's to put the terminal back into 4014 mode? Neither job control nor shell layers provides a perfect solution to the output multiplexing problem. Job control, at least, gives you hooks to put Band-Aids(TM) over some of the more obvious scars. If somebody tried to sell me a job control mechanism which forced me to clear the screen every time I suspended a screen editor, and forced me to type the "repaint the screen" key every time I restarted the screen editor, I'd show them to the door. I would find it unusable. (If shell layers does not require you to do this, somebody could do us all a great favor by explaining how.) To a large degree, this is a debate over matters of personal taste. People used to job control may argue in favor of it. People used to shell layers may argue in favor of it. I've got a window system, so most of the time I don't need either one. I occasionally move a job into the background retroactively. This is a convenience which I *could* live without. I *won't* do so, however, merely because somebody claims that job control is in bad taste - and that's what a lot of the anti-job-control claims amount to. (As for the question of "modifying lots of programs", somebody recently pointed out that many programs have *already* been modified in similar ways, for similar purposes - to support shell escapes.) -- Guy Harris {ihnp4, decvax, seismo, decwrl, ...}!sun!guy guy@sun.arpa (yes, really)
WANCHO@simtel20.arpa (04/14/86)
The ability to stop a process is a very nice features that is NOT unique to BSD Unix (TOPS-10 and TOPS-20 had it). Correction: TOPS-10 and TOPS-20 *have* it. So does MIT's ITS, Stanford's WAITS, BBN's TENEX (and Tymshare's AUGMENT derivative of TENEX)... --Frank
friesen@psivax.UUCP (Stanley Friesen) (04/15/86)
In article <156@cad.UUCP> faustus@cad.UUCP (Wayne A. Christopher) writes: >> Actually, a properly implemented windowing system should >> SIGSTP all processes not in active windows. >> system is best placed in the kernel where it does require a special >> process. > >I don't think you really mean that first comment -- the whole point of having >windows is so that you can have some things running in the background >Also, I see no reason to put window management in the kernel -- X (which >I consider the best available window system) has no problems running >in user mode. Comments? > Several people seem to have misunderstood the first point, so I will attempt to clarify it. I didn't mean that *all* non-foreground windows should be considered inactive, only those that are interactive or are selected by the user for inactivation. That is, since BSD UNIX supports three classes of jobs, foreground, background, and stopped, so should the windowing system. Without all three a windowing system *doesn't* have the full capability of Job Control and I would therefor still require it. The second point was a quick "impression" giving few details. After giving the matter more thought what I would like see is for the low level primitives for managing windows to be placed in the kernel. That is the ability to create, update, and display windows should be part of the I/O system, preferably as extensions to the tty device drivers. Then the window session manager would be implemented as a user mode program. In fact it should be integrated with the command interpreter to produce a Window Shell. This way you get a single login process, a unified history mechanism and an integrated control interface. You also get the ability for user programs to create and manipulate windows if they need to. (P.S. subshells should probably be "normal", non-windowing shells running in thier own window). -- Sarima (Stanley Friesen) UUCP: {ttidca|ihnp4|sdcrdcf|quad1|nrcvax|bellcore|logico}!psivax!friesen ARPA: ttidca!psivax!friesen@rand-unix.arpa
aglew@ccvaxa.UUCP (04/15/86)
[Comment:] I find the term `shell layers' inappropriate. It seems to imply, to me, subshells, perhaps not even tree structured. When I think of multiplexing on a wire I do not think of layered sets of data, with this layer being above or below that - I think of a switch. The term `layers' is really only appropriate to an aspect of the implementation, in terms of (overlapping) windows. [Has anyone ever made a non-layered windowing system - one where you can get cycles of overlaps? Wouldn't work with rectilinear windows.] [Question:] does the `shell layering' system include true virtual terminals mapped into a memory image of the screen display? If so, nice, but could quickly start consuming large amounts of memory (say I want to have N 1Kx1K colour maps, but I'm only displaying the equivalent of 1.5 at any time). Is there provision for less storage costly alternatives - a window resized or revisibled interrupt? Andy "Krazy" Glew. Gould CSD-Urbana. USEnet: ihnp4!uiucdcs!ccvaxa!aglew 1101 E. University, Urbana, IL 61801 ARPAnet: aglew@gswd-vms