Re: Lathe & Mill





Richard wrote:

>Hello Paul, Jon
>
>Wednesday, November 6, 2002, 8:57:39 PM, you wrote:
>
>P> Glad to see you finally made it on to the list.
>
>Been here ages mate :)
>
>P> emc/src/drivers/vti.c and exvtimot.c,
>
>I'm getting the idea, I'm just relieved there isn't an OS device
>driver layer that has to be authored too.
>  
>
There most certainly is not any OS layer to the real-time section of 
EMC, as real-time
programs run without any OS.  These programs are in an environment much 
like an
embedded system, running in x86 real mode, so they have the same 
priviledges and
wide-open hardware as an OS kernel.  This is of course dangerous, but as 
long as you
test it all well, quite reliable.

The non-realtime Linux side of EMC does run under the Linux OS, but 
access to hardware,
like the parallel ports, is made available at the hardware level with 
one system call that
lets a program run as user root open a window on selected I/O ports.

>How does the correct hardware handling layer get linked in, or
>does Linux do live linking?.
>  
>
Linux has shared libraries, which are used mostly for system calls and 
things like X-windows
support.  The linking together of modules in EMC is done mostly through 
a message passing
interface.  So, these parts are not dynamically linked, but are separate 
processes in separate,
protected, memory space.  Linux (as with all Unix derivatives) has 
sophisticated techniques
to communicate between processes.  One advantage to this is that the 
separate components
can be run on separate, networked, systems with minimal change to the 
code.  (This may
not be very efficient for things that need near real-time response, 
however.)

Communication between the real-time and Linux sides of EMC is done with 
message-passing
schemes across the Linux-RT "barrier".  This is implemented at the 
lowest level by shared
memory and/or RT-FIFOs, the function of which is supplied by the RT 
patches to the kernel.
NML is a NIST library that implements the message passing scheme within 
these.

Jon

>  
>




Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact