Communication Architecture |
| Submitted by ntd on Wed, 2009-07-29 11:56 |
Table of Contents
Components
amino
General utilities, ie linear algebra, memory management, kinematics
ach
Publish-Subscribe IPC. Sends byte-array messages between process on the same or separate machines. Independent of other packages. Status: Core routines formally verified. Initial support for duplicating channels over the network.somatic
Message definitions and routines that layer protobuf over ach. Daemon-management startup, logging, and debugging support.Protocol Buffers
An Interface Description Language (IDL) with code generator for converting native types to/from byte arrays. More pages:Drivers
The userspace component for hardware drivers may be implemented using achmsg. A driver should define the messages that it would like to send and receive, then provide a daemon program that will communicate those message on ach channels and perform the appropriate actions on the hardware device.What this is Not
- A Build System (already have make)
- A Package Manager (already have apt)
- A scripting language (already have sh, python, and lisp)
- A portable runtime (already have POSIX)
- An Operating System (that would just be silly)
Glossary
- package: a collection of software that is a somewhat independent module. Same as in linux/bsd package managers.
- channel: grouping unit for frames in ach. Kind of like a unix pipe or message queue with multiple senders and receivers.
- ach frame: the byte arrays that ach will send as an individual unit
- daemon: same as in unix
- process: same as in unix







