The Revenge of the Overlay:
Automatic Compaction of OS Kernel Code via On-Demand Code Loading
Haifeng He,
Saumya Debray,
Gregory Andrews
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
Abstract
There is increasing interest in using general-purpose operating
systems, such as Linux, on embedded platforms. It is especially
important in embedded systems to use memory efficiently because
embedded processors often have limited physical memory. This paper
describes an automatic technique for reducing the memory footprint of
general-purpose operating systems on embedded platforms by keeping
infrequently executed code on secondary storage and loading such code
only if it is needed at run time. Our technique is based on an old
idea---memory overlays---and it does not require hardware or operating
system support for virtual memory. A prototype of the technique has
been implemented for the Linux kernel. We evaluate our approach with
two benchmark suites: MiBench and MediaBench, and a Web server application.
The experimental results show that our approach reduces memory
requirements for the Linux kernel code by about 53% with little degradation in
performance.