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

11 Scopus citations

Abstract

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
Pages283-295
Number of pages13
DOIs
StatePublished - 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

Other

OtherInternational Symposium on Code Generation and Optimization, CGO 2007
Country/TerritoryUnited States
CitySan Jose, CA
Period3/11/073/14/07

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