TUD Logo

TUD Startseite » ... » Betriebssysteme » Lehre » Hauptseminar

Betriebssysteme

against racism

Hauptseminar

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.

Neben dem Hauptseminarvortrag ist eine Ausarbeitung notwendig. Der genaue Inhalt ist mit dem Betreuer nach dem Vortrag abzusprechen. Die Ausarbeitung sollte 10 Seiten nicht überschreiten und ist spätestens 4 Wochen nach dem Hauptseminarvortrag beim Betreuer abzugeben. Vortag und Ausarbeitung sind notwendig um einen Schein zu bekommen. Allgemeine Hinweise zum Aufbau von wissenschaftlichen Arbeiten finden sich in der Rubrik "Beleg/Diplom Aufbau", wobei die Grundstruktur wie folgt anzupassen ist: Einleitung, Problem, Related Work (1 Seite), Kernidee, Details eines Aspektes, Bewertung, Zusammenfassung. Hinweis: Die Ausarbeitung ist als Fließtext (keine Stichpunktesammlung !) zu verfassen, der Duden bzw. die Rechtschreibprüfung wird dringend empfohlen, ebenso ist eine Seitennummerierung erwünscht.

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]
  • 3D-Video mit H.264/MVC

    Status: <verfügbar>

    Aufgabe: Seit James Camerons Kinofilm "Avatar" gibt es einen neuen Hype um 3D-Filme. Inzwischen können auch Heimkinos mit 3D-Technik ausgerüstet werden. Für die Verteilung der Inhalte wurde der aktuelle Videostandard H.264 um ein Kompressionsverfahren für Videos mit mehreren korrelierten Ansichten erweitert: "Multi-View Coding" (H.264/MVC). Der Vortrag soll einen Einblick in die Funktionsweise von MVC geben. Dabei können auch eigene Experimente und Erfahrungen mit MVC einfließen.

    Quellenvorschläge:

    1. Efficient Compression of Multi-View Video
    2. MVC Encoder von Nokia Research

    Betreuer: Michael Roitzsch
  • AXUM

    Status:<vergeben>

    Aufgabe: Geben Sie einen Überblick über Microsoft's neue Programmiersprache Axum und über den für diese Sprache nötigen Spachsupport.

    Quellenvorschläge:

    Betreuer: Marcus Völp
  • 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, Apache Ant, Apache Maven, MSBuild)

    Quellenvorschläge:

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

    Betreuer: Björn Döbel
  • Checkpoint/Restart in Linux

    Status: <verfügbar>

    Aufgabe: Checkpoint/Restart ist ein Mechanismus, mit dem der Zustand von einer Anwendung zwischengespeichert werden kann, um diese Anwendung zu einem späteren Zeitpunkt wieder an diesem Punkt loslaufen zu lassen. Der Vortrag soll einen Überblick über eine solche Lösung für Linux geben und dabei besonders darauf eingehen, welche Teile im Betriebssystemekern und welche als Nutzeranwendung implementiert sind.

    Quellenvorschläge:

    1. CRIU

    Betreuer: Tobias Stumpf
  • Die Programmiersprache Vala

    Status: <verfügbar>

    Aufgabe:Vala ist eine C#-ähnliche Programmiersprache für das GObject-System, die einen in Vala selbst geschriebenen Source-to-Source-Compiler verwendet um von Vala nach C zu übersetzen. Der Vortag sollte einen Überblick über Vala geben und die wichtigsten Konzepte vorstellen.

    Quellenvorschläge:

    1. Vala Homepage

    Betreuer: Nils Asmussen
  • Esoterische Betriebssysteme -- POK

    Status:<vergeben>

    Aufgabe: Beschreibung: Der Partitioned OS Kernel (POK) hat sich zum Ziel gesetzt, ein offenes mikrokern-basiertes Betriebssystem für den Einsatz in safety-kritischen Systemen bereit zu stellen. Geben Sie einen Überblick über die Architektur von POK, Einsatzmöglichkeiten und Limitationen.

    Quellenvorschläge:

    1. Website

    Betreuer: Björn Döbel
  • GCC -O 3Pin

    Status:<vergeben>

    Aufgabe: Aufgabe: In der GCC Version 4.4.5, stehen hinter der option -O3 62 einzelne Optimierungsoptionen. In diesem Hauptseminar sollen die vorhandenen und zukünftig geplanten Optimierungen der Gnu Compiler Collection, sowie anderer prominenter Compiler vorgestellt und idealerweise Anhand von Betriebssystemecode bewertet werden.

    Quellenvorschläge:

    1. GCC Manuals
    2. weitere Hinweise beim Betreuer

    Betreuer: Marcus Völp
  • Game Engines als Echtzeit- und Multicore-Last

    Status: <verfügbar>

    Aufgabe:Spiele sind auch heute noch ein anspruchsvoller Anwendungsfall, der selbst gut ausgestattete Rechner ins Schwitzen bringt. Der Vortrag soll einen Überblick über vorhandene Game Engines geben und dabei insbesondere aus Betriebssystemsicht darauf eingehen, welche Arbeitslast diese Engines der Plattform abverlangen. Interessant sind hierbei die auftretenden zeitlichen Anforderungen, damit das Spielgeschehen flüssig bleibt, und der Einsatz von Parallelität und Heterogenität (GPUs) zur Bewältigung der Berechnungen.

    Quellenvorschläge:

    1. Real Time Game Loop Models for Single-Player Computer Games
    2. Game Development: Harder Than You Think

    Betreuer: Michael Roitzsch
  • Google Protocol Buffers

    Status: <verfügbar>

    Aufgabe:Stellen Sie Funktionsweise und Benutzung von Google's Protocol Buffers zur effizienten Serialisierung und Übertragung von Daten vor.

    Quellenvorschläge:

    1. Entwickler-Webseite

    Betreuer: Björn Döbel
  • Parser-Generatoren

    Status: <verfügbar>

    Aufgabe: Statische Source-Code-Analyse und der Einsatz von Domain-Specific Languages sind zwei wichtige Bestandteile moderner Softwareentwicklung. Beide Konzepte wären ohne die Existenz von Parser-Generatoren wesentlich schwieriger zu realisieren. In diesem Hauptseminar soll einer der unten genannten Parser-Generatoren vorgestellt werden: Oink oder Elkhound.

    Quellenvorschläge:

    1. Elkhound: A GLR Parser Generator
    2. Oink - Trac

    Betreuer: Björn Döbel
  • 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: Marcus Völp
  • 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
  • SIMD

    Status: <verfügbar>

    Aufgabe: Single Instruction, Multiple Data (SIMD) Erweiterungen werden üblicherweise benutzt, um Algorithmen, wie z.B. Video Decoding und Image Processing, auf General Purpose CPUs zu beschleunigen. Dieser Vortrag soll einen Überblick über SIMD Erweiterungen auf populären Mikroarchitekturen (insb. x86 und ARM) geben und dabei u.a. auf Unterschiede zum regulären Befehlssatz und die vom Betriebssystem benötigte Unterstützung eingehen.

    Betreuer: Julian Stecklina
  • Schutz privater Daten auf mobilen Geräten

    Status: <verfügbar>

    Aufgabe: Aufgabe: Nutzer speichern zunehmend private Daten auf mobile Geräte wie Smartphones und Tablets. Diese Daten müssen geschützt werden, falls das Gerät in falsche Hände gelangt, die Benutzbarkeit soll jedoch nicht unangemessen leiden. Der Vortrag soll einen detaillierten technischen Einblick in die Datenschutz-Architektur von iOS geben und diese an geeigneten Punkten mit der Situation unter Android vergleichen. Insbesondere soll darauf eingegangen werden, wie und mit welchen Geheimnissen persönliche Daten gegen physischen Gerätezugriff abgesichert werden.

    Quellenvorschläge:

    1. iOS Schlüsselhierarchie
    2. Vortrag: Overcoming iOS Data Protection
    3. Vortrag: iPhone Data Protection in Depth
    4. Android Security Overview

    Betreuer: Michael Roitzsch, Carsten Weinhold
  • 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: Marcus Völp
  • Sichere Programmierung mit Cyclone

    Aufgabe: Stellen Sie die Programmiersprache Cyclone im Hinblick auf gängige Sicherheitslücken und Probleme mit C vor.

    Quellenvorschläge:

    1. Cyclone Homepage
    2. Trevor Jim, Greg Morrisett, Dan Grossman, Michael Hicks, James Cheney, and Yanling Wang: "Cyclone: A Safe Dialect of C", Usenix Annual TC 2002

    Betreuer: Björn Döbel
  • 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
  • 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
  • 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
  • Understanding Benchmarks

    Status: <verfügbar>

    Aufgabe:To evaluate low-level hard- and operating-system software concepts developers typically run benchmark suites in addition to microbenchmarks to understand how a specific concept works under characteristic load. The presentation should survey of which applications common general purpose and embedded suites such as Spec CPU, Spec Power, MiBench, UTDSP, and the suites from the WCET benchmark project are comprised how their characteristics are and ideally how they stress standard operating systems.

    Quellenvorschläge:

    1. MiBench
    2. UDTSP
    3. WCET Benchmark Suite

    Betreuer: Marcus Voelp
  • Verteilte Fehlertoleranz mit Hystrix

    Status: <verfügbar>

    Aufgabe: Verteilte Systeme müssen damit umgehen können, dass einzelne beteiligte Knoten oder Dienste häufig ausfallen. Hystrix ist eine Bibliothek, die die Komposition von verteilten Services unter Berücksichtigung von Latenz-Anforderungen und dem Umgang mit ausfallenden Knoten vereinfacht. Geben Sie einen Überblick über die Architektur und den Einsatz von Hystrix.

    Quellenvorschläge:

    1. Hystrix auf Github

    Betreuer: Björn Döbel
  • Content Delivery Networks

    Aufgabe: Der Vortrag soll einen Überblick über die Funktionsweise von Content Delivery Networks (CDN) geben. Dabei kann auch darauf eingegangen werden, wie sich der Datenverkehr im Internet in den letzten Jahren gewandelt hat und wie CDNs helfen, den wachsenden Datenaufkommen zu begegnen. Interessant ist auch ein Vergleich von CDNs mit benachbarten Lösungen: Auf höherer Abstraktionsebene liegen dabei Cloud-Lösungen wie Platform-as-a-Service (PaaS) und Infrastructure-as-a-Service (IaaS), auf niedrigerer Abstraktionsebene IP-Multicast.

    Quellenvorschläge:

    1. Content Delivery Networks
    2. The Akamai Network
    3. Multicast

    Betreuer: Michael Roitzsch
  • OAuth - Authentisierung zwischen Web-Anwendungen

    Status:<vergeben>

    Aufgabe: Immer mehr Anwendungen werden von Internet-Diensten in der sogenannten "Cloud" zur Verfügung gestellt. Dabei wird es zunehmend wichtig, dass Anwendungen Daten gemeinsam nutzen. OAuth stellt dafür einen Authentisierungsmechanismus bereit, der es einer Web-Anwendung erlaubt, einer anderen begrenzten und widerrufbaren Zugriff auf eigene Daten und Dienste zu gewähren. Der Vortrag soll die Funktionsweise des OAuth-Protokolls erläutern und es mit alternativen Ansätzen wie OpenID vergleichen. Welche Probleme treten auf, wenn OAuth für Desktop-Anwendungen verwendet wird?

    Quellenvorschläge:

    1. Offizielle OAuth-Dokumentation
    2. Podcast mit Übersicht über OAuth

    Betreuer: Michael Roitzsch
  • POSIX Capabilities

    Status:<abgeschlossen>

    Aufgabe: Capability-basierte Sicherheit ist ein akzeptiertes Sicherheitsmodell für Mikrokernsysteme und wird z.B. benutzt um das Prinzip der minimalen Privilegien (Principle of Least Authority) zu implementieren. In der Welt der UNIX-Betriebssysteme hat sich mit der POSIX Capabilities API ein Verständnis von Capabilities etabliert, dass sich von dem in der Wissenschaft unterscheidet. Der Vortrag soll in POSIX Capabilities einführen und Unterschiede zum klassischen Capabilities-Konzept aufzeigen. Weiterhin sollen Probleme und Weiterentwicklungen der API diskutiert werden, wie z.B. Capsicum.

    Quellenvorschläge:

    1. POSIX Capabilities Myths
    2. Capsicum

    Betreuer: Julian Stecklina
  • Scheduling in Linux

    Status:<abgeschlossen>

    Aufgabe: Eine der Kernaufgaben eines Betriebssystems ist es, zwischen mehreren parallel laufenden Anwendungen zu vermitteln und gemeinsam genutzte Resourcen sinnvoll zu verteilen. Der Vortrag soll die aktuellen Scheduling-Mechanismen in Linux beleuchten. Dabei kann zum Beispiel auf den Completely Fair Scheduler (CFS), den RT-Patch und das I/O-Scheduling eingegangen werden.

    Quellenvorschläge:

    1. Inside the Linux 2.6 Completely Fair Scheduler
    2. RTwiki

    Betreuer: Michael Roitzsch
  • Unicode

    Status:<abgeschlossen>

    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: Michael Roitzsch
  • AACS - Der Kopierschutz der designierten DVD-Nachfolger

    Status:<abgeschlossen>

    Aufgabe: Zwei konkurrierende Disk-Formate versuchen aktuell ziemlich erfolglos die DVD zu beerben. Was beide neben schlechten Verkaufszahlen gemeinsam haben, ist der eingesetzte Kopierschutz: AACS, das "Advanced Access Content System". Stellen Sie in Ihrem Vortrag die genaue Funktionsweise von AACS vor. Gehen Sie auch auf die Schwachstellen ein, unter denen der Schutz bereits gelitten hat und wie auf diese Schwachstellen reagiert werden kann. Vor diesem technischen Hintergrund sollten auch die Auswirkungen des Schutzes auf den Nutzer und sein Medienverhalten diskutiert werden.

    Quellenvorschläge:

    1. aacs_technical_overview_040721.pdf
    2. AACS_Spec-Prerecorded_Video_0.90.pdf
    3. AACS Presentation to CPTWG 022806.pdf
    4. heise online - Hacker reißen neues Loch in AACS-Verschlüsselung
    5. heise online - Das Blu-ray-Lager: Nächste Sicherheitsstufe bald erreicht

    Betreuer: Michael Roitzsch
  • 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
  • Build-Systeme --- Alternativen zu make?

    Status:<abgeschlossen>

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

    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
  • Build-Systeme --- Alternativen zu make?

    Status:<abgeschlossen>

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

    Quellenvorschläge:

    1. Make
    2. GNU/Auto{conf,make}
    3. SCons
    4. Apache Ant

    Betreuer: Björn Döbel
  • C++-0x oder neues vom neuen C++ Standard

    Status:<abgeschlossen>

    Aufgabe:

    Quellenvorschläge:

    Betreuer: Marcus Völp
  • Covert Channels

    Status:<abgeschlossen>

    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
  • Das Windows Sicherheitsmodell

    Status:<abgeschlossen>

    Aufgabe: Die Rechteverwaltung von UNIX mit Nutzer- und Gruppen-ID und dem klassischen Rechte-Tripel für Dateien ist hinlänglich bekannt. Was in Windows hinter den Kulissen vorgeht, soll Gegenstand dieses Vortrags sein. Es soll ein Überblick gegeben werden und dabei im Rahmen der zeitlichen Möglichkeiten auf einige der folgenden Fragen eingegangen werden:
    Welche Sicherheits-Konzepte benutzt Windows? Was sind "Access Tokens" und "Security Descriptors"? Wie funktionieren UAC und UIPI in Vista? Welche Objekte im System werden wie geschützt? Warum sind Windows-Nutzer trotz alledem so oft von Malware betroffen? Wo sind die Lücken in der Sicherheitsarchitektur und warum existieren sie? Können Werkzeuge wie DropMyRights helfen?

    Quellenvorschläge:

    1. Access Tokens
    2. Security Descriptors
    3. Securable Objects
    4. User Account Control
    5. User Interface Privilege Isolation
    6. DropMyRights
    7. Podcast mit Überblick

    Betreuer: Michael Roitzsch
  • 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
  • Dynamic Binary Analysis

    Status:<abgeschlossen>

    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
  • Dynamische Instrumentierung mit Pin

    Status:<abgeschlossen>

    Aufgabe: Pin ist neben Valgrind ein weiteres Tool zur dynamischen Instrumentierung von Anwendungen. Im Vortrag sollen Pin und seine Anwendungsmöglichkeiten vorgestellt werden. Gegebenenfalls ist auch ein Vergleich zu Valgrind interessant.

    Quellenvorschläge:

    1. Homepage
    2. weitere Hinweise beim Betreuer

    Betreuer: Björn Döbel
  • Einführung in CC Evaluation

    Status:<abgeschlossen>

    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: Marcus Völp
  • 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
  • Farbmanagement

    Status:<abgeschlossen>

    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
  • Grand Central Dispatch in Mac OS X 10.6

    Status:<abgeschlossen>

    Aufgabe: Mac OS X 10.6 bringt eine neue Technik namens Grand Central Dispatch (GCD) mit, die den Anspruch erhebt die Programmierung für Multicore-Prozessoren erheblich zu vereinfachen. Programmierer müssen sich nicht mehr mit Threads und Locking auseinandersetzen, sondern ihr Programme "nur" noch in einzelne Arbeitspakete zerlegen, die dann von der der GCD-Runtime parallel (oder auch nicht) ausgeführt werden. Der Vortrag sollte die Konzepte hinter GCD erläutern (z.B. Dispatch-Queues, Blocks für C, C++ und Objective C, ...) und einen Überblick über Anforderungen, Leistungsumfang und mögliche Limitierungen geben.

    Quellenvorschläge:

    1. Entwicklerdokumentation von Apple
    2. weitere Hinweise beim Betreuer

    Betreuer: Carsten Weinhold
  • Hardwarebeschleunigung für Video-Decoding und -Encoding

    Status:<abgeschlossen>

    Aufgabe: Da Video ein häufiger Anwendungsfall ist, wird zunehmend spezielle Hardware für das Abspielen oder Erzeugen von Videoströmen genutzt. Der Vortrag soll einen Überblick über existierende Lösungen im Desktop- und Mobilbereich geben. Dabei soll darauf eingegangen werden, welche Teile des De- oder Encodier-Prozesses beschleunigt werden und wenn möglich Angaben zum Stromverbrauch gegeben werden. Weiterhin ist interessant, ob diese Lösungen auf spezielle Videocodecs (z.B. H.264) zugeschnitten sind, oder soweit programmierbar sind, dass sie für zukünftige Entwicklungen anpassbar sind.

    Quellenvorschläge:

    1. NVIDIA GeForce 8600: Full H.264 Decode Acceleration
    2. ATI Avivo
    3. Reconfigurable Video Coding

    Betreuer: Michael Roitzsch
  • K42

    Status:<abgeschlossen>

    Aufgabe:

    Betreuer: Michael Peter
  • Komplexität von Software

    Status:<abgeschlossen>

    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: Björn Döbel
  • 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
  • Model-checking C applications

    Status:<abgeschlossen>

    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
  • Open-Source VPN Systeme

    Status:<abgeschlossen>

    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
  • PCI-Express

    Status:<abgeschlossen>

    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
  • Parser-Generatoren

    Status:<abgeschlossen>

    Aufgabe: Statische Source-Code-Analyse und der Einsatz von Domain-Specific Languages sind zwei wichtige Bestandteile moderner Softwareentwicklung. Beide Konzepte wären ohne die Existenz von Parser-Generatoren wesentlich schwieriger zu realisieren. In diesem Hauptseminar soll einer der unten genannten Parser-Generatoren vorgestellt werden: ANTLR, Elkhound oder SableCC.

    Quellenvorschläge:

    1. ANTLR Parser Generator
    2. T. Parr: "The definitive ANTLR reference", beim Betreuer auszuleihen

    Betreuer: Björn Döbel
  • Quelltext-Verwaltungs-Systeme

    Status:<abgeschlossen>

    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
  • 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
  • Systemweites Profiling

    Status:<abgeschlossen>

    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: Michael Roitzsch
  • Thread Level Speculation

    Status:<abgeschlossen>

    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
  • 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
  • Ultra-Large-Scale Systems

    Status:<abgeschlossen>

    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
  • Vergleich von CMake und Automake

    Status:<abgeschlossen>

    Aufgabe:

    Quellenvorschläge:

      Betreuer: Björn Döbel
    1. Wavelet-basierte Videokodierung

      Status:<abgeschlossen>

      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
    2. 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
    3. ZFS

      Status:<abgeschlossen>

      Aufgabe: Geben Sie einen Überblick über Suns Dateisystem ZFS. Gehen sie insbesondere auf die Besonderheiten ein in denen ZFS sich von anderen heute gebräuchlichen Dateisystemen unterscheidet, zum Beispiel die integrierte Verwaltung von Datenträgern oder die Copy-on-Write-Mechanismen. [genaueres beim Betreuer]

      Quellenvorschläge:

      1. ZFS

      Betreuer: Carsten Weinhold
    4. Zugriffskontrolle in aktuellen Betriebssystemen

      Status:<abgeschlossen>

      Aufgabe: Der Vortrag soll die in aktuellen Systemen verwendeten Zugriffskontroll- und Rechte-Beschränkungs-Systeme gegenüberstellen. Unter Linux wären da konkret AppArmor und SELinux, unter Windows Vista wahrscheinlich UAC, UIPI und vielleicht weitere, sowie unter Mac OS X Seatbelt zu nennen. Welche Möglichkeiten bieten die einzelnen Systeme, Anwendungen zu beschränken, wie ausdrucksstark sind sie und wie kommt man als Nutzer damit in Kontakt?

      Quellenvorschläge:

      1. SELinux
      2. AppAmour
      3. Wikipedia: User_Account_Control
      4. Wikipedia: User_Interface_Privilege_Isolation
      5. TrustedBSD: MAC
      6. Re: improving the Seatbelt system

      Betreuer: Michael Roitzsch

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

    Stand: 13.11.2014, 13:37 Uhr
    Autor: Dipl.-Inf. Björn Döbel