Semester | |
Modulnummer | INF-VS-041 |
Studiengänge | Informatik Bachelor, Informations-Systemtechnik Bachelor, Wirtschaftsinformatik Bachelor |
IBR Gruppe | DS (Prof. Kapitza) |
Art | Seminar |
Dozent | |
Assistent | |
LP | 5 |
SWS | 0+2 |
Ort & Zeit | *Kick-Off Meeting* Dienstag, 09.04.2019, 12:00 Uhr, IZ 105 Wöchentliches Treffen: TBA, IZ 105 |
Scheinerwerb | Abgabe der Ausarbeitung, Programmierauftrag und erfolgreiche Präsentation. Die Note ist sowohl von der Beteiligung im Seminar als auch der Qualität der Ausarbeitung und Präsentation abhängig. |
Inhalt | The seminar is dedicated to exploring systems programming in a well-established environment. It will address problems of programming, tools and modern hardware. The topics covered in the seminar will include: - Modern Hardware: RDMA, Transactional memory
- Trusted Execution: SGX, AMD SME, TrustZone
- Tools: Pin tool, LLVM
- OS examples: Linux drivers, Genode, PineOS
- Virtualization
Seminarthemen | Thema | | | 1) Using Remote Direct Memory Access (RDMA) efficiently to enable a fast network communication | | | RDMA is a technology that enables direct data movement between the memory of remote computers in a zero-copy manner, without the support of the operating system. Consequently, it helps to reduce the CPU load and to decrease the network overhead. Task: Explain how to enable an RDMA-based network communication and implement a sample application using C or C++. Hints | | | 2) How to secure applications using SGX? | | | In the last years, cloud computing faced trust issues for applications managing sensitive data. To address this, Intel developed Software Guard Extensions (SGX) which allows the creation of one or more trusted execution environments inside an application, guarded against unauthorized accesses by higher privileged code and attackers. Task: Explain how to secure applications using SGX and implement a sample application using C/C++. Hints | | | 3) How to update data in a distributed system via Conflict-free Replicated Data Types (CRDTs)? | | | Task: Explain how CRDT replication works and implement a sample application using C or C++. This includes to explore a few different CRDTs and show their benefits compared to traditional solutions. Also, it would be of interest to show how they are used in industry, examples include Redis, Riak, and Facebook. Hints | | | 4) Lessons learned from building applications completely in Rust | | | Task: In the last year, there has been a lot of interest to Rust programming language, which promises security properties and is claimed to be the next fastest language. Your task is to explain what features Rust provides, and implement a benchmark comparing its performance with the C language. Hints | | | 5) Understanding Transactional Memory | | | Task: Transactional Memory is a general concurrency mechanism that uses transactions instead of locks with a strong guarantees of no parralelism issues (deadlocks, race conditions, etc). Your task is to present a hands-on result from using a TM library, and explain its benefits over the usual mutex and locks mechanisms. Hints | | | 6) How to implement fundamental operating system services? | | | Task: The idea is to present the fundamentals to implement operating system services, such as device drivers, file systems, multi-tasking processing and to rely on educational Unix-like OS such as MINIX. Hints | | | 7) How to implement a Linux device driver? | | | Task: The role of a driver is provide mechanisms to users to access particular protected part of hardware. Your task is to present hands-on results of how we can implement a linux device driver in order to gain access to a particular device that is of interest. Hints | | | 8) Atomic operations, from basics to advanced | | | Task: When parallel threads are accessing data, mutual exclusion prevents data races. Atomic operations are alternatives to locks, relatively quick and do not suffer from deadlocks. Your task is to present hands-on results explaining atomic operations from basics to advanced. Hints | | | 9) Using Rust SGX SDK | | | Task: Exploring the Rust SGX SDK that connects Intel SGX and Rust programming language Hints | | Das Seminar Die Präsentation und die Ausarbeitung muss auf Englisch vorbereitet werden. Jeder Teilnehmer übernimmt die Veröffentlichung(en) eines Themas. Alle Teilnehmer erstellen ein Peer Review, dazu gehört: - Besuch des Probevortrags des Peers inklusive Feedback
- Review der Ausarbeitung der Peers vor der Abgabe.
- Machen Sie mit, indem Sie Fragen stellen und zur Diskussion beitragen.
Bemerkungen Die abzugebenden Dokumente umfassen die Ausarbeitung und einen Foliensatz: - Präsentation und Ausarbeitung auf Englisch.
- Programmierauftrag.
- Präsentationszeit ca. 25 Minuten.
- Länge der Ausarbeitung ca. 4 Seiten.
Jeder Teilnehmer sollte auf seinem Paper aufbauende Veröffentlichungen studieren. Die Seminarbetreuer können bei der Themenfindung helfen. An der Universität werden akademische und persönliche Integrität groß geschrieben. Dementsprechend muss die Ausarbeitung in eigenen Worten erfolgen. Plagiate verstoßen gegen die Prüfungsordnung. Templates Das LaTeX Template für die Ausarbeitung findet sich hier. Zusätzliche Anregungen zur Ausarbeitung finden sich hier. LaTeX Templates für den Foliensatz befinden sich hier. Material Diese Unterlagen sind nur für registrierte Teilnehmer zugänglich. Um sich zu registrieren, benötigen Sie entweder einen IBR-POSIX-Account, den Sie vielleicht bereits im Rahmen einer Arbeit am Institut erhalten haben, oder einen selbst aktivierten IBR-y-Account. Anschließend melden Sie sich über die Login-Funktion dieser Website an. 1. Atomic operations, from basics to advanced 2. How to secure applications using SGX? 3. Lessons learned from building applications completely in Rust 4. How to implement a Linux device driver? 6. Trusted counter using SGX Rust SDK 7. Using RDMA efficiently 8. Conflict-free Replicated Data Types(CRDTs) 9. Multiple Enclaves with Intel VCA |
Termine | 09.04.2019, 13:15 Uhr Kick-off Meeting (IZ Raum 105) 21.05.2019, 13:15 Uhr Presentation "Atomic operations, from basics to advanced" (IZ Raum 105) 28.05.2019, 13:15 Uhr Presentation "How to secure applications using SGX?" (IZ Raum 105) 28.05.2019, 13:15 Uhr Presentation "Building applications completely in Rust" (IZ Raum 105) 04.06.2019, 13:15 Uhr Presentation "How to implement a Linux device driver?" (IZ Raum 105) 18.06.2019, 13:15 Uhr Presentation "Educational Operating Systems" (IZ Raum 105) 25.06.2019, 13:15 Uhr Presentation "Using Rust SGX SDK to implement a trusted counter" (IZ Raum 105) 02.07.2019, 13:15 Uhr Presentation "Efficient use of Remote Direct Memory Access" (IZ Raum 105) 09.07.2019, 13:15 Uhr Presentation "Conflict-free Replicated Data Types (CRDTs)" (IZ Raum 105) 09.07.2019, 13:15 Uhr Presentation "Multiple Enclaves with Intel VCA" (IZ Raum 105) |
Literatur/Links | Slides and template: Hilfestellung zum Seminar: Für die Literaturrecherche können folgende Links hilfreich sein: (La)TeX Tips + Tricks |