[comp.sys.apollo] procedural interfaces

krowitz@mit-kermit.UUCP (David Krowitz) (06/25/87)

The reason that the procedural interfaces that people have been complaining about
are missing from the system is that not enough people have written UCRs demanding
that Apollo release the system calls. The same hold true for BSD 4.2, if enough
people complained to Berkley they might do something about the fact that many
programs which do useful things must go mucking around in /dev/kmem. I have some
procedures which do the things that A. Petrilli complains about, but they do so
by invoking LCNODE, LUSR, NETSTAT and the like and parsing the output. This
suffers from the same problem as /dev/kmem -- mainly anytime the format of the
output of these programs changes (or the internal structure of /dev/kmem is
updated), the programs which rely upon this method break badly! A 'clean' system
call is always preferable to messing around in a data structure -- it gives the
systems programmer a stable interface to the OS while at the same time allowing
the OS/kernal programmers to make changes that aren't going to come back to haunt
them forevermore.

In short, if you want it and it ain't there, write the UCR! If you can't figure out
what all of the fields are for, then leave 'em blank -- that's what I do and Apollo
hasn't complained about it yet.


                                   -- David Krowitz

mit-erl!mit-kermit!krowitz@eddie.mit.edu
mit-erl!mit-kermit!krowitz@mit-eddie.arpa
krowitz@mit-mc.arpa
(in order of decreasing preference)

bobr@zeus.TEK.COM (Robert Reed) (06/26/87)

In article <8706242145.AA09122@EDDIE.MIT.EDU> krowitz@mit-kermit.UUCP (David Krowitz) writes:

    The reason that the procedural interfaces that people have been
    complaining about are missing from the system is that not enough people
    have written UCRs demanding that Apollo release the system calls.

Are you certain of this?  I've gotten several private messages from persons
at Apollo (probably not policy, but closer than speculation) to the effect
that they haven't released the procedural interfaces under discussion
because they don't want to be forced to support those interfaces in future
versions.  This sounds very much like the motivation for not having
/dev/kmem--so there we are, no closer to a solution.

    The same hold true for BSD 4.2, if enough people complained to Berkley
    they might do something about the fact that many programs which do
    useful things must go mucking around in /dev/kmem. 

Pleasant dream.  The reality of course is if it ain't broke, don't fix it.
What motivation does Berkeley, short of another DARPA contract, have to
provide equivalent function in a procedural interface?  My guess is that
such complaints directed to Berkeley will fall on deaf ears.

    I have some procedures which do the things that A. Petrilli complains
    about, but they do so by invoking LCNODE, LUSR, NETSTAT and the like and
    parsing the output. This suffers from the same problem as /dev/kmem --
    mainly anytime the format of the output of these programs changes (or
    the internal structure of /dev/kmem is updated), the programs which rely
    upon this method break badly! 

This of course, misses the point.  What you have demonstrated is that in the
absence of support, for procedural interfaces or otherwise, that desperate
measures will be taken to derive such information.  You yourself have
justified measures such as /dev/kmem, because by resorting to them you were
able to get the job done, albeit by means of a structure which is somewhat
tenuous.

    A 'clean' system call is always preferable to messing around in a data
    structure -- it gives the systems programmer a stable interface to the
    OS while at the same time allowing the OS/kernal programmers to make
    changes that aren't going to come back to haunt them forevermore.

I agree, however, as a pragmatic matter, devices such as kmem are a cheap
means to provide such function.  All the sellers need provide is a simple
document describing the internal tables and place the onus on users to
upgrade their tools appropriately.  As far as I can tell, Apollo has
provided neither, nor do they plan to in the near future.
-- 
Robert Reed, Tektronix CAE Systems Division, bobr@zeus.TEK

dfm@JASPER.PALLADIAN.COM (Don Morrison) (06/26/87)

    Date: 25 Jun 87 21:06:52 GMT
    From: tektronix!teklds!zeus!bobr@ucbvax.Berkeley.EDU  (Robert Reed)

    In article <8706242145.AA09122@EDDIE.MIT.EDU> krowitz@mit-kermit.UUCP (David Krowitz) writes:

	The reason that the procedural interfaces that people have been
	complaining about are missing from the system is that not enough people
	have written UCRs demanding that Apollo release the system calls.

    Are you certain of this?  I've gotten several private messages from persons
    at Apollo (probably not policy, but closer than speculation) to the effect
    that they haven't released the procedural interfaces under discussion
    because they don't want to be forced to support those interfaces in future
    versions.  This sounds very much like the motivation for not having
    /dev/kmem--so there we are, no closer to a solution.

The story I've been getting from folks at Apollo lately is that they've finally biten the bullet and accepted that
they'll have to release more formerly internal-only system calls, and have plans for releasing various ones with
upcoming OS releases.  If we don't tell them just what we want them to release, they'll continue to try to guess what
we want; far better that we try to tell Apollo specificially what functionality we want them to provide public
interfaces for.  If there's information you feel a need to be able to get, from /dev/kmem or elsewhere, and can't do
it on an Apollo, send them a list of specifics; they're actually reasonable people who know they'll sell more boxes
to happy customers than angry ones.

krowitz@mit-kermit.UUCP (David Krowitz) (06/29/87)

No, sorry, YOU missed MY point! (as usual). 
Of course Apollo (or Berkley, or anyone else for that matter) wants to
support as little software as they have to. The point I was making was
that if enough users get together and ask for the same feature time and
again, then the manufacturer (Apollo in this instance) will feel some
pressure to provide it. If everyone just sits on their ass and grumbles
to themselves and never get around to writing UCRs (or sending mail to
Sun, or whatever) then NOTHING WILL EVER CHANGE, and we will be forced
to muck around with /dev/kmem (or invoke LCNODE, or someother horrible
kludge which will break just as soon as someone changes the kernal).
The problem with a feature like /dev/kmem is that by publishing the
structures on the internal tables of the kernal you have created a
program interface which must be supported just like any other system
library *and* you have, at the same time, made an irrevocable decision
about how the kernal is going to look in the future. If a feature is
needed in the OS, the thing to do is to get together 10 or 20 people
from across the country (easy enough to do with email) and have a UCR writing
party, not to demand that the entire kernal be rewritten to look like
an operating system that was cast in stone 10 years ago.


                                   -- David Krowitz

mit-erl!mit-kermit!krowitz@eddie.mit.edu
mit-erl!mit-kermit!krowitz@mit-eddie.arpa
krowitz@mit-mc.arpa
(in order of decreasing preference)

gnu@hoptoad.uucp (John Gilmore) (07/01/87)

krowitz@mit-kermit.UUCP (David Krowitz) wrote:
>                                                      If a feature is
> needed in the OS, the thing to do is to get together 10 or 20 people
> from across the country (easy enough to do with email) and have a UCR writing
> party...

Hmm, in the Unix community we have a code writing party instead, and then
post the change to the net.  In their next release Berkeley picks it up.
Two years later Sun and DEC pick it up.  Five years later AT&T picks it up
but changes its name.

freedman@calgary.UUCP (Dan Freedman) (07/01/87)

In article <8706291746.AA09491@EDDIE.MIT.EDU>, krowitz@mit-kermit.UUCP (David
Krowitz) writes:
> Of course Apollo (or Berkley, or anyone else for that matter) wants to
> support as little software as they have to. The point I was making was
> that if enough users get together and ask for the same feature time and
> again, then the manufacturer (Apollo in this instance) will feel some
> pressure to provide it. If everyone just sits on their ass and grumbles
> to themselves and never get around to writing UCRs (or sending mail to
> Sun, or whatever) then NOTHING WILL EVER CHANGE, and we will be forced
> to muck around with /dev/kmem (or invoke LCNODE, or someother horrible
> kludge which will break just as soon as someone changes the kernal).

Of course, the buyer has one rather strong option that doesn't require him
to write any UCRs, and that is to buy elsewhere.  While customer feedback
is very important in determining future improvements to a product, a
customer is going to feel far better about spending money on a product
where the vendor is innovative enough to improve the product without being
bullied into it by its customers.  (Note that I'm speaking generally here,
and not specifically about Apollo).  A vendor should be able to look
introspectively at its products in order to improve them to gain new
customers (who, since they are not yet customers, won't be sending in
UCRs!)  Thus, I disagree with your statement that nothing will ever change
without UCRs.  At the very least, if a product does not change, if it
stagnates, then the vendors competitors will surely take advantage of the
fact, and the products market share will drop.  IBM is quite possibly
an exception to all of this.  9~>

	Dan Freedman

weber_w@apollo.uucp (Walt Weber) (07/02/87)

In article <2349@hoptoad.uucp> gnu@hoptoad.uucp (John Gilmore) writes:
>krowitz@mit-kermit.UUCP (David Krowitz) wrote:
>>                                                      If a feature is
>> needed in the OS, the thing to do is to get together 10 or 20 people
>> from across the country (easy enough to do with email) and have a UCR writing
>> party...
>
>Hmm, in the Unix community we have a code writing party instead, and then
>post the change to the net.  In their next release Berkeley picks it up.
>Two years later Sun and DEC pick it up.  Five years later AT&T picks it up
>but changes its name.

John --

1) does this mean that one cannot be a member of your "Unix community" without
   a source license?

2) if your approach met the general-case needs, would there be a market for
   the services provided by, say, Mt. XINU?

It looks to me like your approach leaves out the collection of binary-only sites
who do not have an interest in kernel thwacking, but would like to have additional
features added to their systems.

-- 
Walt Weber               PHONE: (617) 256-6600 x7004
Apollo Computer          GENIE: W.WEBER
Chelmsford, People's Republic of Massachusetts