From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,d93ab30a5dbd6535,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1993-03-10 11:20:07 PST Path: sparky!uunet!gatekeeper.us.oracle.com!decwrl!elroy.jpl.nasa.gov!dimsum!steele From: steele@dimsum.jpl.nasa.gov (Rob Steele) Newsgroups: comp.lang.ada Subject: Questions about POSIX Date: 10 Mar 1993 19:05:47 GMT Organization: Jet Propulsion Laboratory, Pasadena, CA Message-ID: <1nle6bINN4pc@elroy.jpl.nasa.gov> NNTP-Posting-Host: dimsum.jpl.nasa.gov Date: 1993-03-10T19:05:47+00:00 List-Id: 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. **********************************************************************