|
Hauptseminar
Diese Website ist veraltet. Aktuelle Informationen zu Lehrveranstaltungen der Professur Betriebssysteme werden ab sofort auf unserer neuen Website bereitgestellt.
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 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 ist evtl. sinnvoll 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,
so dass 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 E-Mail.
Quellenvorschläge:
Betreuer: [wird festgelegt]
-
3D-Video mit H.264/MVC
Status:<abgeschlossen>
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:
-
Efficient Compression of Multi-View Video
-
MVC Encoder von Nokia Research
Betreuer: Michael Roitzsch
-
Checkpoint/Restart in Linux
Status:<vergeben>
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:
-
CRIU
Betreuer: Maksym Planeta
-
Comparative analysis of benchmark suites
Status: <verfügbar>
Aufgabe:
Benchmark suites are used for performance evaluation of both hardware and software. To evaluate a specific part of a system, a researcher should know which benchmarking applications to use, because different benchmarks serve different purposes.
The task of this report is to make overview of the benchmarks used in a specific area (HPC, embedded systems, real-time). The student should make a comparative analysis of the selected suites and explain what makes selected set of benchmarks different. And how to choose the right evaluation tool.
Quellenvorschläge:
-
PRK
-
NPB
-
SPEC MPI
-
Miniapps
-
HPCC
-
Graph500
-
Top500
Betreuer: Maksym Planeta
-
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:
-
Vala Homepage
Betreuer: Nils Asmussen
-
Fuzzing
Status:<abgeschlossen>
Aufgabe:Geben Sie einen Überblick über Fuzzing als Technik zur Fehlersuche in Programmen. Gehen Sie dabei insbesondere auf die LLVM-basierte LibFuzzer ein.
Quellenvorschläge:
-
libFuzzer
Betreuer: Michael Roitzsch
-
Game Engines als Echtzeit- und Multicore-Last
Status:<abgeschlossen>
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:
-
Real Time Game Loop Models for Single-Player Computer Games
-
Game Development: Harder Than You Think
Betreuer: Michael Roitzsch
-
Verbesserung der Vertrauenswürdigkeit von X.509-Zertifikaten
Status:<abgeschlossen>
Aufgabe:
Zertifikate sind ein elementarer Bestandteil der Sicherheitsinfrastruktur des
Internets. Jede verschlüsselte Verbindung über TLS basiert auf der
Vertrauenswürdigkeit eines X.509-Zertifikats. Leider ist der Status quo sehr
unbefriedigend, da hierbei jeder Certificate Authority weltweit gleichermaßen
vertraut werden muss. Der Vortrag soll einen Überblick über Ansätze geben,
diese Situation zu verbessern und die verschiedenen Lösungen
gegenüberstellen. Dabei können Aspekte wie die Umsetzbarkeit, aber auch
Zentralisierung und Privatsphäre der Nutzer betrachtet werden.
Quellenvorschläge:
-
Certificate Pinning
-
Certificate Transparency
-
Convergence
-
Perspectives
-
Monkeysphere
Betreuer: Michael Roitzsch
-
GCC -O3
Status:<vergeben>
Aufgabe:
In der GCC Version 4.4.5, stehen 62 einzelne Optimierungsoptionen
hinter der Option -O3. In diesem Hauptseminar sollen die
vorhandenen und zukünftig geplanten Optimierungen der GNU Compiler
Collection, sowie anderer prominenter Compiler vorgestellt und
idealerweise anhand von Betriebssysteme-Code bewertet werden.
Quellenvorschläge:
-
GCC-Manual
-
Clang-Manual
-
weitere Hinweise beim Betreuer
Betreuer: Jan Bierbaum
-
Sichere Programmierung mit Rust
Status:<abgeschlossen>
Aufgabe:
Stellen Sie die Programmiersprache Rust im Hinblick auf
gängige Sicherheitslücken und Probleme mit C vor.
Betreuer: Nils Asmussen
-
AACS - Der Kopierschutz der designierten DVD-Nachfolger
-
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:
-
AMD-Webseiten
-
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:
-
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:
-
Make
-
GNU/Auto{conf,make}
-
JAM
-
SCons
-
Apache Ant
-
MSBuild
-
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:
-
Make
-
GNU/Auto{conf,make}
-
SCons
-
Apache Ant
Betreuer: Björn Döbel
-
C++-0x oder neues vom neuen C++ Standard
Status:<abgeschlossen>
Aufgabe:
Quellenvorschläge:
Betreuer: Marcus Völp
-
Content Delivery Networks
Status:<abgeschlossen>
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:
-
Content Delivery Networks
-
The Akamai Network
-
Multicast
Betreuer: Michael Roitzsch
-
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:
-
Proctor, Neumann: Architectural Implications of Covert
Channels, 15th National Computer Security Conference,
Baltimore, 13-16 October 1992
-
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:
-
Access Tokens
-
Security Descriptors
-
Securable Objects
-
User Account Control
-
User Interface Privilege Isolation
-
DropMyRights
-
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:
-
Valgrind Homepage
-
Valgrind Publikationen
-
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:
-
Homepage
-
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:
-
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
-
Esoterische Betriebssysteme -- POK
Status:<abgeschlossen>
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:
-
Website
Betreuer: Björn Döbel
-
Farbmanagement
-
Google Protocol Buffers
Status:<abgeschlossen>
Aufgabe:Stellen Sie Funktionsweise und Benutzung von Google's Protocol Buffers zur effizienten Serialisierung und Übertragung von Daten vor.
Quellenvorschläge:
-
Entwickler-Webseite
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:
-
Entwicklerdokumentation von Apple
-
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:
-
NVIDIA GeForce 8600: Full H.264 Decode Acceleration
-
ATI Avivo
-
Reconfigurable Video Coding
Betreuer: Michael Roitzsch
-
K42
-
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:
-
Stichworte: Halstead, McCabe
-
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:
-
Microsoft .NET Information
-
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:
-
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:
-
[Literatur beim Betreuer]
Betreuer: Marcus Völp
-
Model-checking C applications
-
OAuth - Authentisierung zwischen Web-Anwendungen
Status:<abgeschlossen>
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:
-
Offizielle OAuth-Dokumentation
-
Podcast mit Übersicht über OAuth
Betreuer: Michael Roitzsch
-
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:
-
[beim Betreuer]
Betreuer: Udo Steinberg
-
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:
-
POSIX Capabilities Myths
-
Capsicum
Betreuer: Julian Stecklina
-
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:
-
ANTLR Parser Generator
-
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:
-
svk
-
gnu-arch
-
monotone
-
quilt
-
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:
-
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:
-
[RFC 2960] Stream Control Transmission Protocol
-
[RFC 3257] Stream Control Transmission Protocol Applicability
Statement.
-
[RFC 3286] An Introduction to the Stream Control Transmission
Protocol (SCTP).
-
[RFC 3309] Stream Control Transmission Protocol (SCTP)
Checksum Change.
-
[RFC 3436] Transport Layer Security over Stream Control
Transmission Protocol.
Betreuer: Udo Steinberg, Jork Löser
-
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:
-
Inside the Linux 2.6 Completely Fair Scheduler
-
RTwiki
Betreuer: Michael Roitzsch
-
Schutz privater Daten auf mobilen Geräten
-
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:
-
David
W. Binkley: "C++ in Safety Critical Systems"
-
MISRA: "Guidelines for the use of the C language in vehicle
based software" (beim Betreuer ausleihbar)
-
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:
-
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:
-
OProfile für Linux
-
Solaris Dynamic Tracing
-
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:
-
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:
-
Next
Generation Posix Threads (NGPT)
-
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:
-
CMU Software Engineering Institute: Ultra-Large-Scale Systems
- The Software Challenge of the future (beim Betreuer auszuleihen)
Betreuer: Björn Döbel
-
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:
-
Unicode Home Page
-
Unicode
4.0 Standard
-
Security
Considerations for the Implementation of Unicode and Related
Technology
-
Unicode
FAQ: Security Issues
Betreuer: Michael Roitzsch
-
Vergleich von CMake und Automake
Status:<abgeschlossen>
Aufgabe:
Quellenvorschläge:
Betreuer: Björn Döbel
-
Wavelet-basierte Videokodierung
-
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:
-
www.webdav.org
-
RFC 2518
-
RFC 3253
-
Astrid Keßler, André Malo (jo):
"Das beschreibbare Web,
Übersicht über die HTTP-Erweiterung WebDAV",
c't 10/03, Seite 216.
Betreuer: Martin Pohlack
-
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:
-
ZFS
Betreuer: Carsten Weinhold
-
Zugriffskontrolle in aktuellen Betriebssystemen
Last modified: 2nd Apr 2020, 1.35 PM
Author: Webmaster
|