[comp.unix.aux] derez peculiarity

sysmark@physics.utoronto.ca (Mark Bartelt) (05/03/91)

Why on earth can't I use derez if I'm not invoking it from a window on
the console?  If I rlogin onto an A/UX system from my workstation, and
try to run derez, I get the following error message:

	Can't open user interface device
	/dev/uinter0: Permission denied

First of all, what is /dev/uinter0?  It's not documented in section 7 of
the System Administrator's Reference manual.  At the moment, it's owned
by the person who is currently logged in on the console; protection mode
is 0600.

Secondly, why does derez even care about /dev/uinter0?  Is there a good
reason (and, if so, what?), or is it just a bug?

Finally, what other A/UX commands have this (mis)feature?

Mark Bartelt                                                416/978-5619
Canadian Institute for                             mark@cita.toronto.edu
Theoretical Astrophysics                           mark@cita.utoronto.ca

rmtodd@servalan.uucp (Richard Todd) (05/04/91)

sysmark@physics.utoronto.ca (Mark Bartelt) writes:

>Why on earth can't I use derez if I'm not invoking it from a window on
>the console?  If I rlogin onto an A/UX system from my workstation, and

Because, to a large extent, it's really a MacOS application disguised as
a Unix program, and thus needs to be able to talk to the MacOS emulation
environment.  

>First of all, what is /dev/uinter0?  It's not documented in section 7 of
>the System Administrator's Reference manual.  At the moment, it's owned
>by the person who is currently logged in on the console; protection mode
>is 0600.

It's one of the mysterious undocumented devices used by the MacOS-under-Unix
environment.  It's mode 600 owned by the guy logged into the console 
because he's (presumably) on there running a Mac program...  

>Secondly, why does derez even care about /dev/uinter0?  Is there a good
>reason (and, if so, what?), or is it just a bug?

I gather that rez and derez were basically quick ports of the MPW tools of
the same name, and thus are basically "MacOS" programs.  I wouldn't call it
a bug, but it's definitely a questionable design decision.  And they definitely
should have put in the man pages in large red letters "WARNING: REQUIRES
ACTIVE MacOS ENVIRONMENT IN ORDER TO RUN."

>Finally, what other A/UX commands have this (mis)feature?

None offhand that I recall, except for ones like "launch" and "CommandShell"
which don't make any sense to invoke unless you are on the console.  
--
Richard Todd	rmtodd@uokmax.ecn.uoknor.edu  rmtodd@chinet.chi.il.us
	rmtodd@servalan.uucp
"Elvis has left Bettendorf!"

lantz@Apple.COM (Bob Lantz) (05/04/91)

Mark,

You (sysmark@physics.utoronto.ca) wrote:

>Why on earth can't I use derez if I'm not invoking it from a window on
>the console?

Derez is a Macintosh program, an MPW tool in fact.  In order to run it,
you need to be running the Macintosh environment.

>If I rlogin onto an A/UX system from my workstation, and
>try to run derez, I get the following error message:

>	Can't open user interface device
>	/dev/uinter0: Permission denied

I agree that this error message is somewhat unenlightening.  It
should be something like

"derez: Sorry, you may not start up a program in fred's Macintosh environment."

>First of all, what is /dev/uinter0?

/dev/uinter0 is the interface to the user interface "device" driver.

>  It's not documented in section 7 of
>the System Administrator's Reference manual.

It is documented, I believe, in the (famous) _A/UX Toolbox: Macintosh ROM 
Interface_ manual (see section C, Implementation Notes.)

>At the moment, it's owned
>by the person who is currently logged in on the console; protection mode
>is 0600.

Yes. The person who is currently logged in on the console "owns" the
Macintosh environment.   Users are not normally permitted to start
up programs in another user's Macintosh environment.

>Secondly, why does derez even care about /dev/uinter0?  Is there a good
>reason (and, if so, what?), or is it just a bug?
>Finally, what other A/UX commands have this (mis)feature?

See above.  The same applies to MacWrite, MacPaint, or any Macintosh
binary which you are running on A/UX.  A/UX allows you to start Macintosh
programs from the shell, but you must be running the Macintosh environment.

I hope this clears things up.

>Mark Bartelt                                                416/978-5619
>Canadian Institute for                             mark@cita.toronto.edu
>Theoretical Astrophysics                           mark@cita.utoronto.ca

Bob

ksand@Apple.COM (Kent Sandvik, 120dB or more) (05/05/91)

In article <1991May3.143648.24192@helios.physics.utoronto.ca> mark@cita.toronto.edu writes:
>Why on earth can't I use derez if I'm not invoking it from a window on
>the console?  If I rlogin onto an A/UX system from my workstation, and
>try to run derez, I get the following error message:
>
>	Can't open user interface device
>	/dev/uinter0: Permission denied
>

Hi, this is a new *feature* of A/UX 2.0, rez/derez needs access to the
Macintosh toolbox emulation world, and this is done using the /dev/uinter0
which is active under the Finder login session. In other words, hybrid
apps such as rez/derez needs Finder running.

>First of all, what is /dev/uinter0?  It's not documented in section 7 of
>the System Administrator's Reference manual.  At the moment, it's owned
>by the person who is currently logged in on the console; protection mode
>is 0600.

/dev/uinter0 is the main device driver interface that handles communication
between an A/UX Toolbox application (or tool, like rez/derez) and the kernel.

Note, this is only needed for so called hybrid apps. And rez/derez as
the CommandShell are examples of hybrid Mac/UNIX apps.

For more documentation about /dev/uinter0, see section C-2,3 in "A/UX
Toolbox:Macintosh ROM Interface" manual. But basically the driver does
a lot of grunt stuff, like memory mapping, event-queue handling, cursor
tracking, A-line trap dispatching and so on.


Regards,
Kent Sandvik
-proud father of a 14 hour old boy

-- 
Kent Sandvik, DTS Rock Lobster
Disclaimer: I am not working with Public Relations.