Microkernel-based Operating Systems - Exercise 3, WS2018 -------------------------------------------------------- Download L4Re tarball from 1st exercise: https://os.inf.tu-dresden.de/Studium/KMB/WS2018/Exercise1.tar.bz2 Unpack and build it: #> cd /where/you/want #> tar xvf /where/you/put/Exercise1.tar.bz2 #> cd tudos #> make setup ---> choose x86-32 #> make -j8 Download exercise template: https://os.inf.tu-dresden.de/Studium/KMB/WS2018/Exercise3.tar.bz2 Unpack exercise tarball _next to_ tudos directory: #> cd .. #> ls tudos #> tar xvf /where/you/put/Exercise3.tar.bz2 #> ls tudos ex3 ^^^^^ --- tudos and ex3 in same directory Now build 'faulty' and the (still empty) 'executor' programs: #> make -C ex3/src Add a new entry to tudos/src/l4/conf/modules.list: entry faulty roottask moe --init=rom/faulty module l4re 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.'. Modify modules.list so that 'executor' is started instead, with 'faulty' being passed as an additional module: entry faulty roottask moe --init=rom/executor module l4re module executor module faulty 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.' again.