[comp.unix.questions] real-time Unix Systems

vik@bobkat.UUCP (Vik Ram Sohal) (08/18/87)

Does anybody out there know anything about what kind of real-time
Unix systems are available? (for things like automation, 
control, robotics, etc...).  I would appreciate any pricing information
you may have also.


						Thanks, Vik Sohal

richard@islenet.UUCP (Richard Foulk) (08/20/87)

In article <2663@bobkat.UUCP> vik@bobkat.UUCP (Vik Sohal) writes:
> 
> Does anybody out there know anything about what kind of real-time
> Unix systems are available? (for things like automation, 
> control, robotics, etc...).  I would appreciate any pricing information
> you may have also.
> 

Why bother with real-time unix?

Dedicate some smaller processors, to the heavily time-dependant
stuff, and let the unix system oversee the operation.  No sense
getting mixed up with some funny/special version of unix if you
don't have to.  And if you connect things together in a reasonable
way problems should be easier to diagnose, and you won't be
tying yourself to one particular vendor.

-- 
Richard Foulk		...{dual,vortex,ihnp4}!islenet!richard
Honolulu, Hawaii

rick@leadsv.UUCP (Rick Schneider) (08/20/87)

In article <2663@bobkat.UUCP> vik@bobkat.UUCP (Vik Sohal) writes:
>
>Does anybody out there know anything about what kind of real-time
>Unix systems are available? 

Real-time and Unix are, like army and intellegence, mutually exclusive
terms!  Unix is a time sharing system and in no stretch of the
imagination can be "real-time".  

Gould CSD is working on a "real-time" unix as well as a "secure"
unix. (I would think that "secure" is about as accurate a term as 
"real-time" in describing unix)

fred@rover.UUCP (Fred Christiansen) (08/20/87)

In article <2663@bobkat.UUCP> vik@bobkat.UUCP (Vik Sohal) writes:
>Does anybody out there know anything about what kind of real-time
>Unix systems are available? (for things like automation, 
>control, robotics, etc...).
>						Thanks, Vik Sohal

there's Regulus from Alcyon in San Diego, Unos from Charles River Data,
and something-whose-name-i-forget from Emerge Systems in Indialantic, Florida.
Masscomp has RTX.  and that's just some 680x0 ones that i'm aware of.
-- 
Fred Christiansen ("Canajun, eh?")     | seismo!noao!mcdsun!nud!fred (ARPA gate)
Motorola Microcomputer Div., Tempe, AZ |       utzoo!mnetor!mot!fred
"The greatest thing a father can do for|              ihnp4!mot!fred
his children is to love their mother." |  hplabs!motsj1!ellymae!fred

rml@hpfcdc.HP.COM (Bob Lenk) (08/21/87)

> Real-time and Unix are, like army and intellegence, mutually exclusive
> terms!  Unix is a time sharing system and in no stretch of the
> imagination can be "real-time".  

This depends on your definition of "UNIX" or "real-time".  Certainly you
there are real-time tasks that can't be handled by the UNIX(r) system
shipped by AT&T.  On the other hand, there is no reason a system can't
be built that has all the external appearance of "UNIX" and also handles
real-time tasks.  Certainly a system won't do a very good job of
handling close to its hardware's capacity of both real-time and
timesharing demands simultaneously, but that doesn't mean one can't do a
good job with reasonable loads of each type separately and perhaps even
with limited mixtures.

> Gould CSD is working on a "real-time" unix as well as a "secure"
> unix.

Many vendors are working on or shipping both, and many customers are
looking for or using both.  Some such systems may not be very good at
being "real-time", "secure", or "UNIX" by your definition or mine, but
that doesn't mean that this is impossible.

		Bob Lenk (hpfcla!rml)

chris@mimsy.UUCP (Chris Torek) (08/21/87)

In article <1678@leadsv.UUCP> rick@leadsv.UUCP (Rick Schneider) writes:
>Real-time and Unix are, like army and intellegence, mutually exclusive
>terms!

A base canard.

Seriously, real-time and full-blown-operating-system have a tendency
to be, at least, mutually combative, but like most operating systems,
if you work at it, you can get Unix out of the way, too.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
Domain:	chris@mimsy.umd.edu	Path:	seismo!mimsy!chris

hubcap@hubcap.UUCP (Mike S Marshall) (08/21/87)

In article <3138> rick@leadsv.uucp (Rick Schneider) writes:
*
*Real-time and Unix are ... mutually exclusive terms! Unix is a time sharing
*system and in no stretch of the imagination can be "real-time".

I disagree 100 percent. There is a page and a half of notations in the 
1987 /usr/group Unix Products Directory under the heading "REAL TIME".
Masscomp, who makes (among other things) real time data acquisition
unix boxes, is one of the manufacturers listed. They supplied the real
time data acquisition equipment that was sent into space to monitor the 
(Halleys?) comet fly-by.

-Mike Marshall     hubcap@hubcap.clemson.edu    ...!hubcap!hubcap

larry@kitty.UUCP (Larry Lippman) (08/22/87)

In article <3438@islenet.UUCP>, richard@islenet.UUCP (Richard Foulk) writes:
> > Does anybody out there know anything about what kind of real-time
> > Unix systems are available? (for things like automation, 
> > control, robotics, etc...).
> 
> Why bother with real-time unix?
> 
> Dedicate some smaller processors, to the heavily time-dependant
> stuff, and let the unix system oversee the operation.  No sense
> getting mixed up with some funny/special version of unix if you
> don't have to.  And if you connect things together in a reasonable
> way problems should be easier to diagnose, and you won't be
> tying yourself to one particular vendor.

	The above advice is _exactly_ some of what my organization does
to apply standard Sys V UNIX versions to real-time applications.
	For example, for the past 3 years we have used 3B2's for
scientific instruments and process control applications.  We use slave
processors - in many cases simple 8051-based devices - to acquire data,
"time-stamp" it, and perform control functions.  These slave processors
all connect via high-speed serial lines.
	On the Intel Multibus machines (286-based, Intel 310/311) that
we use we run standard Intel XENIX 3.4, and use slave processor boards
to handle our external data acquisition and control functions.  These
slave processor boards communicate via DMA and have appropriate XENIX
drivers. 
	Intelligent and sometimes clever use of available UNIX functions
can be used to achieve what I jokingly call "quasi" real-time performance.
For example, use of system calls like plock(2), nice(2), along with
appropriate use of ipc functions (semaphores and shared memory) can
vastly improve performance of routines which are time-critical.
	I have looked at various real-time UNIX versions, and I do not
care for them in OUR applications.  Why?  Because these real-time versions
lack certain system calls and do NOT support many standard UNIX utilities.
I feel that the usefulness of UNIX as a multi-user, multi-tasking system
is that any user should be able to run what they want.  This is simply
not true on any real-time UNIX system that I have seen.  For example,
the last that I knew, there were NO real-time UNIX systems which would
support `vi'.  How can you have UNIX without `vi'?  1/2 :-) 
	As a serious example, if I have a chemical process control system
that is collecting data in real time, I feel that an engineer should be
able to log into a terminal and run any spreadsheet or other program he
wants with that data (at a lower priority, of course).  But I don't know
of any real-time UNIX that is not essentially bound to specifically
compiled application programs, some language support, and a simple editor.

<>  Larry Lippman @ Recognition Research Corp., Clarence, New York
<>  UUCP:  {allegra|ames|boulder|decvax|rutgers|watmath}!sunybcs!kitty!larry
<>  VOICE: 716/688-1231       {hplabs|ihnp4|mtune|seismo|utzoo}!/
<>  FAX:   716/741-9635 {G1,G2,G3 modes}   "Have you hugged your cat today?" 

rich@oxtrap.UUCP (K. Richard Magill) (08/22/87)

In article <8050@mimsy.UUCP> chris@mimsy.UUCP (Chris Torek) writes:
>In article <1678@leadsv.UUCP> rick@leadsv.UUCP (Rick Schneider) writes:
>>Real-time and Unix are, like army and intellegence, mutually exclusive
>>terms!
>A base canard.
>Seriously, real-time and full-blown-operating-system have a tendency
>to be, at least, mutually combative, but like most operating systems,
>if you work at it, you can get Unix out of the way, too.

I beg to differ.

On our Sequent Balance 8000 (with 6 nsc32032's (@10Mhz)), I can lock a
process on a processor and tell the scheduler to leave me alone.  What
can be more real-time?

K. Richard Magill	"lies keep people happy" - I94 west of detroit

gwyn@brl-smoke.UUCP (08/22/87)

In article <1951@kitty.UUCP> larry@kitty.UUCP (Larry Lippman) writes:
>But I don't know
>of any real-time UNIX that is not essentially bound to specifically
>compiled application programs, some language support, and a simple editor.

"Real-time" is a buzz word without a sufficiently precise meaning.
Many years ago, I made some relatively small changes to 6th Edition
UNIX to support memory-locked, preemptively-scheduled processes
without doing damage to the normal mode of system operation.
John Quarterman developed a high-throughput data acquisition scheme
using double-buffering in a user-mode process pair that took advantage
of the features I just mentioned, combined with an appropriate
device driver.  A small amount of hardware FIFO buffering on the
input channels really helped.  And of course, for highest throughput
we would write the data to raw disk.

I think our system qualified as "real-time", whatever that term
is supposed to mean.  Sure, we had to write some code, but no more
than we would have had to do for any operating system.  I've read
claims that UNIX is no good for "real-time" computing for many
years, and my impression is that that myth spread from the
collection of lies, half-truths, and misrepresentations that were
introduced in the ARPA VMS-vs-UNIX debate back when the standard
ARPAnet host was being changed from a DECsystem-20 to a VAX.
(There was one famous article in particular, but I forget the
author's name.  For a couple of years one kept encountering
obvious parroting of that article.)

Now it probably IS true that one would have to work harder to use
(for example) 4.3BSD as the basis of a real-time application like
the data acquistion one I described.  That's simply because the
system has gotten a lot more complex over the years (with
addition of virtual memory, network protocols, etc.), so ensuring
a suitable operating environment for real-time processes is
harder.  The main key to getting decent real-time performance out
of any UNIX variant (while not hurting its normal operation) is
to make sure its scheduler offers suitable support.  Most UNIX
schedulers I've encountered so far need work in that area (sorry, Ken).

chris@mimsy.UUCP (Chris Torek) (08/22/87)

>In article <8050@mimsy.UUCP> I claimed:
>>... like most operating systems, if you work at it, you can get Unix
>>out of the way, too.

In article <318@oxtrap.UUCP> rich@oxtrap.UUCP (K. Richard Magill) writes:
>On our Sequent Balance 8000 (with 6 nsc32032's (@10Mhz)), I can lock a
>process on a processor and tell the scheduler to leave me alone.  What
>can be more real-time?

What do you think `lock[ing] a process on a processor and tell[ing]
the scheduler to leave [it] alone' is doing?  This took quite a
bit of work.  Fortunately, Sequent has already done most of it.

Masscomp also provides Unix systems with most of the work done
already, and I am sure there are other vendors who have managed to
`get Unix out of the way' too.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
Domain:	chris@mimsy.umd.edu	Path:	seismo!mimsy!chris

decot@hpisod2.HP.COM (Dave Decot) (08/23/87)

> 	I have looked at various real-time UNIX versions, and I do not
> care for them in OUR applications.  Why?  Because these real-time versions
> lack certain system calls and do NOT support many standard UNIX utilities.
> I feel that the usefulness of UNIX as a multi-user, multi-tasking system
> is that any user should be able to run what they want.  This is simply
> not true on any real-time UNIX system that I have seen.  For example,
> the last that I knew, there were NO real-time UNIX systems which would
> support `vi'.  How can you have UNIX without `vi'?  1/2 :-) 

All HP-UX systems support all SVID2 base system calls, many 4.2BSD
system calls, and `vi', since HP-UX is SVID Version 2 conforming.

In addition to the real-time features I described in an earlier response,
the new HP 9000/800 systems support sendmail, 4.2BSD job control and signals,
System V accounting, shell layers, X windows, SQL, IMAGE, the ARPA/Berkeley
networking facilities, and much more.  Various versions of Emacs are
available as contributed software.

> 	As a serious example, if I have a chemical process control system
> that is collecting data in real time, I feel that an engineer should be
> able to log into a terminal and run any spreadsheet or other program he
> wants with that data (at a lower priority, of course).  But I don't know
> of any real-time UNIX that is not essentially bound to specifically
> compiled application programs, some language support, and a simple editor.

The example you describe is easy on HP-UX (assuming chemctrl is properly
programmed, locks itself in memory, uses O_NDELAY on appropriate files, etc.):

    prealloc 10000000000 /tmp/chem     # reserve 10 Gigabytes fast file space
    rtprio 4 chemctrl > /tmp/chem &    # run chemctrl with realtime priority 4
    chemthink /tmp/foo > chem.123      # run data munger at timeshare priority
    lotus123 chem.123		       # run spreadsheet at timeshare priority

Disclaimer:
    Information purposes only.  Not a product offering/advertisement.
    I believe this stuff to be correct, but if there's money involved,
    ask a local HP representative.

Dave Decot
Hewlett-Packard
hpda!decot

berger@datacube.UUCP (08/24/87)

We have implemented a scheme where we  control our  "real time" image
processing  hardware with  a Sun  Workstation.   It has  to handle at
least 60Hz frame rate interrupts to dynamically  update the registers
of  our  image  processing  hardware.    We  did  this  by creating a
"programmable"  interrupt handler.   Our  user program  can send down
instructions to the driver to tell it what to do when it gets certain
interrupts.  

This was very specific for our hardware but it works very well.  What
I'd like to see in terms of evolution of  Unix would  be some ability
to  create  a  unix  kernel /  utility package  that is  tuned for an
application.    IE  the  ability  to  select  features,  options  and
utilities and then build a dedicated version with  just those things.
Thus you could create  embeded applications  with just  the amount of
baggage you need.  

The major goal of this is to have a target kernel that could possibly
be prommed and yet  the programmer  can expect  a c  runtime / system
environment that they are pretty used to.  

For PROM based embedded systems, we are currently using  OS-9 in such
a way, we mostly edit, cross-compile on our Unix systems and download
to our OS-9 systems.  OS-9 has some features that would be  nice in a
targetable  "Unix"  such  as shareable  libraries that  link with the
executables at run-time, executables and the  operating system itself
is promable, does not require an MMU, etc.  Once we have debugged the
software, we can burn it into PROM.  

We've  made  OS-9  look  as  much  as  possilbe  as  a  unix run time
environment.  Ideally we could be  cross compiling  to an environment
that had a POSIX compatable run time environment that maybe had a few
restrictions to allow it to be prommed and not require an MMU.  

It would also be nice to be able to attach interrupts to user code
and a standard way to map physical addresses into user space.


				Bob Berger 

Datacube Inc. Systems / Software Group	4 Dearborn Rd. Peabody, Ma 01960
VOICE:	617-535-6644;	FAX: (617) 535-5643;  TWX: (710) 347-0125
UUCP:	berger@datacube.COM,  ihnp4!datacube!berger
	{seismo,cbosgd,cuae2,mit-eddie}!mirror!datacube!berger

kai@ihlpa.ATT.COM (Irwin) (08/24/87)

In article <3138> rick@leadsv.uucp (Rick Schneider) writes:
> 
> Real-time and Unix are ... mutually exclusive terms! Unix is a time sharing
> system and in no stretch of the imagination can be "real-time".

Unix rtr (formally DMERT) is a realtime unix system designed to run on
a 3B20 Duplex processor. It is a telco controller and has been in use
since "Bell System" days. If you make a long distance call though AT&T
it is more than likely being routed by a real time Unix system, as well
as several million lines handled by the BOCS.

UNIX is regesterd trade mark of AT&T

AT&T stands for American Telephone and Telegraph

telephone switches REQUIRE real time operating systems

given the above three statments (all common knowlege in the industry, or at
least to 90% of the users of the net) you can pretty much assume there is
a real time unix somewhere within AT&T, Think Rick!


Ken A. Irwin
AT&T Bell Labs, Naperville (you know the place were they develop real time unix
                            telephone switches?)
IHP 1A332
(312) 416-4485

inra@axis.fr (Inst. Natl. Rech. Agronomique) (09/02/87)

Does anyone have a driver for the laser printer Canon LBP8II?
Thanks in advance