All rights reserved eng Bertschler, M. (Martin) 2016 LINUX St. Pölten, Studiengang Digitale Medientechnologien, Masterarbeit, 2016 This work is about real-time applications on the Linux operating system. The goal is to find out what degree of real-time capability the Linux kernel and an application written in a high-level programming language can guarantee. The motivation for this topic comes from the development that nowadays more and more technological fields incorporate real-time applications. If it is possible to write these applications using Linux and a common modern highlevel programming language, it could allow a lot of developers from other fields to write these programs without learning an entirely different ecosystem. To learn about the most important things that are relevant for developing such applications, literature regarding computer hardware, the operating system itself, programming languages that can be used in real-time settings, security relevant best practices and real-time application development is analyzed. Following the literature research, experiments with the goal to learn what realtime deadlines can be met are conducted. The programming languages used for these experiments are C and Go. C because it is the language of the Linux kernel and Go because it is a modern alternative to C that can simplify development. The programs are executed on a Linux kernel that has the realtime patch applied. The research and experiments show that real-time programs, that never exceed a given deadline during an extensive test run, are possible. On the BeagleBone test hardware, the experiments show an average wakeup latency of ~50 μs and a maximum latency of <250 μs for both the C and Go test applications. Diese Arbeit handelt von Echtzeitsystemen auf dem Linux Betriebssystem. Das Ziel ist es herauszufinden, welchem Grad an Echtzeitfähigkeit der Linux Kernel und eine Anwendung, die in einer hohen Programmiersprache geschrieben ist, garantieren kann. Die Motivation für dieses Thema stammt von der Entwicklung ab, dass heutzutage in immer mehr technischen Bereichen Echtzeitsysteme verwendet werden. Falls es möglich ist, diese Anwendungen mit Linux und einer üblichen hohen Programmiersprache zu schreiben, könnte das vielen Entwicklern aus anderen Bereichen erlauben, solche Echtzeitanwendungen zu programmieren ohne ein völlig neues Ökosystem zu erlernen. Um die Informationen, die für die Entwicklung von solchen Anwendungen relevant sind herauszufinden, wird eine Literaturrecherche in den Bereichen Computer Hardware, Betriebssysteme, Programmiersprachen die für Echtzeitsysteme eingesetzt werden können, Sicherheitsrelevante Vorgehensweisen und Echtzeitsystementwicklung betrieben. Nach der Literaturrecherche werden Experimente durchgeführt, die herausfinden sollen welche Deadlines eingehalten werden können. Die Programmiersprachen für diese Experimente sind C und Go. C, weil es die Sprache des Linux Kernels ist und Go weil es eine moderne Alternative zu C ist, die die Softwareentwicklung vereinfachen kann. Die Testprogramme werden auf einem Linux Kernel ausgeführt, auf den der Echtzeit-Patch angewandt wurde. Die Forschung und Experimente zeigen, dass Echtzeitprogramme, die nie eine fixe Deadline in einem ausführlichen Testlauf überschreiten, möglich sind. Auf dem BeagleBone Testcomputer resultieren die Experimente in einer durchschnittlichen Aufwachlatenz von ~50 μs und einer maximalen Latenz von <250 μs für das C als auch das Go Testprogramm. http://phaidra.fhstp.ac.at/o:2283 application/pdf 1545437 bytes Modern Real-Time Applications on Linux Text