de | en

Practical Course - Operating Systems - L4-Microkernels (IN0012, IN2106, IN4258)

Course 0000002780 in WS 2019/20

General Data

Course Type practical training
Semester Weekly Hours 6 SWS
Organisational Unit Informatics 13 - Associate Professorship of Integrated Computing Systems- (Prof. Baumgarten)
Lecturers David Werner
Responsible/Coordination: Uwe Baumgarten
Dates Tue, 13:00–15:00, BC2 BC2 3.1.08

Assignment to Modules

Further Information

Courses are together with exams the building blocks for modules. Please keep in mind that information on the contents, learning outcomes and, especially examination conditions are given on the module level only – see section "Assignment to Modules" above.

additional remarks This course introduces the basic tasks of a modern operating system. These tasks target aspects like system calls, device drivers, I/O management, processing and memory management. The mentioned categories base the central theme of the course. The first part of the course will cover the basic aspects required for embedded computing, providing an introduction to fundamental hardware aspects like (ARM) architecture, ISA, system on a chip (SoC), single-board computer (SBC) and emulation environments (e.g. QEMU). The second part will address the basics regarding bootstrapping and interacting with the given hardware platform, providing the foundation for operating system utilization. Relevant aspects include working with technical reference manuals (TRMs) as well as the utilization of firmware and bootloader components. The third part will introduce a specific type of operating system on top of such an embedded hardware platform: the L4-microkernel family, especially focusing on the two most modern derivates L4 Fiasco.OC [1] and seL4 [2]. After the introduction and the overview of the differences to the original L4 design principles, the most important operating system concepts will be addressed. Inter-process communication as well as the core concept of capabilities will be presented in more detail in the following. The last part of this course will then cover the the Genode Operating System Framework [3], in order to provide a suitable userland environment for the kernels mentioned above. This part will serve as detailed introduction about the core concepts of Genode and will provide an overview about its basic software modules. Additional topics covered will target Genode application and driver development. The practical part of this course will focus on the aspect of porting a L4-based operating system to an embedded hardware platform (represented by a SBC, e.g. a Raspberry Pi). Relevant porting tasks will address in general SoC (e.g. CPU), timer and I/O communication like UART, USB and NIC. Besides the kernel, also the userland will have to be addressed (e.g. driver porting/development).
Links E-Learning course (e. g. Moodle)
TUMonline entry
Top of page