Wombat: A Portable User-Mode Linux for Embedded Systems Jiyong Park Real-Time Operating Systems Laboratory, Seoul National University, Korea 2006-06-09
Reference Paper Ben Leslie, Carl van Schaik, and Gernot Heiser, “Wombat: A Portable User-Mode Linux for Embedded Systems,” Proceedings of the 6th Linux Conference, April 2005
Motivation Provide Linux APIs to embedded programmers Linux is not suitable for embedded systems It does not support hard real-time. It is not highly robust. It has big trusted computing base (TCB). Proprietary firmware are subject to GPL. But, Linux supports many useful legacy applications. Solution Wombat: User-mode Linux on top of micro kernel
Wombat: Australian marsupial What is Wombat? Linux kernel modified to run on top of L4/Iguana Very similar to L4Linux Key mechanisms are exactly the same. I will not explain them again. Key differences Wombat: run on top of Iguana L4Linux: run on top of L4 directly Wombat: developed by NICTA L4Linux: developed by DUT Wombat: Australian marsupial
Relationship Between Wombat and Iguana Real-time applications are managed by Iguana Non real-time Linux tasks are managed by Wombat Wombat itself is managed by Iguana Untrusted Legacy Applications Wombat Linux Server Real-time Applications Similar to RTLinux managed by Iguana L4 Hardware
Benefits of Using Iguana Real-time Real-time tasks and non real-time Linux tasks can run on the same machine. Robust Real-time tasks are isolated with the fault or crash at Linux world. Linux server can be upgraded on-the-fly. TCB TCB is small (L4 + Iguana). GPL Firmware are free from GPL.
Structure of Wombat Wombat server Linux processes Compatibility mode Native mode Address space Protection domain L4 thread Compatibility mode Linux process Real-time tasks Iguana Servers Real-time tasks Interrupt threads Bottom half thread Main thread Wombat server Native mode Linux process Iguana Server Real-time tasks
Native and Compatibility Modes Native mode Linux processes Run inside the shared address space (similar to uClinux) Can use Iguana services Can communicate with real-time tasks Context switching and communication are fast Address space model is different with conventional Linux processes Compatibility mode Linux processes Full binary Linux compatibility Can not use Iguana services Can not communicate with real-time tasks Context switching and communication is slow
Mechanisms of Wombat System call handling, exception handling, scheduling, and etc. are the same as L4Linux.
Performance – System Call Null system call Linux: 0.392 us Wombat: 1.38 us UML: 8.99 us Pipe system call Linux: 5.05 us Wombat: 8.83 us UML: 66.8 us UML processes UML Linux processes Linux UML: User-Mode Linux
Performance – Context Switch Context switching time of Wombat is very close to that of Linux. Number of active processes Context switching time(us) UML with 16k cache UML with 0k cache Linux, Wombat with 16k cache Linux, Wombat with 0k cache Pentium4 @ 2.8GHz
Performance – Use of FASS L4-embedded supports FASS on ARM processor. Linux currently does not support FASS on ARM. So, Wombat achieves better performance than Linux. Latencies Linux Wombat Rel. lat_ctx -s 0 2 190.8 6.48 29.44 lat_ctx -s 0 3 197.1 18.82 10.47 lat_ctx -s 0 4 199.5 19.78 10.09 lat_ctx -s 0 10 215.7 44.07 4.89 lat_ctx -s 4 2 257.7 7.15 36.04 lat_ctx -s 4 3 259.3 23.26 11.15 lat_ctx -s 4 4 293.4 40.28 7.28 lat_ctx -s 4 10 285.1 141.96 2.01 lat_fifo 377 80.07 4.71 lat_pipe 378.4 81.56 4.64 lat_unix 764.5 107.48 7.11 lat_syscall 0.82 4.73 0.17 lat_proc procedure 0.21 1 lat_proc fork 4334 5706 0.76 lat_proc exec 4600 6400 0.72 XScale PXA255 @ 200MHz (time unit: us)
Conclusion Wombat goes one step further than L4Linux. Real-time tasks can coexist with Linux tasks Native mode Linux process reduces overhead of context switchings However, Linux itself is becoming suitable for real-time systems.
Thank You!!!