Betriebssysteme · Institut für Systemarchitektur · Fakultät Informatik · TU Dresden

Themenvorschläge




An dieser Stelle werden Themenvorschläge für studentische Vorträge in der EZAG gesammelt.

Die EZAG dient auch als Plattform für das Hauptseminar, es gibt also insbesondere keine Sondertermine für Hauptseminarvorträge. Um als Student einen Vortrag im Rahmen des Hauptseminars zu halten sollte man sich entweder ein Thema aus der Liste auf dieser Seite aussuchen oder selbst ein Thema vorschlagen. Danach sollte man den Betreuer des gewählten Themas bzw. mich (bei einem eigenen Thema) kontaktieren um den weiteren Ablauf und einen Vortragstermin festzulegen.

Ab sofort (08.07.2004) ist für Hauptseminarvorträge eine Ausarbeitung notwendig. Der genaue Inhalt ist mit dem Betreuer nach dem Vortrag abzusprechen. Die Ausarbeitung sollte 10 Seiten nicht überschreiten. Allgemeine Hinweise zum Aufbau von wissenschaftlichen Arbeiten findet sich hier, wobei die Grundstruktur wie folgt anzupassen ist: Einleitung, Problem, Related Work (1 Seite), Kernidee, Details eines Aspektes, Bewertung, Zusammenfassung.

Das Publikum von Hauptseminarvorträgen besteht aus fortgeschrittenen Studenten und Mitarbeitern. Es macht evtl. Sinn im Vortrag kleinere Bezüge zur BS Vorlesung herzustellen, ansonsten sollten grundlegende Konzepte als bekannt behandelt werden und die Vortragseinleitung und -einführung kann meist kompakt ausfallen. Schwerpunkt sollte ein interessantes wissenschaftliches Thema bilden, sodass alle etwas lernen können.

Der Vortrag selbst sollte, sofern nicht anders abgesprochen, für eine Dauer von ca. 30 Minuten ausgelegt sein. Anschließend stehen üblicherweise 15 Minuten für Fragen zur Verfügung. Es empfiehlt sich den Vortrag vorher etwas zu üben, damit man die eigene Geschwindigkeit besser einschätzen kann.

Eigener Vorschlag

Status: <eigener Vorschlag>

Aufgabe: Selbstverständlich können Studenten im Rahmen des Hauptseminars auch eigene Vortragsthemen vorschlagen. Schickt mir dazu einfach eine eMail.

Quellenvorschläge:

Betreuer: [wird festgelegt]

Ada 2006

Status: <verfügbar>

Aufgabe: Geben Sie einen Überblick über Ada 2006. Fokussieren Sie sich dabei auf Neuerungen gegenüber Ada 95 mit Schwerpunkt auf Echtzeitfähigkeiten.

Quellenvorschläge:

  1. Ada Info Reference -- Ada 2006 Language Reference Manual
  2. An Invitation to Ada 2005
  3. Programming:Ada:2006 - Wikibooks

Betreuer: Alexander Böttcher

Anwendungen für Trusted Computing

Status: <verfügbar>

Aufgabe: Die Spezifikationen bzw. Techniken der TCPA/TCG und grobe Andwendungsbeispiele sind uns bekannt. Stellen Sie mindestens zwei realistische Anwendungen detailiert vor und gehen Sie auf Vorteile, Risiken und Auswirkungen auf den Anwender (bzw. auch den Anbieter eines Dienstes) ein.

Quellenvorschläge:

  1. [beim Betreuer]

Betreuer: Christian Helmuth

Build-Systeme --- Alternativen zu make?

Status: <verfügbar>

Aufgabe: Geben Sie einen Überblick über Build-Systeme. Ausgehend von GNU/make sollen Erweiterungen und Parallelprojekte vorgestellt und miteinander verglichen werden. (Jam, Ant)

Quellenvorschläge:

  1. Make
  2. GNU/Auto{conf,make}
  3. JAM
  4. SCons
  5. Apache Ant
  6. MSBuild
  7. FinalBuilder, Apache Maven, ...

Betreuer: Björn Döbel

Covert Channels

Status: <verfügbar>

Aufgabe: Covert channels umgehen information flow policies. Geben Sie einen Überblick über gängige Verfahren zur Detektion, Beschränkung und Elimination von Covert Channels.

Quellenvorschläge:

  1. Proctor, Neumann: Architectural Implications of Covert Channels, 15th National Computer Security Conference, Baltimore, 13-16 October 1992
  2. Matt Bishop: Computer Security - Art and Science, Kapitel 17

Betreuer: Marcus Völp

Dynamic Binary Analysis

Status: <verfügbar>

Aufgabe: Eine Möglichkeit, Fehlverhalten von Applikationen aufzudecken, ist die Verwendung von Werkzeugen, die das Laufzeitverhalten der Applikation überprüfen. Valgrind ist ein Framework zur Erstellung solcher Werkzeuge, mit denen unmodifizierte Applikations-Binaries und Bibliotheken hinsichtlich verschiedenster Eigenschaften überprüft werden können. Der Vortrag soll die Funktionsweise von Valgrind sowie einige Anwendungsszenarien vorstellen.

Quellenvorschläge:

  1. Valgrind Homepage
  2. Valgrind Publikationen
  3. Nicolas Nethercote: "Dynamic analysis and instrumentation"

Betreuer: Björn Döbel

Einführung in CC Evaluation

Status: <verfügbar>

Aufgabe: Die derzeit aktuelle Evaluierungsmethode ist das Common Criteria. Stellen sie diese Methode vor. Auf welcher Basis wird die Evaluierung durchgeführt?

Quellenvorschläge:

  1. Matt Bishop: Computer Security - Art and Science, Kapitel 21

Betreuer: Christian Helmuth

Farbmanagement

Status: <verfügbar>

Aufgabe: Im Zeitalter der digitalen Fotokameras, Scanner und Monitore ist ein durchgängiges Farbmanagement sehr wichtig. Beschreiben Sie das Problem, indem Sie auf photometrische Grundlagen sowie absolute und gerätespezifische Farbräume eingehen. Erläutern Sie kurz das Schuhsohlendiagramm und gehen Sie auf Begriffe wie Gamma und Weißpunkt ein. Geben Sie abschließend einen Überblick, wie aktuelle Systeme mit dem Problem umgehen. Stichworte an dieser Stelle sind ICC- Profile, und Apple ColorSync.

Quellenvorschläge:

  1. http://de.wikipedia.org/wiki/CIELab
  2. http://www.autoteles.org/files/paperfarben.pdf
  3. http://www.poynton.com/PDFs/ColorFAQ.pdf
  4. http://www.poynton.com/PDFs/GammaFAQ.pdf
  5. http://images.apple.com/pro/pdf/Color_Mgmt_inTiger.pdf

Betreuer: Michael Roitzsch

Komplexität von Software

Status: <verfügbar>

Aufgabe: Die Komplexität von Software wird häufig als Maß für die Vertrauenswürdigkeit bzw. Fehlerwahrscheinlichkeit herangezogen. Die allgemein bekannte und leicht zu bestimmende Metrik "Lines of Code (LoC)" weist aber einige Nachteile auf. Stellen Sie diesen Nachteilen alternative Ansätze gegenüber und gehen Sie auch auf die praktische Anwendbarkeit bzgl. der Einschätzung der Vertrauenswürdigkeit der Software ein.

Quellenvorschläge:

  1. Stichworte: Halstead, McCabe
  2. Stichworte: zyklomatische, strukturelle und hierarchische Komplexität

Betreuer: Christian Helmuth

Multimedia Middleware

Status: <verfügbar>

Aufgabe: Vergleichen Sie verschiedene Implementierungen für Komponentenorientierte Multimedia Middleware bzgl. Voraussetzungen, Erweiterbarkeit, Portierbarkeit etc.

Quellenvorschläge:

  1. NETWORK-INTEGRATED MULTIMEDIA MIDDLEWARE FOR LINUX
  2. gstreamer

Betreuer: Martin Pohlack

Open-Source VPN Systeme

Status: <verfügbar>

Aufgabe: Stellen Sie mindestens zwei verschiedene Open-Source VPN System vor. Gehen Sie dabei auf deren Benutzbarkeit ein und vergleichen Sie die VPN Systeme.

Quellenvorschläge:

Betreuer: Michael Roitzsch, Alexander Warg

Policy Composition

Status: <verfügbar>

Aufgabe: Unter welchen Bedingungen lassen sich verschiedene Security Policies in einem System vereinen? (Diese Aufgabe sollte sinnvollerweise nach 'Security Policies' und 'Confidentiality / Integrity / Hybrid Policies' bearbeitet werden)

Quellenvorschläge:

  1. Matt Bishop: Computer Security - Art and Science, Kapitel 8
  2. Bauer, Ligatti, Walker: A Language and System for Composing Policies Princeton University Technical Report TR-699-04

Betreuer: Christian Helmuth

Privilege separation

Status: <verfügbar>

Aufgabe: Ein bewährtes Konstruktionsprinzip für sichere Systeme ist das "Aufspalten" von Anwendungen in einen kleinen vertrauenswürdigen Teil und einen großen nicht vertrauenswürdigen Teil. Dieses Verfahren kann auch nachträglich angewendet werden, um eine bereits existierende Legacy-Anwendung sicherer zu machen, ist dann allerdings recht aufwändig. Eine neue Technik namens PrivTrans verspricht, diesen Arbeitsschritt weitgehend zu automatisieren. Stellen Sie PrivTrans in Ihrem Vortrag vor und bewerten Sie das Verfahren.

Quellenvorschläge:

  1. Privtrans: Automatically Partitioning Programs for Privilege Separation (Original-Papier beim Betreuer)

Betreuer: Christian Helmuth

Proof-carrying code

Status: <verfügbar>

Aufgabe: Proof-carrying code stellt eine Möglichkeit dar, zusätzlich zu einer Applikation einen Beweis dafür mitzuliefern, dass der Code eine vom Kunden geforderte Spezifikation erfüllt. Vortrag und Ausarbeitung sollen grundlegende Konzepte, Anwendungsbereiche und Limitationen dieses Ansatzes vorstellen.

Quellenvorschläge:

  1. G. Necula, P. Lee: Safe kernel extensions without run-time checking
  2. G. Necula: Proof-carrying code
  3. Weitere Informationen beim Betreuer

Betreuer: Björn Döbel

Quelltext-Verwaltungs-Systeme

Status: <verfügbar>

Aufgabe: In letzter Zeit hat es einige Bewegung im Bereich Quelltext-Verwaltungs-Systeme gegeben. Es sollen verschiedene Systeme wie SVK, Arch, Monotone, Quilt, Git etc. vorgestellt und untereinanderer und gegen allseits bekannte Systeme wie CVS verglichen werden.

Quellenvorschläge:

  1. svk
  2. gnu-arch
  3. monotone
  4. quilt
  5. scm-comparison

Betreuer: Adam Lackorzynski

Security Policies

Status: <verfügbar>

Aufgabe: Geben sie einen Überblick über entscheidbare und durchsetzbare Security Policies.

Quellenvorschläge:

  1. Matt Bishop: Computer Security - Art and Science, Kapitel 4
  2. Bauer, Ligatti: More Enforceable Security Policies In Foundations of Computer Security, Copenhagen, Denmark, July 2002

Betreuer: Christian Helmuth

Spekulative Ausführung in Out of Order Prozessoren mit Fokus auf Datenwert Spekulation

Status: <verfügbar>

Aufgabe: Spekulative Ausführung ist einer der zentralen Leistungsbeschleuniger bei Out-of Order Prozessorarchitekturen. Die Grundidee ist, bestimmte Codeteile schon auszuführen, obwohl noch nicht alle Entscheidungen, ob und mit welchen Parametern der Code ausgeführt werden soll, feststehen. In diesem Vortrag sollen Sie einen Überblick über gängige und neue Spekulationstechniken geben. Datenwert Spekulation ist eine dieser sehr neuen Technologien.

Quellenvorschläge:

  1. Hennesy + Patterson: Computer architecture, a Quantitative Approach Third Edition Kapitel 4
  2. [weitere Literatur beim Betreuer]

Betreuer: Marcus Völp

Systemweites Profiling

Status: <verfügbar>

Aufgabe: Stellen sie systemweite Profiling-Lösungen für verschiedene Betriebssysteme vor. Vergleichen sie die Architektur, Einsatzziele und Leistungsfähigkeit der Lösungen.

Quellenvorschläge:

  1. OProfile für Linux
  2. Solaris Dynamic Tracing
  3. Windows ?

Betreuer: Martin Pohlack

Take Grant Model

Status: <verfügbar>

Aufgabe: Im Gegensatz zur Access Control Matrix lässt sich für das Take Grant Model entscheiden, ob ein System sicher ist oder nicht. Versuchen sie zu begründen, warum die allgemeine Access Control Matrix unentscheidbar ist, das Take Grant Model aber doch. Welche Eigenschaften zeigen Erweiterungen zu dem Take Grant Model.

Quellenvorschläge:

  1. J.S. Shapiro Eros: A Capability System (shap-thesis.ps). PhD Thesis: University of Pennsilvania
  2. Matt Bishop: Computer Security - Art and Science, Kapitel 3

Betreuer: Alexander Warg

Thread Level Speculation

Status: <verfügbar>

Aufgabe: Neben Instruction-Level Speculation wurde kürzlich Spekulation auf Thread Ebene Vorgestellt. Geben Sie einen Überblick über diese Technologie und zeigen Sie ihr Anwendungsfeld auf.

Quellenvorschläge:

  1. Speculative Synchronization: Applying Thread-Level Speculation to Explicitly Parallel Applications , J. Martinez, J. Torrellas, ASPLOS 02

Betreuer: Marcus Völp

Transactional Memory

Status: <verfügbar>

Aufgabe: Transactional memory ist ein Hardwaremechanismus zur Unterstützung Lock freier Synchonisation. Stellen sie diesen Hardwaremechanismus vor und erklären Sie zum einen wie dieser Speicher virtualisiert werden kann und *zum anderen ob und wie ein solches Konzept für die Implementierung entziehbaren Kernspeichers von nutzen sein könnte (ab * optional).

Quellenvorschläge:

  1. Virtualizing Transactional Memory, R. Rajwar, M. Herlihy, K. Lai, ISCA 05 Referenzen 2,7,10,13,20,26 des obigen Papers

Betreuer: Marcus Völp

Unicode

Status: <verfügbar>

Aufgabe: Stellen sie das Thema Unicode umfassend vor. Gehen sie auf die verschiedenen Kodierungen --- UTF-7, UTF-8, UTF-16, UCS-2, UCS-4 (Big- und Little-Endian)) --- ein. Von welchen Betriebssystemen wird Unicode wo und wie eingesetzt bzw. unterstützt (Ein-/Ausgabe (Terminals), Dateisysteme, ...)?

Was haben die unterschiedlichen Kodierungen im Speziellen und Unicode im Allgemeinen für Auswirkungen für Programmierer und Anwender? Kann es bei Einsatz von Unicode zu Sicherheitsproblemen kommen? Wenn ja, wie? Was sind Unicode Normalisierungen? Welche gibt es und warum? Wie wird die Sortierung von Unicode-kodierten Texten gelöst (Collation)?

Welche Probleme löst und schafft Unicode?

Quellenvorschläge:

  1. Unicode Home Page
  2. Unicode 4.0 Standard
  3. Security Considerations for the Implementation of Unicode and Related Technology
  4. Unicode FAQ: Security Issues

Betreuer: Martin Pohlack

Virtualisierung

Status: <verfügbar>

Aufgabe: Virtualisierung: x86-Virtualisierungstechniken; oder: Ist die ARM-Architektur virtualisierbar? (oder anders gefragt: Besteht Hoffnung, WindowsCE unter Fiasco/ARM zu booten?)

Quellenvorschläge:

Betreuer: Udo Steinberg

Wavelet-basierte Videokodierung

Status: <verfügbar>

Aufgabe: Einige aktuelle Video-Kompressionsformate benutzen Wavelets zur Kodierung. Beschreiben Sie allgemein, was Wavelets sind und welche Wavelets typischerweise verwendet werden. Wie kann man Wavelets zur Bildkompression und letztlich zur Videokompression einsetzen? Gehen Sie dabei auch auf JPEG2000, FFmpeg Snow und Dirac ein.

Quellenvorschläge:

  1. http://en.wikipedia.org/wiki/Wavelet_compression
  2. http://www.ibr.cs.tu-bs.de/courses/ss05/skm/ausarbeitungen/Pajonk_SkalierbaresWaveVideo.pdf
  3. http://www.s-t-e.de/content/Articles/downloads/Articles_11/STE_112006_Wellenkompressor_01.pdf

Betreuer: Michael Roitzsch

Build-Systeme --- Alternativen zu make?

Status: <vergeben> an Ludwig Haehne

Aufgabe: Geben Sie einen Überblick über Build-Systeme. Ausgehend von GNU/make sollen Erweiterungen und Parallelprojekte vorgestellt und miteinander verglichen werden. (Autoconf / Automake, SCons)

Quellenvorschläge:

  1. Make
  2. GNU/Auto{conf,make}
  3. JAM
  4. SCons
  5. Apache Ant
  6. MSBuild
  7. FinalBuilder, Apache Maven, ...

Betreuer: Björn Döbel

Model-checking C applications

Status: <vergeben> an Marcel Lippmann

Aufgabe: Model-Checking ist eine Möglichkeit zur Programmverifikation. In diesem Hauptseminar soll das Verifikations-Tool SATABS vorgestellt werden, welches es ermöglicht, ANSI-C-Code in eine für das Model-checking nutzbare Repräsentation zu überführen. Weiterhin sollen Möglichkeiten vorgestellt werden, wie die Skalierbarkeit des Model-Checking verbessert werden kann.

Quellenvorschläge:

  1. S. Chaki, E. Clarke, J. Ouaknine, N. Sharygina, N. Sinha: Concurrent software verification with states, events and deadlocks
  2. SATABS homepage

Betreuer: Björn Döbel

PCI-Express

Status: <vergeben> an Ulrich Schmall

Aufgabe: Geben Sie einen Überblick über die grundlegenden Konzepte von PCI-Express. Dazu soll zunächst die physische Struktur (Root Complex, Bridges, Switches, Endpoints, Links) erläutert werden. Ausgehend davon sollen die für Betriebssysteme relevanten Eigenschaften von PCI-Express diskutiert werden (Power Management, Legacy-Interrupt- und MSI-Support, Hotplug).

Quellenvorschläge:

  1. [beim Betreuer]

Betreuer: Udo Steinberg

Ultra-Large-Scale Systems

Status: <vergeben> an Maria Klemm

Aufgabe: Nach einer Studie der Carnegie-Mellon University werden zukünftige Informationssysteme aus einer Vielzahl von autonomen Hard- und Software-Komponenten bestehen. Vortrag und Ausarbeitung sollen eine Einführung in das Forschungsgebiet der Ultra-Large-Scale Systems geben.

Quellenvorschläge:

  1. CMU Software Engineering Institute: Ultra-Large-Scale Systems - The Software Challenge of the future (beim Betreuer auszuleihen)

Betreuer: Björn Döbel

AMD64

Status: <abgeschlossen>

Aufgabe: Wo liegen Verbesserungen der AMD64-Architektur im Vergleich zur alten x86-Architektur? Die generelle Hinwendung zu 64-Bit und die existenz von 8 weiteren Registern ist allgemein bekannt. Interessant im Kontext von Betriebssystemen sind aber auch andere Änderungen, die nur auf den zweiten Blick auffallen:

  • Tagged TLBs
  • Virtuelle Speicherverwaltung
  • Schatten Selektoren
Als Beispielimplementierung könnte Linux betrachtet werden.

Quellenvorschläge:

  1. AMD-Webseiten
  2. Linux-Kernel-Mailing-Liste

Betreuer: Frank Mehnert

Active Directory Service

Status: <abgeschlossen>

Aufgabe: Wie funktioniert Active Directory Service von Windows? Gehen Sie dabei auf Unterschiede zu LDAP ein. Erklären Sie die Struktur eines Netzwerkes, welches ADS benutzt und welche Funktionalität in diesem Netzwerk bereitgestellt wird. Als Beispiel kann die Nutzerverwaltung dienen.

Quellenvorschläge:

  1. MSDN

Betreuer: Ron Aigner

Aspektorientierte Programmierung

Status: <abgeschlossen>

Aufgabe: Stellen Sie das Paradigma der aspektorientierten Programmierung vor, und geben Sie anhand von Beispielen einen Überblick über mögliche Einsatzszenarien. Gehen Sie auf den aktuellen Stand der Forschung sowie auf Projekte zur Implementierung ein.

Quellenvorschläge:

Betreuer: Jork Löser

Dateisysteme

Status: <abgeschlossen>

Aufgabe: Geben Sie einen Überblick über aktuelle Dateisysteme (z. B. ext3) und ihre Besonderheiten (Komprimierung, Dateitypenerkennung, Rechteverwaltung, Unterstützung für kleine Dateien, Versionsverwaltung, Journaling, ...). [genaueres beim Betreuer]

Quellenvorschläge:

Betreuer: Frank Mehnert, Norman Feske

Display-Architekturen

Status: <abgeschlossen>

Aufgabe: Geben Sie einen Überblick über verschiedene Display-Architekturen bezüglich Schnelligkeit/Sicherheit: Unix mit X11/XVideo- und Render-Extension, Windows mit DirectDraw, OS X mit Quartz Extreme, QNX mit Photon, DROPS mit DOpE, Fresco, GGI, ...

Quellenvorschläge:

Betreuer: Michael Hohmuth, Norman Feske

Esoterische Betriebssysteme

Status: <abgeschlossen>

Aufgabe: Ziel dieser Aufgabe soll es sein, verschiedene Betriebssysteme vorzustellen und interessante Besonderheiten aufzuzeigen. Betrachtet werden können unter anderem folgende Systeme: Plan9

Quellenvorschläge:

Betreuer: Michael Hohmuth

Esoterische Betriebssysteme

Status: <abgeschlossen>

Aufgabe: Ziel dieser Aufgabe soll es sein, verschiedene Betriebssysteme vorzustellen und interessante Besonderheiten aufzuzeigen. Betrachtet werden können unter anderem folgende Systeme: Amoeba.

Quellenvorschläge:

Betreuer: Michael Hohmuth

Esoterische Betriebssysteme

Status: <abgeschlossen>

Aufgabe: Ziel dieser Aufgabe soll es sein, verschiedene Betriebssysteme vorzustellen und interessante Besonderheiten aufzuzeigen. Betrachtet werden können unter anderem folgende Systeme: MorphOS.

Quellenvorschläge:

Betreuer: Michael Peter, Michael Hohmuth

Konzepte hinter Microsofts .net

Status: <abgeschlossen>

Aufgabe: Der Vortrag soll eine Einführung in die wichtigsten Konzepte hinter .net geben und einen Vergleich zu ähnlichen Technologien, wie z. B. Java, gegebenenfalls anhand von Beispielen anstellen. Im Vortrag soll auf Anwendungsbereiche eingegangen werden, für welche .net als prädestiniert erscheint. Weiterhin ist der Entwicklungsstand und aktuelle Baustellen der Open Source Implementierung Mono darzustellen.

Quellenvorschläge:

  1. Microsoft .NET Information
  2. What is Mono?

Betreuer: Norman Feske

LDAP

Status: <abgeschlossen>

Aufgabe: Geben sie einen Überblick über LDAP. Wozu ist es einsetzbar, welche Programme unterstützen es? Wie sieht ein Vergleich mit ähnlichen Protokollen aus? (Sinn, Nutzen von Verzeichnisverwaltungssystemen und Konfigurationsmanagement mit LDAP)

Quellenvorschläge:

  1. Net::LDAP::RFC - List of related RFC's

Betreuer: Michael Peter, Herrman Härtig

Low Power TLB Architekturen

Status: <abgeschlossen>

Aufgabe: Die zur Implementierung von virtuellem Speicher benötigten TLB Zugriffe benötigen ca. 40% des Stroms aller schnellen (L1-Cache) Datenzugriffe. In diesem Vortrag sollen Sie einen Überblick über gängige Methoden zur Reduzierung dieses Stromverbrauchs geben. Eine erweiterte Aufgabe zu diesem Thema wäre eine Bewertung dieser Techniken aus Betriebssystemesicht.

Quellenvorschläge:

  1. [Literatur beim Betreuer]

Betreuer: Marcus Völp

Read-Copy-Update

Status: <abgeschlossen>

Aufgabe: Stellen Sie den Read-Copy-Update (RCU) Mechanismus zum wechselseitigen Ausschluß auf SMP-Systemen vor. Gehen sie insbesondere auf die Einsatzzwecke am Beispiel des Linux-Kernels und auf die Skalierungseigenschaften von RCU ein.

Quellenvorschläge:

  1. Read-Copy Update (RCU)

Betreuer: Udo Steinberg

SCTP - Stream Control Transmission Protocol

Status: <abgeschlossen>

Aufgabe: Vergleichen Sie das vergleichsweise neue SCTP-Protokoll mit dem bereits seit langem verfügbaren TCP-Protokoll. Gehen Sie dabei insbesondere darauf ein, welche Schwachpunkte des TCP-Protokolls durch SCTP behoben wurden und welche neuen Features SCTP implementiert.

Quellenvorschläge:

  1. [RFC 2960] Stream Control Transmission Protocol
  2. [RFC 3257] Stream Control Transmission Protocol Applicability Statement.
  3. [RFC 3286] An Introduction to the Stream Control Transmission Protocol (SCTP).
  4. [RFC 3309] Stream Control Transmission Protocol (SCTP) Checksum Change.
  5. [RFC 3436] Transport Layer Security over Stream Control Transmission Protocol.

Betreuer: Udo Steinberg, Jork Löser

Sichere Programmierung mit C

Status: <abgeschlossen>

Aufgabe: In eingebetteten Systemen wird selbst dann häufig auf die "unsichere" Programmiersprache C zurückgegriffen, wenn es auf Störungs- und Ausfallsicherheit ankommt, denn die Entwicklung mit der klassischen Alternative Ada ist häufig zu teuer, und für eine Java-Umgebung fehlt auf der Zielplattform die Rechnerkapazität. Um dennoch eine hohe Sicherheit zu erreichen, gibt es eine Reihe von Programmierstandards und Werkzeugen. Stellen Sie einige davon in Ihrem Vortrag vor.

Quellenvorschläge:

  1. David W. Binkley: "C++ in Safety Critical Systems"
  2. MISRA: "Guidelines for the use of the C language in vehicle based software" (beim Betreuer ausleihbar)
  3. Les Hatton: "Safer C" (beim Betreuer ausleihbar)

Betreuer: Michael Hohmuth

Sicherheit

Softwareschutz

Status: <abgeschlossen>

Aufgabe: In diversen Forschungsarbeiten wurden verschiedene Mechanismen vorgeschlagen, C- und C++-Programme gegen Buffer-Overflow-Angriffe sicherer zu machen. Stellen Sie einige dieser Mechanismen vor.

Quellenvorschläge:

  1. Stichworte: Runtime buffer overflow protection, Address obfusication, Smart pointers, Nonexecutable stack, PointGuard, StackGuard

Betreuer: Michael Hohmuth

Symbian OS

Status: <abgeschlossen>

Aufgabe: Untersuchen Sie Symbian OS u. a. bzgl. der folgenden Fragen:

  • Wie sieht die System-Architektur aus?
  • Welche Funktionalität wird vom System bereit gestellt?
  • Auf welchen Plattformen ist es verfügbar? HW-Anforderungen?
  • Könnte L4 eine Alternative darstellen?
  • Wäre ein L4Symbian möglich/sinnvoll?
  • Wie sehen die Lizenzbedingungen aus?
  • Zu welchen Bedingungen ist der Source code verfügbar?

Quellenvorschläge:

Betreuer: Michael Hohmuth

Threading unter Linux

Status: <abgeschlossen>

Aufgabe: Vergleichen Sie die alte Implementation von Linux PThreads (PThreads) mit den Neuentwicklungen "Native POSIX Thread Library (NPTL)" von Redhat und "Next Generation POSIX Threads (NGPT)" von IBM. Stellen Sie die Design-Entscheidungen und Konzepte vor, die den jeweiligen Threading-Implementationen zugrunde liegen, inbesondere die Abbildung von User-Threads auf Kernel-Threads, Thread Local Storage, Signalling und notwendige Modifikationen am Linux-Kern. Gehen Sie auch auf die Leistungsfähigkeit und Skalierbarkeit ein.

Quellenvorschläge:

  1. Next Generation Posix Threads (NGPT)
  2. Native Posix Thread Library (NPTL)

Betreuer: Udo Steinberg

WebDAV

Status: <abgeschlossen>

Aufgabe:

WebDAV stands for "Web-based Distributed Authoring and Versioning". It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers. (Quelle: www.webdav.org)
Stellen Sie WebDAV vor. Gehen Sie besonders auf Unterschiede zu klassischen Dateisystem ein. Welche neuen Anwendungsfelder eröffnen sich dadurch.

Quellenvorschläge:

  1. www.webdav.org
  2. RFC 2518
  3. RFC 3253
  4. Astrid Keßler, André Malo (jo): "Das beschreibbare Web, Übersicht über die HTTP-Erweiterung WebDAV", c't 10/03, Seite 216.

Betreuer: Martin Pohlack

Wer weitere Themenvorschläge hat, schicke bitte eine Mail an mich .

Martin Pohlack, http://os.inf.tu-dresden.de/~mp26/
3. Apr 2007
· Copyright © 2001-2022 Operating Systems Group, TU Dresden | Impressum ·