The fact that most of the GNAT ports are based on non real-time operating systems leads to a reduced usability for developing real-time systems. Otherwise, existing ports over real-time operating systems are excessively complex, since GNAT uses only a reduced set of their functionality, and with a very specific semantic. This paper describes the implementation of a low-level tasking support for the GNAT run-time. In order to achieve a predictable real-time behaviour we have developed a very simple library, built to fit only the GNAT tasking requirements. We have also designed a bare machine kernel which provides the minimum environment needed by the upper layers.
/lp/association-for-computing-machinery/real-time-programming-with-gnat-specialised-kernels-versus-posix-N56QC86oSd