comp.lang.ada
 help / color / mirror / Atom feed
* Questions about POSIX
@ 1993-03-10 19:05 Rob Steele
  0 siblings, 0 replies; only message in thread
From: Rob Steele @ 1993-03-10 19:05 UTC (permalink / raw)


REQUEST BY BB USERS:

I have been asked by my manager to provide a summary of the impacts
of moving the system we have built to be POSIX compatible. In order
to not shoot myself in the foot in too many places I thought I might
put out my initial understanding of these impacts on this and a couple
of other bb's. Any comments or criticisms would be appreciated.

The system will have built is a robot control system (MOTES),
written in Ada, using the Verdix Ada compiler. The target hardware
are multiple Huerikon 68020's in a VME chassis. Parallel, serial,
and socket interfaces abound.

Please respond to me via the bb or to steele@telerobotics.jpl.nasa.gov 

                                        Rob Steele 
 


DISCLAIMER:
1. I need to emphasize that I am quite unfamiliar with POSIX so anything
   I say should be taken the point of view of a novice who is trying
   to learn more.
2. Any comments about future products of a particular vendor are only
   my best guess at what is practical for the future. There are not
   intended as predictions of future behavior of a company.
3. My references to vxWorks, vadsWorks, and MS DOS are intended only to
   clarify my questions.

START OF MY SUMMARY:

In order to respond to your questions about POSIX I have created this
file. To begin with I will take the questions I have received from
Paul and begin answering them at the bottom of this file. New question
and their answers will be appended to the end of this file. In order
to facilitate communication between the team members I will be sending
new portions of this file as they are added. This file will live in
the directory /home/steler_ops/doc/design/remote. It's name is
report.posix. For ease of searching each question is separated by a
line of 'stars', such as *********************************.

Before beginning to answer any direct question I will start by showing
how POSIX fits in the general models of computer systems.

The layered model for software generally has the following form:

		   |---------------------|
		   |  APPLICATION CODE   |
		   |---------------------|
		   |  OPERATING SYSTEM   |
		   |---------------------|
		   |BOARD SUPPORT PACKAGE|
		   |---------------------|
		   |  PHYSICAL HARDWARE  |
		   |---------------------|
		
Sometimes this model is represented as a series of concentric circles.
I prefer this representation because it shows that in the nominal
case one level interacts with the one right below it. But, as the
arrows below indicate, it is possible, to skip a level.

		   |---------------------|
		+--|  APPLICATION CODE   |--+
		+  |---------------------|  +
		+  |  OPERATING SYSTEM   |  +
		+  |---------------------|  +
		+  |BOARD SUPPORT PACKAGE|<-+
		+  |---------------------|
		+->|  PHYSICAL HARDWARE  |
		   |---------------------|

Examples of real system that fit the above diagram are 1) a PC system
with the program Kermit running and 2) the VME/vxWorks environment.
An additional extension is required for the VME/vxWorks/vadsWorks
environment.


		   |---------------------|
		   |       KERMIT        |
		   |---------------------|
		   |       MS DOS        |
		   |---------------------|
		   |        BIOS         |
		   |---------------------|
		   |  386 MOTHER BOARD   |
		   |---------------------|


		   |---------------------|
		   |  APPLICATION CODE   |
		   |---------------------|
		   |       vxWorks       |
		   |---------------------|
		   |     ROM KERNEL      |
		   |---------------------|
		   |   HUERIKON 68020    |
		   |---------------------|

The MOTES system as built on top of the Verdix/Wind River software
(vadsWorks/vxWorks) has the following form:

		   |---------------------|
		   |  APPLICATION CODE   |
		   |---------------------|
		   |  SHARED MEMORY I/F  |
		   |---------------------|
		   |      vadsWorks      |
		   |---------------------|
		   |       vxWorks       |
		   |---------------------|
		   |     ROM KERNEL      |
		   |---------------------|
		   |   HUERIKON 68020    |
		   |---------------------|

Note that the 'SHARED MEMORY I/F' layer from the point of view of the
operation system just application code, but we use it as a formal
layer in our software model. This layer separated our application code
from any of the details of the actual implementation of the shared
memory interface.

**********************************************************************
Question 1: What is the most likely model for MOTES under an POSIX/Ada 
	    environment?

		   |---------------------|
		   |  APPLICATION CODE   |
		   |---------------------|
		   |  SHARED MEMORY I/F  |
		   |---------------------|
		   | ADA POSIX BINDINGS  |
		   |---------------------|
		   | VERDIX ADA BINDINGS |
		   |---------------------|
		   |  WIND RIVER POSIX   |
		   |---------------------|
		   |     ROM KERNEL      |
		   |---------------------|
		   |   HUERIKON 68020    |
		   |---------------------|

The Ada POSIX binding are available for approximately 60 dollars at
the present time. Wind River is currently working on a POSIX compliant
implementation.

**********************************************************************
Question 2: Do we jump between the layers and why?

Yes. During the time frame of our development on MOTES the vadsWorks
and vxWorks interprocessor semaphores are not available. (They will
be released later this year.) So interprocessor semaphores were
created using the Test-and-Set instruction. This is a direct interface
from the 'SHARED MEMORY I/F' layer to the machine instruction.

**********************************************************************
Question 3: What parts of POSIX are relevant to robotic systems?

POSIX is a definition of a Portable Operating System Interface.
Its relevance to a robotic system is the same way any operating
system is relevant. Any of the code of the robotic system that
uses or relies on the operating system will have the same relationship
with POSIX.

**********************************************************************
Question 4: How does POSIX impact our current serial communication?

None. Our current implementation of serial interfaces is directly with
the hardware device via the addressing scheme as defined by the VME
standard.

**********************************************************************
Question 5: How does POSIX impact our current parallel communication?

None. Our current implementation of parallel interfaces is directly with
the hardware device via the addressing scheme as defined by the VME
standard. No dependence on the operation system is made.

**********************************************************************
Question 6: How does POSIX impact our current socket communication?

Some impact in socket communication. Sockets are a part of the non-real
time POSIX there are not considered fast enough for real-time
applications. The networking group of POSIX is working on real-time
extensions to the socket facilities. Thus the final version of real-time
POSIX will more than likely include these extensions, there exact
form is not finalized at this time.

Thus, we could continue to use our socket interfaces, with some
parameter adjustment or one could use the real-time extensions when
they become available. 

**********************************************************************
Question 7: How will file I/O be affected under a Ada/POSIX environment?

None. All of the file I/O done in MOTES is done using the Ada I/O
specification. Any implementation of Ada that runs on top of
POSIX will be required by the Language Requirements to implement
the Ada I/O specifications. Thus, there is not change to the MOTES
Ada code.

**********************************************************************
Question 8: How does POSIX impact the shared memory communication as
	    currently implemented in MOTES?

None. Because the semaphores used in the shared memory
paradigm were constructed from the basic Test-and-Set instruction
there cannot be any impact due to POSIX. It might be desirable to
change the from using the inhouse built semaphore to using the
POSIX supplied semaphore structure.

**********************************************************************
Question 9: How will communication with multiple devices, such as,
	    multiple robotic manipulators, cameras, force torque
	    sensors, etc. under POSIX?

Serial and parallel devices would not be affected. See questions 
4 and 5. Devices that interface via shared memory, such as that
supported by a Bit-3 would not be affected by POSIX.

**********************************************************************
Question 10: How does the implementation of Robotic Control Language
	     affected by POSIX. (Note the Robotic Control Language
	     would itself be implemented in Ada.)

As long as the implementation is strictly done in Ada, there is no
impact by the underlying POSIX O/S.

**********************************************************************



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1993-03-10 19:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1993-03-10 19:05 Questions about POSIX Rob Steele

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox