Chapter 5. Summary

Hardware

Multi-processor

Scheduling

Concurrency

Linux

Alpha, ARM, i386, MIPS, PowerPC, Sparc, SuperH, Etrax, m68k, PA-RISC

Yes

SCHED_FIFO, SCHED_RR, SCHED_OTHER

UNIX-processes &

Pthreads

RTLinux

i386, PPC, ARM

Yes

SCHED_FIFO

Pthreads

RTAI

i386, MIPS, PPC, ARM, m68k-nommu

Yes

Fixed priority

Lightweight processes

RTEMS 4.5+

M68k, ColdFire, SuperH, i386, MIPS, i960, PowerPC, SPARC, AMD A29K. PA-RISC

Static allocation

SCHED_FIFO, SCHED_RR, SCHED_OTHER

Pthreads

QNX

I386, ARM, MIPS, PowerPC, SuperH

Yes

SCHED_FIFO, SCHED_RR, SCHED_OTHER

UNIX-processes, Lightweight processes, Pthreads

VxWorks 5.x

m68k/CPU32/ColdFire/PowerPC, i386, ARM, SuperH, MIPS

Optional

Fixed priority, Rodun-robin

Lightweight processes

LynxOS

i386, m68k, PowerPC, ARM, SPARC, PA-RISC

Yes

FIFO, Priority Quantum, Round-Robin, Non-preemptive

UNIX-processes &

Pthreads

Priorities

lower- higher

Memory protection

Dynamic memory

Inter-process communication

Linux

(0-100)

Yes

Yes

Semaphores, Mutexes, Condition-var., shared-mem, signals, pipes.

RTLinux

(0-1000000)

No

No

Semaphores, Mutexes, Condition-var., FIFO

RTAI

(0x3fffFfff-0)

No

Yes

Semaphores, Mutexes, Condition-var., FIFO, Mailbox, shared-mem, net_rpc, Pqueues.

RTEMS 4.5+

(255-1)

(254-1) Posix

No

Yes

Semaphores, Mutexes, Condition-var., Pqueues, Events.

QNX

(0-31)

Yes

Yes

Semaphores, Mutexes, Condition-var., Barriers, Atomic operations, rd/wr-locks, Pqueues, shared-mem, FIFO.

VxWorks 5.x

(255-0)

No

Optional

Semaphores, Mutexes, Message, RTSignals,

LynxOS

(0-255)

Yes

Yes

Semaphores, Mutexes, shared-mem, Pqueues, signals, pipes, Condition-Var.

Priority inversion control

Time

resolution

Timers

Low level programming

Linux

None

Configurable (HighResTimers)

POSIX timers

No interrupt programming.

RTLinux

Immediate ceiling

Hardware dependant

None

Full control HW

RTAI

Inheritance

Hardware dependant

None

Full control HW

RTEMS 4.5+

Inheritance &

Immediate ceiling

Hardware dependant

POSIX timers

Full control HW

QNX

Immediate ceiling

Configurable

POSIX timers

Interrupts can be handled by user processes.

VxWorks 5.x

Inheritance

Configurable

Watchdog timers, POSIX timers

Full control HW

LynxOS

Inheritance

Configurable

POSIX timers

POSIX-style threads of execution within the kernel for interrupt handling.

QoS

Network

Filesystem

Linux

FIFO, CBQ, CSZ, ATM, PRIO, RED, SFQ, TLE, TBF, GRED, Diffserv, Ingress, RSVP

IP, UDP, TCP, SLIP, PPP, ICMP, DHCP, RARP, RARP, TFTP, RPC, FTP, HTTP

ReiserFS, ext2, ext3, NFS, CIFS, ADFS, FAT, VFAT, NTFS, CRAMFS, ISO9660, MINIX, QNX4, ROM, JFS, XFS, Flash

RTLinux

None

None

None

RTAI

None

IP, UDP

None

RTEMS 4.5+

None

IP, UDP, TCP, SLIP, PPP, ICMP, DHCP, RARP, TFTP, RPC, FTP, HTTP, CORBA

IMFS, DOSFS/FAT

QNX

None

IP, UDP, TCP, ARP, ICMP, IGMP, QNET

RAMFS, QNX4, DOS, ISO9660, ext2, NFS, CIFS, Flash

VxWorks 5.x

None

TCP/IP IP, UDP, TCP, IGMP, ICMP, ARP RIP 1/2 SLIP, CSLIP, PPP BOOTP, DNS, DHCP, TFTP FTP, RLOGIN, RSH, TELNET

FAT, NFS, raw, TrueFFS

LynxOS

None

IP, UDP, TCP, ICMP, IGMP, ARP, RARP, DHCP, NAT, RPC, NTPv3, Raw, Zebra routing, TFTP

Lynx Fast File system, ISO9660, NFS, RAMFS.

Debug

Languages

API compatibilitiy

Linux

GDB, DDD,

Insight,

System debugg, LTT

C, C++, ADA, Java,

POSIX 1003.1,

VxWorks, pSOS

RTLinux

Simple trace, GDB

C, C++

POSIX 1003.1c

RTAI

KGDB

C

Custom,

POSIX 1003.1b

RTEMS 4.5+

GDB, DDD,

Debug over: ethernet, serial, BDM

C, C++, ADA

RTEID/ORKID,uITRON 3.0, POSIX 1003.1b

QNX

GDB, memory overrruns.

C, C++, Java

POSIX 1003.1, POSIX 1003.1b

VxWorks 5.x

GDB, Debug over: ethernet, serial, WindView, Trace

C, C++

Propietary (VxWorks),

POSIX 1003.1, POSIX 1003.1b

LynxOS

GDB, Insight, Debug over: ethernet, serial

C, C++, ADA

Propietary, POSIX.1/.1b/.1c, Unix BSD 4.3. ABI compatibility with Linux 2.4