EMERALDS: a microkernel for embedded real-time systems
Khawar M. Zuberi, Kang Geun Shin · 2002
EMERALDS (Extensible Microkernel for Embedded, ReAL-time, Distributed Systems) is a realtime microkernel designed for cost-conscious, small to medium size embedded systems. It not only offers standard OS services like multi-threaded processes, real-time scheduling, protected address spaces, message-passing, semaphores, and timers, but does so in an efficient manner while keeping the kernel size to just tens of kilobytes. For efficiency, EMERALDS uses the novel approach of mapping the kernel into each user-level address space, so even with full memory protection, system calls do not need context switches unless a user-level server is involved. EMERALDS also provides the flexibility for users to add communication protocol stacks and device drivers as user-level servers without modifying the kernel. We have completed a uniprocessor version of EMERALDS for the Motorola 68040 processor whose size is under 13 KBytes. Context switch takes under 12 ¯s and system calls have overhead just 1.8 ¯s...