I graduated from a study in Technical Computer Science in 1999 with a bachelor degree. Prior to this, I was active as a programmer in the hobby computer scene. My professional career started in 1994 for a large printer manufacturer in the Netherlands. Since 1999, I am working on non-real-time printer software. During 2001, I became active in the field of real-time printer control software, with a focus on operating systems, device drivers, and timing. Starting in 2003, I worked on using a single platform for the combined operation of real-time printer control and non-real-time printer control software for data processing/throughput.
First we started doing this while running on LynxOS from Lynuxworks. Due to continuous problems with some 3rd party software that did not run well on this RTOS (It was not designed for LynxOS, but could run on it due to the Linux ABI compatibility layer of this LynxOS), we started searching for an alternative in early 2005. A logical step was to make the switch to Linux, but Linux was not real time enough at that time. We started looking at the preemptive 2.4 kernels, but migrated soon to the Montavista-4 2.6.10-RT kernel. It turned out to be a good route to go. But do to increasing hunger for CPU-speed and the lack of Priority Inheritance on Mutexes, we moved to newer kernels and newer CPU/chipsets to run on. Eventually we ended up using Fedora Core 6 together with a 2.6.20-rt8 kernel on a Core-2-Duo(E6300) system with a Intel 945 chipset. This was the 1st kernel that really ran stable on our boards with our real time requirements and data throughput requirements, without having to patch a lot of things in the kernel ourselves. Eventually we get equal real time results on these boards as with LynxOs and VxWorks without loosing much data-processing/throughput capabilities, and with the advantage of the much more complete set of development tools, recent hardware support etc.
During the years I found out that very little was written on how to write RT-applications on Linux, especially if they have to run beside heavy non-RT applications. This is the reason why I shared some of the basics on HOWTO:_Build_an_RT-application and the Frequently_Asked_Questions .
Remy Böhmer (linux AT bohmer DOT net)