TY - GEN
T1 - Code compaction of an operating system kernel
AU - He, Haifeng
AU - Trimble, John
AU - Perianayagam, Somu
AU - Debray, Saumya
AU - Andrews, Gregory
PY - 2007
Y1 - 2007
N2 - 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%.
AB - 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%.
UR - http://www.scopus.com/inward/record.url?scp=34547684384&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=34547684384&partnerID=8YFLogxK
U2 - 10.1109/CGO.2007.3l
DO - 10.1109/CGO.2007.3l
M3 - Conference contribution
AN - SCOPUS:34547684384
SN - 0769527647
SN - 9780769527642
T3 - International Symposium on Code Generation and Optimization, CGO 2007
SP - 283
EP - 295
BT - International Symposium on Code Generation and Optimization, CGO 2007
T2 - International Symposium on Code Generation and Optimization, CGO 2007
Y2 - 11 March 2007 through 14 March 2007
ER -