RTCoreBSD Hard Real-Time Operating System

FSMLabs RTCoreBSD systems include a hard real-time POSIX RTCore kernel that runs BSD as an application (via their two kernel technology). As a result RTCoreBSD extends BSD to handle real-time applications like device control, network routing, video, robotics, and factory automation. All standard BSD applications run as efficiently as usual. The intention of the RTCore design is to add real-time scheduled threads and handlers to the toolbox of a POSIX programmer, just as a database system adds database programs to the toolbox. By retaining UNIX as a platform for non-real-time applications, FSMLabs builds on standards instead of requiring niche “sort of POSIX” RTOS solutions. RTCoreBSD provides the same real-time environment as RTLinux – with the only change being the substitution of BSD for Linux.

FSMLabs’ BSD customers, like Juniper and Caymas, get performance that used to require ASICs on commodity hardware with complete software control. And they do not have to sacrifice the legendary high performance networking of FreeBSD or the flexibility and compactness of NetBSD.

Embedded systems development is an inherently risky and costly business. FSMLabs license and support costs are low enough to be a small part of the cost of an embedded product. And their technology and support is designed to reduce customer risks.

Key benefits:

  • BSD UNIX offers a standard platform, standard networking, a widely known standard API (with many experienced programmers available), and a large competitive market for utilities (like databases). And support for BSD development is shared by many companies across a wide range of industries.
  • RTCoreBSD real-time is decoupled from the non-real-time system so that non-real-time system load cannot cause expensive surprises during the development process (Who wants to hear “it worked well enough with the prototype, but when the application was nearly ready to ship, it started dropping packets?”).
  • Top notch support from FSMLabs ensures that your development team can focus on your product, and not get pulled into the download/build/tinker model that wastes time and money.

RTCore real-time performance rests on the use of FSMLabs’ patented technology to take over control of interrupts from BSD. Real-time threads scheduled by RTCore cannot be preempted or even delayed by BSD processes or the BSD kernel. Real-time interrupt handlers installed under RTCore cannot be delayed or disabled by the BSD kernel. Unlike the famously slow microkernel or, even worse, virtual machine, RTCore allows the platform operating system to go directly to hardware for non-real-time devices, to manage its own memory, and to schedule its own processes free from interference or costly layers of emulation. The existence of real-time capability does not require redesign of the non-real-time system or degrade its performance (of course, resources allocated to real-time software does take away from resources available to non-real-time software, but overhead is minimal.)

RTCore provides file-I/O (rtfifos) and shared memory for structured communication between real-time and non-real-time software. For example, a real-time thread can use standard file I/O (even “printf”) to send data to a non-real-time process for analysis and/or logging.

PSDD for RTCore FreeBSD technology allows programmers to create real-time threads inside the address space of UNIX processes. PSDD threads run under the control of the real-time scheduler but share the limited and protected address space of a UNIX process. Currently FSMLabs supports PSDD on FreeBSD and Linux only.

More info (pdf) »