THANKS, Stuart and GN DeSouza for the table posted comparing RTL & RTAI in
such a basic and cogent way!  A first question about it:
        Under the column 486, RTL v2 with linux kernel 2.2.x reads "n" =>
presumably meaning this does not run on 486's.  But is that true?  I've run
miniRTL 2.0 derived directly from RTL 2.0, with kernel 2.2.13 on a Pentium I.   

Either way, this table would be great in THE RT MANUAL, with a change in
header(s) so as to include 586es.  I could help with the manual too, but
again as noviate.

Dr. S.C.


At 02:54 PM 16-11-1999 +0000, you wrote:
>Hi Gloria,
>
>I have forwarded a table previously posted on the RTL list.
>
>Stuart.
>
>Glòria wrote:
>> 
>> Hello:
>> 
>> Is there any document about the differences betwen RTL and RTAI?
>> 
>> Thanks in advance.
>> 
>> 
>> 
>> --
>> Glòria Hernández Ballester
>> 
>> e-mail:  [EMAIL PROTECTED]: [EMAIL PROTECTED]
>Return-Path: [EMAIL PROTECTED]
>Received: from rtlinux.cs.nmt.edu (rtlinux.cs.nmt.edu [129.138.6.62]) by
hinge.mistral.co.uk (8.8.5/8.6.9) with ESMTP id TAA15859; Thu, 7 Oct 1999
19:46:31 +0100
>Message-Id: <[EMAIL PROTECTED]>
>Date: Thu, 7 Oct 1999 14:35:38 -0500 (EST)
>From: Guilherme Nelson DeSouza <[EMAIL PROTECTED]>
>Reply-To: Guilherme Nelson DeSouza <[EMAIL PROTECTED]>
>Subject: [rtl] Table, API
>To: [EMAIL PROTECTED]
>MIME-Version: 1.0
>Content-Type: TEXT/plain; charset=us-ascii
>
>Content-MD5: rhcKNx2XyqRpurLqxAPS+g==
>
>
> Again, thanks to those who sent corrections/suggestions.
> 
> The table and API-differences below are getting smoother.
>I hope it has converged to something useful to other people
>in this list.
>
> As we all (probably) expected, the differences between RTL
>and RTAI are NOT that many (refer to RTLv2 and RTAIv6). As
>a matter of fact, in my opinion the "only" discussion in this
>list should be around POSIX compliance, once that this should
>be the common denominator and, at the same time, the unifier
>between both implementations. Other than that there are some
>"unimportant" details such as unified header files, similar
>installations, etc. But yet, that should come naturally after.
>
>  
>    Guilherme
>    
>    
>---------------------------------------------------------------------------
-------
>|     | I | S | Sched.  | S |Po-  |pthre|F   | Shr| FP | GPL | Ker-  | 486
| PPC |
>|     | P | e |    |    | M | six |    -| I  | Mem|    |     |  nel  |
|     |
>|     | C | m |Per.| OS | P |     |ads  |  FO|    |    |     |       |
|     |
>-------------------|-------------------------------------------------------
-------
>|     |   |   |    |    |   |     |     |    |    |    |     |       |
|     |
>| RTL | o | o | w/ | w/ | n |  *  |  n  | y  | o  | y  |  y  | 2.0.x |  y
|  n  |
>| v1  |   |   |8254|8254|   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    |    |   |     |     |    |    |    |     |       |
|     |
>---------------------------------------------------------------------------
-------
>|     |   |   |    | w/ |   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    |8254|   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    | +  |   |     |     |    |    |    |     |       |
| in  |
>|     |   |   | w/ |TSC |   |     |     |    |    |    |     |       |
|     |
>| RTL | o | o |    |    | y |  *  | **  | y  | o  | y  |  y  | 2.2.x |  n
|deve-|
>| v2  |   |   |8254|APIC|   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    | in |   |     |     |    |    |    |     |       |
|lopm.|
>|     |   |   |    |SMP |   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    |    |   |     |     |    |    |    |     |       |
|     |
>---------------------------------------------------------------------------
-------
>|     |   |   |    |8254|   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    | in |   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    |UP -|   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    |SMP |   |     |     |    |    |    |     |       |
|     |
>|     |   |   | w/ | &  |   |     |     |    |    |    |     |       |  y
|     |
>| RTAI| y | y |    |MUP | y |  *  | **  | y  | o  | y  |  y  | 2.2.x |
|  n  |
>| v.6 |   |   |8254|    |   |     |     |    |    |    |     |       |(for
|     |
>|     |   |   |    |APIC|   |     |     |    |    |    |     |       |1
CPU|     |
>|     |   |   |    | in |   |     |     |    |    |    |     |
|only)|     |
>|     |   |   |    |SMP |   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    | &  |   |     |     |    |    |    |     |       |
|     |
>|     |   |   |    |MUP |   |     |     |    |    |    |     |       |
|     |
>---------------------------------------------------------------------------
-------
>
> y - embeded in the RT modules
> n - not implemented
> o - optional (it can be "insmod'ed" separately)
> * - in RTAI, a POSIX lite API is implemented on top of the original API
>     in RTL, the original API is implemented on top of a POSIX lite API.
>** - RTAI - dynamic thread creation, conditional variables and priority
>            inheritance mutex,
>     RTL - static thread creation.
>
>
>Original API comparison
>=======================
>
>  What follows is a comparison btw the two original APIs (RTAI
>and RTLv1). We are not listing the POSIX (lite) API present in
>both recent releases of RTAI and RTL.
>
>
>set up peridic mode
>------------------                 
>
>RTL:
>       RTIME task_ticks;
>        task_ticks = (RT_TICKS_PER_SEC/FREQ);
>       rtl_set_periodic_mode(task_ticks);
>
>RTAI:          
>       RTIME task_ticks;
>       rt_set_periodic_mode(void);
>       task_ticks = nano2count(1000000000/FREQ)
>        start_rt_timer(task_ticks)
>
>
>Tell Linux you will be using the FPU
>--------------------------------------        
>
>RTL:
>        ??
>
>RTAI:
>       rt_linux_use_fp(1)
>
>
>initialise a task
>-----------------
>
>RTL:
>        rt_task_init(   RT_TASK *task,
>                       void (*fn)(int),
>                       int data,
>                       int stack_size,
>                       int priority )
>
>        If it uses the FPU, add:
>
>        rt_task_use_fp( RT_TASK *task, 1 )
>
>RTAI:
>       rt_task_init(   RT_TASK *task,
>                        void (*fn)(int),
>                       int data,
>                       int stack_size,
>                       int priority,
>                       int uses_fpu,
>                       void (*signal)(void) )
>                               
>
>
>set a (periodic) task running
>-----------------------------
>
>RTL/RTAI:
>       
>       rt_task_make_periodic( RT_TASK *task,
>                               RTIME start_time_ticks,
>                               RTIME period_ticks)
>
>
>suspend a running task until the next tick
>-------------------------------------------
>
>RTL:
>       rt_task_wait(void)
>
>RTAI:
>       rt_task_wait_period(void)
>
>
>
>cleanup/stop a task
>--------------------
>
>RTAI:          stop_rt_timer(void)
>RTL/RTAI:      rt_task_suspend(RT_TASK *task)
>               rt_task_delete( RT_TASK *task)
>  
>
>create a fifo
>--------------
>
>RTL:
>               rtf_create(unsigned int fifo, int fifo_size)
>                         
>RTAI:
>               rtf_create_using_bh(unsigned int, int size, 0)
>
>NOTE: both can be used with the simple rtf_create, but the behaviour is
>different.  Under RTAI, a user task will only be woken up at the next
>run of schedule (this is an intended feature).  To get the same effect
>of waking up as soon as possible, use the above code.
>
>
>put data to a fifo
>-------------------
>
>RTL/RTAI:
>               rtf_put(unsigned int fifo, void *buf, int count)
>
>
>get data from a fifo
>----------------------
>
>RTL/RTAI:
>               rtf_get(usigned int fifo, void *buf, int count)
>
>
>
>destroy a fifo
>---------------
>
>RTL/RTAI:
>               rtf_destroy(usigned int fifo)
>
>
>
>Filename comparison
>===================
>
>Another problem is the name and location of files. This means that
>Makefiles and code has to be changed to locate the different include
>files. 
>
>Header names
>-----------
>
>RTL:
>       rtl_fifo.h, rtl_sched.h
>
>RTAI:
>       rtai_fifos.h, rtai_sched.h
>
>Note: in addition you must also include rtai.h first for RTAI.
>
>
>
>
>           -------------< G. N. DeSouza >-------------
>           ---------< [EMAIL PROTECTED]>---------
>           --< http://rvl1.ecn.purdue.edu/~gnelson >--
>
>
>
>
>------------- End Forwarded Message -------------
>
>
>
>
>           -------------< G. N. DeSouza >-------------
>           ---------< [EMAIL PROTECTED]>---------
>           --< http://rvl1.ecn.purdue.edu/~gnelson >--
>
>
>
>--- [rtl] ---
>To unsubscribe:
>echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
>echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
>----
>For more information on Real-Time Linux see:
>http://www.rtlinux.org/~rtlinux/
>
>

--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to