Code compaction of an operating system kernel

Haifeng He, John Trimble, Somu Perianayagam, Saumya Debray, Gregory Andrews

Research output: Chapter in Book/Report/Conference proceedingConference contribution

10 Scopus citations


General-purpose operating systems, such as Linux, are increasingly being used in embedded systems. Computational resources are usually limited, and embedded processors often have a limited amount of memory. This makes code size especially important. This paper describes techniques for automatically reducing the memory footprint of general-purpose operating systems on embedded platforms. The problem is complicated by the fact that kernel code tends to be quite different from ordinary application code, including the presence of a significant amount of hand-written assembly code, multiple entry points, implicit control flow paths involving interrupt handlers, and frequent indirect control flow via function pointers. We use a novel "approximate decompilation" technique to apply source-level program analysis to hand-written assembly code. A prototype implementation of our ideas on an Intel x86 platform, applied to a Linux kernel that has been configured to exclude unnecessary code, obtains a code size reduction of close to 24%.

Original languageEnglish (US)
Title of host publicationInternational Symposium on Code Generation and Optimization, CGO 2007
Number of pages13
StatePublished - Aug 13 2007
EventInternational Symposium on Code Generation and Optimization, CGO 2007 - San Jose, CA, United States
Duration: Mar 11 2007Mar 14 2007

Publication series

NameInternational Symposium on Code Generation and Optimization, CGO 2007


OtherInternational Symposium on Code Generation and Optimization, CGO 2007
CountryUnited States
CitySan Jose, CA

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Code compaction of an operating system kernel'. Together they form a unique fingerprint.

Cite this