| Carl Friedrich Gauß Faculty | Department of Computer Science

Seminar Verteilte Systeme: Systems programming (Bachelor)

Module #INF-VS-041
ProgrammesBachelor Informatik, Bachelor Informations-Systemtechnik, Bachelor Wirtschaftsinformatik
IBR GroupDS (Prof. Kapitza)
PhotoProf. Dr. Rüdiger Kapitza

+49 531 3913294
Room 135
PhotoInes Messadi
Wissenschaftliche Mitarbeiterin

+49 531 3913295
Room 117
Time & Place

*Kick-Off Meeting* Tuesday, 09.04.2019, 13:15, IZ 105

Weekly meeting time: TBA, IZ 105

Certificates Submission of the essay, programming assignment and successful presentation. The grade is determined by the activity in the seminar as well as the quality of essay and presentation.
Content 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

Seminar Topics

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++.


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++.


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.


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.


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.


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.


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.


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.


9) Using Rust SGX SDK
Task: Exploring the Rust SGX SDK that connects Intel SGX and Rust programming language



The talk and essay has to be done in English. Each participant will take one or more papers under a specific topic. Participants are responsible for a peer review, including:

  • Attend peer's presentation dry run and give feedback.
  • Review peer's essay before submission.
  • Participate by asking questions, contributing to the discussion.


Please submit the essay as well as your presentation slides. The requirements for presentation and essay are listed as follows:

  • Presentation and essay in English.
  • Programming assignment.
  • Presentation time about 25 minutes.
  • Essay should comprise about 4 pages.

Each participant is supposed to do further research based on the paper. The supervisors are always glad to help in this case.

The strength of the university depends on academic and personal integrity. In this seminar, essays must be done in your own words. Plagiarism is an offense against the examination regulations.


The LaTeX template for seminar essay can be found here.

Additional considerations for the design of the essay can be found on the website of IBR.

LaTeX templates for presentation slides can be found here.

Additional considerations for the design can be found on the website of IBR.


The material is only available to registered attendees. In order to register, you need either an IBR POSIX account or a self-activated IBR-y-account. Afterwards you can login to this site.
[ Podcast | Podcast aller Formate | Newsfeed aller Formate ]
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?
5. Educational OS
6. Trusted counter using SGX Rust SDK
7. Using RDMA efficiently
8. Conflict-free Replicated Data Types(CRDTs)
9. Multiple Enclaves with Intel VCA
[ Subscribe Calendar | Download Calendar ]
09.04.2019, 13:15Kick-off Meeting (IZ Raum 105)
21.05.2019, 13:15Presentation "Atomic operations, from basics to advanced" (IZ Raum 105)
28.05.2019, 13:15Presentation "How to secure applications using SGX?" (IZ Raum 105)
28.05.2019, 13:15Presentation "Building applications completely in Rust" (IZ Raum 105)
04.06.2019, 13:15Presentation "How to implement a Linux device driver?" (IZ Raum 105)
18.06.2019, 13:15Presentation "Educational Operating Systems" (IZ Raum 105)
25.06.2019, 13:15Presentation "Using Rust SGX SDK to implement a trusted counter" (IZ Raum 105)
02.07.2019, 13:15Presentation "Efficient use of Remote Direct Memory Access" (IZ Raum 105)
09.07.2019, 13:15Presentation "Conflict-free Replicated Data Types (CRDTs)" (IZ Raum 105)
09.07.2019, 13:15Presentation "Multiple Enclaves with Intel VCA" (IZ Raum 105)

Slides and template:

On World-Wide-Web, there are different ways to enhance your seminar presentations:

For the literature review there links might be helpful:

(La)TeX Tips + Tricks

last changed 2020-07-14, 15:34 by Ines Messadi