Unix Technical Digest V1 #41
Ron Heiby (The Moderator)
unix-request at cbosgd.UUCP
Wed Apr 10 03:07:28 AEST 1985
Unix Technical Digest Tue, 9 Apr 85 Volume 1 : Issue 41
Today's Topics:
Administrivia
Bug in csh? (exec v. job control) (2 msgs)
Daylight Saving time (2 msgs)
File system limit in 4.2 BSD (2 msgs)
HELP - Background jobs in csh (2 msgs)
----------------------------------------------------------------------
Date: Tue, 9 Apr 85 16:56:31 GMT
From: Ron Heiby (The Moderator) <unix-request at cbosgd.UUCP>
Subject: Administrivia
Just a couple of notes. First, I still plan to stop reading the net.unix
and net.unix-wizards groups at the end of April, so submissions should start
getting sent to me instead of being submitted to them. Second, I have
received several pieces of mail addressed to netnews at wnuxb.UUCP and
heiby at wnuxa.UUCP. While these do in fact reach me (today), they are
not guaranteed to do so in the future. Also, anything that is sent to
"heiby" is assumed to be personal and anything sent to "netnews" is assumed
to be related to news administration. If you want to talk with me about
mod.unix, please send your (at least initial) message to unix-request
on cbosgd. Submissions for posting must be sent to unix at cbosgd.UUCP.
Thanks. Ron.
------------------------------
Date: 3 Apr 85 22:19:31 GMT
From: greg at ncr-tp.UUCP (Greg Noel)
Subject: Bug in csh? (exec v. job control)
There seems to be a bug in the way the C shell's exec function interacts
with job control. The quickest way to show it:
- Run the C shell and make sure that the SHELL environment variable
is set to /bin/csh.
- type "vi garbage-file" to get a program that will create a shell.
- type ":sh" to get a shell. The C shell should prompt you.
- type "exec echo foo" -- actually, exec any program. In theory,
this should run the specified program and then return to the editor.
Now tell me, why was the editor stopped with a "tty output"?
--
-- Greg Noel, NCR Torrey Pines Greg at ncr-tp.UUCP or Greg at nosc.ARPA
------------------------------
Date: 12 Apr 85 05:49:31 GMT
From: anton at ucbvax.ARPA (Jeff Anton)
Subject: Bug in csh? (exec v. job control)
For those few who understand how the "process group" has been abused
in the name of job control this should be understud.
The new csh changed the process group of the terminal then the
csh execs foobar and the process dies. The vi wakesup from the
forked process dying and tries to print something. The vi's process
group now does not match the terminals so the system sends the process
group a SIGTOUT stopping is. The csh that forked vi finds that
the vi has stoped and then gives you control to fg it.
The whole process group, job control stuff is very messy.
If you had a /bin/sh, ran vi, changed vi to call a csh, did the
shell escape and exec command your terminal would be hung since
vi's process group would include your /bin/sh. Very nasty.
Ever wonder why 'suspend' on a login shell prints:
Can't suspend a login shell. (yet)
--
C knows no bounds.
Jeff Anton
U.C.Berkeley
ucbvax!anton
anton at berkeley.ARPA
------------------------------
Date: 28 Mar 85 16:56:48 GMT
From: leif at erisun.UUCP (Leif Samuelsson)
Subject: Daylight Saving Time
In article <471 at grendel.UUCP> avolio at grendel.UUCP (Frederick M. Avolio) writes:
>>
>> Well, it seems that all 4.2BSD machines in Europe went on
>> DST a week too early this year...
>
> One other solution --- I believe this is good for any 4.2bsd
>based U*ix. When you configure the system specify dst followed by a
>number. 1 = usa, 2=australia, 3=w. europe, 4=central europe, and 5= e.
>europe.
This isn't the problem. The code is *wrong* for group 3 and 4 of
the above. If we hadn't specified a "4" for our machine, we would
have had to wait another *month* for DST to happen. (It's this
sunday, folks!)
It's hard work to correct the code in ctime.c for a system
administrator, even with the sources, because it does not reside in
the kernel. It is linked in with every routine that deals with
time, like "date".
I think a solution would be to handle the timezone and dst
business with the "date" command and have the algorithms in the
kernel instead. That way you could specify the timezone and dst
in your /etc/rc like this:
date -tMET -d4
Leif Samuelsson
Ericsson Information Systems AB ..mcvax!enea!erix!erisun!leif
Advanced Workstations Division
S-172 93 SUNDBYBERG 59 19 N / 17 57 E
SWEDEN
------------------------------
Date: 3 Apr 85 06:52:17 GMT
From: njh at root44.UUCP (Nigel Horne)
Subject: Daylight Saving time
Not only 4.2BSD, but also System V. Ho hum, still the week soon went by.
--
Nigel Horne <njh at root44.UUCP>
Root Computers Ltd.
{deccra,edai,glasgow,hirst1,ist,kcl-cs,qmc-cs,rlvd,pmllab,stc-a,ubu,
ukc,unisoft}!root44!rootcl!njh
------------------------------
Date: 31 Mar 85 19:14:08 GMT
From: mojo at sun.uucp (Joseph Moran)
Subject: File system limit in 4.2 BSD
In article <681 at rayssd.UUCP> dhb at rayssd.UUCP writes:
>Has anyone ever successfully gotten more than 15 file systems on a 4.2 BSD
>system?
>We have been trying to track what we thought
>was a weird swapping error for three months (tues and wed eve.) and have
>now been running smoothly WITHOUT the coremap changes for over two weeks.
Your problem is the "Fastreclaim" code in vax/locore.s. This code is
an optimization put into 4.2. This code knows about the cmap
structure. If you change anything in the cmap structure w/o rewritting
this code, you are bound to get bad paging problems. As it turns out,
you can take out the call to Fastreclaim as it is simply an
optimization, in the long run you'll want to rewrite the code for your
new cmap structure. It turns out that this code also knows a few other
magic numbers also, w/o using the right symbols to reference them (like
UPAGES). The second problem can be avoided by figuring out some of the
magic numbers in the code and putting in an expression using the right
symbols.
It turns out that we were bit by this same problem here at Sun twice.
We changed the cmap structure for use with the nfs (network file
system). We had a hard time figuring out why random pages got paged in
incorrectly and processes were dying when we were running the nfs
kernel until it was tracked down to Fastreclaim. Later we were playing
with changing UPAGES and got bit by Fastreclaim again. Sometimes
changing .h files doesn't do everything it really needs to. Hats off
to Bill Shannon for finding both of these.
Joe Moran
sun!mojo
------------------------------
Date: 3 Apr 85 23:05:11 GMT
From: chris at umcp-cs.UUCP (Chris Torek)
Subject: File system limit in 4.2 BSD
I strongly urge all 4.2 VARs to do something about this. BRL (and UCB
and others) have modified h/cmap.h to contain #defines for use by
locore.s. This at least centralizes the information. (By the way, I
have a sneaking suspicion that Fastreclaim was done as a quick hack by
the Franz group. Anyone "in the know" care to comment?)
[Excerpts from the BRL version of h/cmap.h:]
/*
* core map entry
*
* Limits imposed by this structure:
*
* limit cur. size fields
* Physical memory+ 64 Mb c_next, c_prev, c_hlink
* Mounted filesystems 255 c_mdev
* size of a process segment 1 Gb c_page
* filesystem size 2 Gb c_blkno
* proc, text table size 1024 c_ndx
*
* + memory can be expanded by converting first three entries
* to bit fields, shrinking c_unused, and increasing MAXMEM below.
*/
#ifndef LOCORE
struct cmap
{
[...]
};
#else LOCORE
/*
* bit offsets of elements in cmap
*/
#define C_INTRANS 66
#define C_FREE 67
#define SZ_CMAP 16 /* sizeof(struct cmap) */
#define MAXMEM 64*1024 /* maximum memory, in Kbytes */
#endif LOCORE
[...]
--
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251)
UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris
CSNet: chris at umcp-cs ARPA: chris at maryland
------------------------------
Date: 5 Apr 85 13:47:24 GMT
From: gda at creare.uucp (gda)
Subject: HELP - Background jobs in csh
Can anyone suggest a way for a program to know if it's running
in background ? We have a program that is partly interactive,
but when run in background we want it to skip the interactive
part. We tried checking if STDIN was a tty, but that didn't help.
We think it could call up "ps" and look for itself, but there must
be an easier way...
Thanks for your help (in advance).
Gray Abbott
Creare Inc.
{...dartvax!creare!gda}
------------------------------
Date: 8 Apr 85 20:34:04 GMT
From: anton at ucbvax.ARPA (Jeff Anton)
Subject: HELP - Background jobs in csh
Background and foreground jobs are determined by process group.
A background process (job) will have a different process group
than the terminal. You get the terminal process group with TIOCGPGRP
as described in tty(4). Compare this with getpgrp(2).
--
C knows no bounds.
Jeff Anton
U.C.Berkeley
ucbvax!anton
anton at berkeley.ARPA
------------------------------
End of Unix Technical Digest
******************************
--
Ronald W. Heiby / ihnp4!{wnuxa!heiby|wnuxb!netnews}
AT&T Information Systems, Inc.
Lisle, IL (CU-D21)
More information about the Mod.unix
mailing list