Linux and "realtime", practical applications and experience (RT.PREEMPT vs Xenomai vs RTAI vs RTL(?) vs etc.)


#1

Howdy!

I wanted to start a discussion on Linux and “realtime” (I’ll omit the quotes now on, but I wanted to emphasize this term is very contextual) which I think could benefit just about everybody/anybody targeting Linux as a platform for musical or any time-sensitive application development.

Personally, I have experience with the Linux RT PREEMPT patches which I’ve been applying to my projects for a while on x86 systems. The immediate benefit of those patches to me, as an application developer, is that my software development workflow remains uninterrupted–I can use all of my familiar POSIX/Linux api’s for signaling, interrupts, shared memory, cpu affinity, etc etc.

But I’ve been considering a smaller platform (x86) for a personal project I’m working on and don’t want to leave the other options unconsidered, my cliche objective is that I’d really like to free up as much deterministic power from the system hardware/software as I can. A perceived drawback for me are the abstraction layers interacting with a microkernel in the other solutions–having to relearn the basics of a major extension to Linux isn’t something I’m afraid of as I like learning about this kind of stuff. But I’d rather be developing applications than spending my time comparing/contrasting software platforms when I know I’ll be disregarding 66% of the knowledge I pick up. :slight_smile:

So far I’ve checked out…

Xenomai:
https://xenomai.org/
http://www.cs.ru.nl/lab/xenomai/
http://www.cs.kun.nl/J.Hooman/DES/RealtimeLinuxBasics.pdf

RTAI:
https://www.rtai.org/

Is RTLinux still around? https://www.rtlinux.org redirects to WindRiver Linux at https://www.windriver.com/products/linux/

RT PREEMPT patches:
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/preemptrt_setup
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/application_base
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/memory#memory-locking
https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/memory#stack-memory-for-rt-threads

Subjective and objective opinions are both welcome, but I’d rather that you’ve had practical or hands-on experience with the platform you’re sharing about. :wink: Thank you so much for your time in advance!


#2

Jan Altenberg of linuxtronix GmbH makes a pretty strong case for the RT PREEMPT patches: