Microkernel-based Operating Systems - Exercise 3, WS2019 -------------------------------------------------------- Download updated L4Re tarball for this exercise: https://os.inf.tu-dresden.de/Studium/KMB/WS2019/Exercise3.tar.bz2 Unpack and build it: #> cd /where/you/want #> tar xvf /where/you/put/Exercise3.tar.bz2 #> cd tudos #> make setup ---> choose x86-32 #> make -j8 The tarball also contained a template for this exercise in the ex3/ directory, which is located next to tudos/: It contains source code for two programs: #> cd .. #> ls ex3 tudos The emplate contains two programs: ex3/src/faulty -- a very simple "hello world" program ex3/src/executor -- a skeleton for an application launcher Build 'faulty' and the (still empty) 'executor' programs: #> make -C ex3 The modules.list file in tudos/src/l4/conf/modules.list contains two preconfigured entries for this exercise: entry faulty roottask moe --init=rom/faulty module l4re module faulty entry executor roottask moe --init=rom/executor module l4re module executor module faulty Run faulty in QEmu: #> make -C tudos/obj/l4/x86 qemu E=faulty You should see an output line saying 'Hello, I am faulty.'. Run executor in QEmu: #> make -C tudos/obj/l4/x86 qemu E=executor You should see an output line saying 'Hello, I am your executor!', but no message from the 'faulty' program, because this program is not started at all. We want to start faulty using our own program launcher. Extend ex3/src/executor/executor.cc into a program loader and pager for 'faulty'. The goal is to run the 'faulty' program in a new task and handle all page faults until the program successfully prints 'Hello, I am faulty.'.