The LITMUSRT patch is a real-time extension of the Linux kernel with a focus on multiprocessor real-time scheduling and synchronization. The Linux kernel is modified to support the sporadic task model and modular scheduler plugins. Clustered, partitioned, and global scheduling are included, and semi-partitioned scheduling is supported as well.
LITMUSRT has been continuously maintained since 2006 and is still being actively developed (as of 2016).
The current version of LITMUSRT is 2016.1 and is based on Linux 4.1.3. It was released on June 22, 2016 and includes plugins for the following scheduling policies:
The primary purpose of the LITMUSRT project is to provide a useful experimental platform for applied real-time systems research. To that end, LITMUSRT provides abstractions and interfaces within the kernel that simplify the prototyping of multiprocessor real-time scheduling and synchronization algorithms (compared to modifying a “vanilla” Linux kernel).
As a secondary goal, LITMUSRT serves as a proof of concept, showing how algorithms such as Pfair schedulers and predictable multiprocessor locking protocols can be implemented on current hardware. Finally, we hope that parts of LITMUSRT and the “lessons learned” may find value as blueprints/sources of inspiration for other implementation efforts (both commercial and open source).
LITMUSRT is a research prototype that is reasonably stable and tested—it works—but we do not have the resources to maintain a rigorous QA regime as it would be expected of a production-quality system suitable for safety- or mission-critical applications.
Furthermore, LITMUSRT’s API is not “stable,” that is, interfaces and implementations may change without warning between releases. POSIX-compliance is not a goal; the LITMUSRT-API offers alternate system call interfaces.
While we aim to follow Linux-coding standards, LITMUSRT is not targeted at being merged into mainline Linux. Rather, we hope that some of the ideas protoyped in LITMUSRT may eventually find adoption in Linux or other kernels.
The maintainer and main developer behind LITMUSRT is Björn Brandenburg of the Max Planck Institute for Software Systems (MPI-SWS).
LITMUSRT was originally launched at the University of North Carolina at Chapel Hill under the direction of James H. Anderson and has benefited from contributions by a number of researchers over the years.
When referencing LITMUSRT, please cite two publications:
While  is the first publication on LITMUSRT, the first public release of LITMUSRT was actually based on a reimplementation in 2007. All versions since 2007 are best described by the detailed description in .
To get in contact with the LITMUSRT community, please use the mailing list.