Grin logo
de en es fr
Shop
GRIN Website
Publish your texts - enjoy our full service for authors
Go to shop › Computer Science - Applied

Wiedergabe und Präsentation von tracebasierten Implementierungssichten über den Linuxkern

Title: Wiedergabe und Präsentation von tracebasierten Implementierungssichten über den Linuxkern

Diploma Thesis , 2007 , 178 Pages , Grade: 2,7

Autor:in: Sascha Kohn (Author)

Computer Science - Applied
Excerpt & Details   Look inside the ebook
Summary Excerpt Details

Die Arbeit befasst sich mit der Sammlung und benutzerdefinierten Visualisierung von Tracingdaten bezüglich des Linuxkernels und seiner Module.

Ziel der Arbeit ist es, ein generisches System prototypisch zu entwickeln, das durch das Zusammenspiel verschiedener Werkzeuge, Tracingdaten des Linuxkernels und seiner Module sammeln und diese anhand von benutzerdefinierten Visualisierungen in einem Traceviewer grafisch darstellen kann. Die Visualisierung basiert dabei auf der Idee, dass der Benutzer Visualisierungsschablonen und Transformationsregeln definieren und den Tracingevents zuordnen kann. Wird bei der Betrachtung der Tracingdaten im Traceviewer ein Tracingevent vom Benutzer ausgewählt, soll eine dem Tracingevent zugeordnete Visualisierungsschablone durch die dazugehörigen Transformationsregeln in Abhängigkeit der Eventdaten verändert und schließlich angezeigt werden.

Für jede Teilaufgabe wird in der Arbeit untersucht, welche Werkzeuge dafür bereits existieren, über welche Eigenschaften diese verfügen und welche Werkzeuge neu erstellt werden müssen. Außerdem wird untersucht, ob und wie UML Diagramme als Grundlage zur Erstellung der Visualisierungsschablonen dienen können. Aufgrund der Untersuchungen wird das Systemtap System, ein System zur dynamischen Instrumentierung des Linuxkerns und seiner Module, zur Sammlung der Tracingdaten eingesetzt. Zur Beschreibung der Visualisierungsschablonen dient das XML-basierte SVG Vektorgrafikformat. Die Anpassung der benutzerdefinierten Visualisierungsschablonen an die gesammelten Tracingdaten erfolgt durch XSLT Stylesheets.

Anhand von zwei Anwendungsbeispielen wird in der Arbeit gezeigt, wie die Werkzeuge des Systems nutzbringend einsetzen werden können.Im ersten Beispiel wird gezeigt, wie Tracingdaten bezüglich des USB Maustreibers "usbmouse", des USB Subsystems und des Input Subsystems durch das in der Arbeit entwickelte System gesammelt und anhand eines Sequenzdiagramms visualisiert werden können.Im zweiten Beispiel werden durch das System Zustandsdaten des virtuellen Dateisystems bezüglich einer kleinen Menge von Prozessen gesammelt und nach dem Filedeskriptor und Openfiletable Modell visualisiert.

Excerpt


Inhaltsverzeichnis

1 EINLEITUNG

1.1. Motivation

1.2. Beschreibung der Aufgabenstellung

1.3. Gliederung der Arbeit

2 GRUNDLAGEN

2.1. Specification

2.1.1. XML

2.1.2. SVG

2.1.2.1. Aufbau von SVG Dateien

2.1.2.2. Grafische Primitive

2.1.2.3. Text

2.1.2.4. Elemente zur Strukturierung

2.1.2.5. Sonstige Elemente und Funktionen von SVG

2.1.2.6. Beispiele

2.1.3. XSL Transformations (XSLT)

2.1.3.1. Aufbau und Funktionsweise von XSLT Stylesheets

2.1.3.2. Beispiel

2.1.4. XML Metadata Interchange Format (XMI)

2.2. Gathering

2.2.1. KProbes, JProbes und Kretprobes

2.2.2. Systemtap

2.2.2.1. Funktionsweise von Systemtap

2.2.2.2. Welche Tracingdaten können durch Systemtap Probes gesammelt werden ?

2.2.2.3. Systemtap Skriptsprache

2.2.2.3.1. Definition von Systemtap Probes

2.2.2.3.2. Definition von Hilfsfunktionen

2.2.2.3.3. Ausgabe durch Systemtap

2.2.2.3.4. Beispielskript

2.3. Analyzing-and-Visualizing

2.3.1. LTT

2.3.2. LTTng und LTTV

2.3.2.1. LTTV Viewer

2.3.3. Verbindung von Systemtap und LTTV Viewer

3 ANFORDERUNGSANALYSE UND AUSWAHL DER WERKZEUGE

3.1. Specification

3.1.1. Beschreibung der Schablonen

3.1.2. Erstellung der Schablonen

3.1.3. Transformation der Schablonen

3.1.4. Zuordnung der Schablonen, Transformationen und des Quellcodes zu den Tracingevents

3.2. Gathering

3.3. Analyzing-and-Visualizing

4 PROTOTYPISCHER ENTWURF UND IMPLEMENTIERUNG DES TOOLKITS

4.1. Specification

4.1.1. Möglichst automatische Erstellung der Systemtap Probes sowie der LTTV Eventdefinitionen

4.1.1.1. Finden des Quellcodes der zu instrumentierenden Kernel- und Kernelmodulfunktionen

4.1.1.2. Auslesen der Parameter- und Rückgabetypen sowie der Parameternamen der zu instrumentierenden Funktionen aus deren Quellcode

4.1.1.3. Weiterverarbeitung der Daten im XML Format

4.1.1.4. Erstellung der Systemtap Probes

4.1.1.5. Erstellung der LTTV Eventdefinitionen

4.1.2. Zuordnung und Erstellung der SVG Schablonen sowie der dazugehörigen XSLT Stylesheets

4.2. Gathering

4.3. Analyzing-and-Visualizing

4.3.1. Erstellung von Modulen für den LTTV Viewer

4.3.2. Finden aller einem Event zugeordneten Schablonen

4.3.3. Anzeige des Quellcodes

4.3.4. Darstellung der SVG Dateien durch das LTTV Modul

4.3.5. Einsatz und Ergebnisse des neuen LTTV Moduls

4.4. Verwendung von höherwertigen Werkzeugen zur Erstellung von SVG Schablonen und XSLT Transformationen

4.4.1. Erstellung der SVG Dateien durch einen SVG Editor

4.4.2. Verwendung von UML Diagrammen als Grundlage zur Erstellung von SVG Schablonen sowie der dazugehörigen XSLT Stylesheets am Beispiel von Sequenzdiagrammen

4.4.2.1. Erstellung der UML Diagramme

4.4.2.2. Konvertierung der UML Diagramme nach SVG

4.4.2.2.1. Aufbau von uml2svg.xsl (für Sequenzdiagramme relevanter Anteil)

4.4.2.2.2. Erweiterung von uml2svg.xsl

4.4.2.3. Automatische Erstellung der zu den SVG Dateien passenden XSLT Transformationen

5 PROTOTYPISCHES TESTEN AM BEISPIEL DES USB MAUSTREIBERS „USBMOUSE“

5.1. USB Grundlagen

5.2. Input Subsystem

5.3. USB Maustreiber „usbmouse“

5.4. Instrumentierung des Maustreibers und Visualisierung der Tracingdaten

5.5. Ergebnisse

6 FILTERUNG DER TRACINGDATEN

6.1. Filterung durch Verwendung des Systemtap Target PID Mechanismus

6.2. Dynamische Filterung anhand mehrerer PIDs

7 ANWENDUNGSBEISPIEL: ERMITTLUNG UND VISUALISIERUNG DER ZUSTÄNDE VON FILEDESKRIPTOR-TABELLEN

7.1. Aufgabenstellung

7.2. Filedeskriptor Tabellen und Openfiletable im realen System

7.3. Erstellung der Systemtap Skripte

7.4. Erstellung der SVG Schablonen und der XSLT Stylesheets

7.5. Erstellung der Prozesse

7.6. Ergebnisse

8 ZUSAMMENFASSUNG UND AUSBLICK

8.1. Zusammenfassung

8.2. Ausblick

Zielsetzung & Themen

Die vorliegende Arbeit zielt auf die Entwicklung eines generischen Systems ab, das Tracingdaten des Linuxkerns sammelt und diese mittels benutzerdefinierter Visualisierungsschablonen sowie Transformationsregeln grafisch aufbereitet. Zudem soll das System den korrespondierenden Kernel- oder Kernelmodulquellcode zu jedem Tracingevent identifizieren und anzeigen, um komplexe Systemabläufe transparent darzustellen.

  • Entwicklung eines Toolkits zur dynamischen Instrumentierung und Analyse des Linuxkernels.
  • Konzeption flexibler Visualisierungsschablonen auf Basis von SVG und XSLT.
  • Automatisierte Generierung von Systemtap-Probes und LTTV-Eventdefinitionen.
  • Integration der Quellcodeanzeige in den LTTV Viewer zur Kontextualisierung der Tracingdaten.
  • Demonstration und Evaluierung der Systemfunktionalität an realen Beispielen, wie dem USB-Maustreiber.

Auszug aus dem Buch

1.2. Beschreibung der Aufgabenstellung

Ziel dieser Arbeit ist es, ein generisches System prototypisch zu entwickeln, das durch das Zusammenspiel verschiedener Werkzeuge, Tracingdaten des Linuxkernels und seiner Module sammeln und diese unter Verwendung von benutzerdefinierten Visualisierungsschablonen und Transformationsregeln visualisieren kann. Außerdem soll zu jedem Tracingevent der entsprechende Kernel- bzw. Kernelmodulquellcode gefunden und angezeigt werden.

Das System soll es ermöglichen, benutzerdefinierte Abläufe, Zusammenhänge und Implementierungssichten in Abhängigkeit der gesammelten Tracingdaten darstellen zu können. Die Visualisierung basiert dabei auf der Idee, dass der Benutzer Visualisierungsschablonen und Transformationsregeln definieren kann. Wird im Traceviewer ein Tracingevent vom Benutzer ausgewählt, soll eine dem Tracingevent zugeordnete Visualisierungsschablone ausgewählt, durch die dazugehörigen Transformationsregeln in Abhängigkeit der Eventdaten verändert und schließlich angezeigt werden.

Die Werkzeuge des zu entwickelnden Systems lassen sich in drei Gruppen einteilen; jede Werkzeuggruppe ermöglicht es dem Benutzer, einen spezifischen Aufgabenkomplex zu bearbeiten:

1) Specification (Instrumentierung des Kernels und/oder seiner Module zur Sammlung der Tracingdaten, Erstellung der Visualisierungsschablonen, Transformationsregeln, Zuordnungen der Tracingevents zu den Visualisierungsschablonen und den Transformationsregeln)

2) Gathering (Sammlung der Tracingdaten)

3) Analyzing-and-Visualizing (Darstellung der Tracingdaten, Anwendung der Transformationen auf die Visualisierungsschablonen, Darstellung der Visualisierungen, Quellcodeanzeige)

Für jede Teilaufgabe muss u.a. untersucht werden, welche Werkzeuge dafür bereits existieren, über welche Eigenschaften diese verfügen und welche Werkzeuge neu erstellt werden müssen.

Einige Einsatzmöglichkeiten des Systems sollen anhand von Beispielen demonstriert werden. Dabei soll auch gezeigt werden, wie der Benutzer die Werkzeuge des Systems nutzbringend einsetzen kann.

Zusammenfassung der Kapitel

1 EINLEITUNG: Dieses Kapitel motiviert die Analyse des Linuxkerns durch Tracingtools und beschreibt die Zielsetzung sowie die Gliederung der Arbeit.

2 GRUNDLAGEN: Hier werden die verwendeten Technologien wie XML, SVG, XSLT, Systemtap und LTT/LTTV vorgestellt und deren Einordnung in das Gesamtsystem erläutert.

3 ANFORDERUNGSANALYSE UND AUSWAHL DER WERKZEUGE: Dieses Kapitel diskutiert die Anforderungen an die Toolkette und begründet die Auswahl der Werkzeuge für die Phasen Spezifikation, Sammlung und Visualisierung.

4 PROTOTYPISCHER ENTWURF UND IMPLEMENTIERUNG DES TOOLKITS: Hier wird der Entwurf des Gesamtsystems beschrieben, inklusive der automatisierten Erstellung von Systemtap-Probes und Eventdefinitionen sowie der Visualisierungslogik.

5 PROTOTYPISCHES TESTEN AM BEISPIEL DES USB MAUSTREIBERS „USBMOUSE“: Anhand des USB-Maustreibers wird die praktische Anwendung des entwickelten Systems zur Tracingdaten-Sammlung und Visualisierung demonstriert.

6 FILTERUNG DER TRACINGDATEN: Dieses Kapitel stellt Methoden zur PID-basierten Filterung von Tracingdaten vor, um die Systemlast bei der Datenerhebung zu reduzieren.

7 ANWENDUNGSBEISPIEL: ERMITTLUNG UND VISUALISIERUNG DER ZUSTÄNDE VON FILEDESKRIPTOR-TABELLEN: Hier wird ein weiteres, komplexeres Anwendungsbeispiel zur Visualisierung der Zustandsänderungen von Filedeskriptor-Tabellen in der Betriebssystemausbildung erörtert.

8 ZUSAMMENFASSUNG UND AUSBLICK: Das letzte Kapitel fasst die Ergebnisse zusammen und diskutiert potenzielle Erweiterungen für zukünftige Entwicklungen.

Schlüsselwörter

Linuxkern, Tracing, Systemtap, Visualisierung, SVG, XSLT, LTTV, XML, Instrumentierung, Filedeskriptor, Prozessanalyse, Kernelmodule, Quellcode-Visualisierung, Debugging, XMI

Häufig gestellte Fragen

Worum geht es in dieser Arbeit grundsätzlich?

Die Arbeit befasst sich mit der Entwicklung eines generischen, prototypischen Systems zur Instrumentierung und flexiblen grafischen Visualisierung von Prozessen innerhalb des Linuxkernels.

Was sind die zentralen Themenfelder?

Die Arbeit kombiniert Linux-Kernel-Tracing (mittels Systemtap), XML-basierte Datendefinition, Vektorgrafik-Visualisierung (SVG) und XSLT-Transformationen zur dynamischen Darstellung von Systemzuständen.

Was ist das primäre Ziel der Arbeit?

Das primäre Ziel ist es, Benutzern zu ermöglichen, komplexe, benutzerdefinierte Implementierungssichten auf das laufende Linux-System zu erstellen, ohne den Kernel bei jeder Änderung neu kompilieren zu müssen.

Welche wissenschaftliche Methode wird verwendet?

Es wird ein systematischer Software-Engineering-Ansatz angewandt: Anforderungsanalyse, Architektur-Design, prototypische Implementierung und Validierung durch praktische Anwendungsbeispiele.

Was wird im Hauptteil behandelt?

Der Hauptteil gliedert sich in die Spezifikation, das Tracing (Gathering) und die Visualisierung. Er enthält den Entwurf des Toolkits, die algorithmische Umsetzung der Datentransformation und zwei Fallstudien (USB-Treiber und Filedeskriptor-Tabellen).

Welche Schlüsselwörter charakterisieren die Arbeit?

Linuxkern, Tracing, Systemtap, Visualisierung, SVG, XSLT, LTTV, XML, Instrumentierung, Filedeskriptor.

Warum wird Systemtap für das Tracing gewählt?

Systemtap wurde gewählt, da es eine dynamische Instrumentierung ohne Kernelpatch ermöglicht und sich im Vergleich zu alternativen Tracingsystemen am einfachsten in das entwickelte Toolkit integrieren ließ.

Wie werden die Visualisierungsschablonen transformiert?

Die Transformation erfolgt mittels XSLT-Stylesheets, welche XML-Daten aus den Tracing-Events auf die SVG-Schablonen anwenden, um diese in Abhängigkeit der Event-Parameter dynamisch zu verändern.

Wie erfolgt die Anzeige des Quellcodes im LTTV Viewer?

Die Anzeige wird durch das GTK-Widget „GtkSourceView“ realisiert, welches speziell zur Darstellung und Syntax-Hervorhebung von Quellcode entwickelt wurde und direkt in das neue LTTV-Visualisierungsmodul integriert ist.

Excerpt out of 178 pages  - scroll top

Details

Title
Wiedergabe und Präsentation von tracebasierten Implementierungssichten über den Linuxkern
College
Saarland University
Grade
2,7
Author
Sascha Kohn (Author)
Publication Year
2007
Pages
178
Catalog Number
V83261
ISBN (eBook)
9783638896085
Language
German
Tags
Wiedergabe Präsentation Implementierungssichten Linuxkern
Product Safety
GRIN Publishing GmbH
Quote paper
Sascha Kohn (Author), 2007, Wiedergabe und Präsentation von tracebasierten Implementierungssichten über den Linuxkern, Munich, GRIN Verlag, https://www.grin.com/document/83261
Look inside the ebook
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
  • Depending on your browser, you might see this message in place of the failed image.
Excerpt from  178  pages
Grin logo
  • Grin.com
  • Shipping
  • Contact
  • Privacy
  • Terms
  • Imprint