Login
Newsletter
Werbung

Mi, 22. Mai 2013, 09:09

Software::Kernel

ktap: Kernel-Trace für eingebettetes Linux

Entwickler von Huawei haben eine neue Trace-Funktionalität für den Linux-Kernel namens ktap vorgestellt. Sie soll einfacher als beispielsweise Systemtap sein und sich besonders für eingebettete Systeme eignen.

Larry Ewing

ktap dient nach Angaben der Entwickler zum dynamischen Einfügen von Trace-Punkten in den Kernel, ähnlich wie Systemtap und DTrace. Doch DTrace, das von Solaris stammt, steht nur Kunden von Oracle zur Verfügung und seine Lizenz ist nicht kompatibel zu der des Kernels. SystemTap, das von Red Hat vorangetriebene Linux-Analog zu DTrace, war bisher wohl die beste Option, wenn es um dynamisches Tracen ging. Der Linux-Kernel verfügt mit ftrace zudem über einen immer weiter ausgebauten Trace-Mechanismus, der jedoch statische Tracepunkte nutzt, die von den Entwicklern vorgesehen werden müssen. Sie lassen sich lediglich dynamisch ein- und ausschalten.

Doch Systemtap beruht darauf, dass die Benutzer Skripte schreiben, die in ein ladbares Kernel-Modul übersetzt und in den Kernel geladen werden müssen. Das geschieht zwar in einer Weise, die den Kernel nicht gefährdet und daher sogar auf Produktivsystemen einsetzbar ist, erfordert aber das erneute Compilieren und Laden des Moduls bei jeder Änderung der Tracepunkte.

ktap will gegenüber Systemtap mit einem einfacheren Konzept punkten. Es kommt mit einem statischen Kernel-Modul aus, das sich nicht ändert. Es benötigt keinen C-Compiler, da es eine spezifische Sprache zur Definition der Tracepunkte verwendet, die mit Hilfe des mitgelieferten Werkzeugs ktap in einen Bytecode umgewandelt wird, der vom Kernel-Modul verarbeitet wird. Es ist sicher genug, um auf Produktivsystemen eingesetzt zu werden, und insbesondere für eingebettete Systeme geeignet, da es nicht viele Ressourcen benötigt.

In der vorgestellten Version 0.1 weist ktap allerdings noch einige Einschränkungen auf. Es unterstützt zur Zeit nur die x86-Architektur (32 und 64 Bit), da es mit anderen noch nicht getestet wurde. Es unterstützt Tracepunkte, Systemaufrufe, kprobes, kretprobes, Timer, Stackdumps sowie viele eingebaute Funktionen. Trotzdem gibt es noch einiges zu tun, aber es ist abzusehen, dass es schnell Fortschritte geben wird. Das Projekt befindet sich derzeit auf GitHub.

Werbung
Kommentare (Insgesamt: 3 || Alle anzeigen )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung