Linux ist einfach zu gerecht. Als klassisches Multiuser-System war es lange Zeit Windows überlegen, weil auch die Anwendungen mehrerer Nutzer gleichberechtigt ihre Arbeit taten. Heute sitzt vor einem Linux-Computer oft nur ein einzelner Mensch und möchte die ganze Rechenleistung für sich haben. Da fällt es schwer, zu akzeptieren, dass die Sound-Wiedergabe oder das Videobild aussetzen, nur weil im Hintergrund ein paar Systemprozesse laufen und sich vordrängeln.
So gut es geht
Moderne Linux-Kernel bieten an, einzelnen Anwendungen höhere Prioritäten zuzuweisen, sodass sie bei der Zuteilung von Rechenzeit bevorzugt werden. Die ist letztlich begrenzt, und so ist das Ergebnis solchen Tunings stark von der tatsächlichen Auslastung abhängig. So genannte Echtzeit-Priorität ist also hier zu verstehen als "so gut wie möglich". Für viele Multimedia-Anwendungen bringen die hier beschriebenen Methoden jedenfalls unter normalen Umständen eine deutliche Beschleunigung bzw. größere Stabilität.
Die Lösungen variieren in ihren Ergebnissen wie im erforderlichen Aufwand. Wer die neueste Version seiner Distribution verwendet, wird viele Features schon im Standard-Kernel finden, so etwa ab Kernel-Version 2.6.14 (Rlimits). Der Kernel-Patch von Con Kolivas [1] ist mächtiger, erfordert aber die Übersetzung der gepatchten Kernel-Sourcen. Hinweise dazu gibt der Artikel [2].
In jedem Fall empfiehlt es sich, beim Kompilieren eines Kernels die so genannte Kernel-Preemption einzuschalten. Ob Ihr Distributor dieses Feature einkompiliert hat, erfahren Sie durch einen Blick in die Config-Datei des Kernels, die sie meist im Verzeichnis /boot/grub finden, zum Beispiel bei Ubuntu config-2.6.12-9-k7. Mit Grep suchen Sie dort nach dem String PREEMPT. Stoßen Sie dabei auf CONFIG_PREEMPT is not set oder PREEMPT_NONE, kompilieren Sie den Kernel besser mit geänderten Einstellungen neu (Abbildung 1). Akzeptabel ist dagegen CONFIG_PREEMPT_VOLUNTARY=y, am besten PREEMPT.
Stellt der Kernel Echtzeitprioritäten zur Verfügung, bleibt noch die Frage, wie man sie einschaltet. Normalerweise darf nur Root ein Programm mit Echtzeit-Priorität laufen lassen. Schließlich soll nicht jeder Anwender mit seiner Software den Rechner zum Stillstand bringen können. Der selbst verantwortliche Desktop-User muss aber erst wieder sein Linux-System einstellen, um auch ohne Root-Rechte seine Programme zu beschleunigen.
Echtzeit ohne Root.
Die Community ambitionierter Audionutzer hat schon vor längerer Zeit eine Lösung für die Echtzeitanforderungen des Audioservers Jack [3] gefunden: das Kernel-Modul Realtime-lsm [4]. Die Kernelentwickler haben bislang wegen verschiedener Bedenken das Modul nicht in den Standard-Kernel aufgenommen, es hat sich in der Audio-Praxis aber gut bewährt. Der Zweck des Moduls besteht darin, nicht mit Root-Rechten laufenden Programmen Echtzeitpriorität zuzuweisen. Das ist zum Beispiel bei Jack wichtig, da er mit der gleichen User-ID laufen muss wie die auf ihn zugreifenden Audio-Programme – jeden Synthesizer als Root zu starten, empfiehlt sich aber nicht unbedingt.



