• DocumentCode
    2235882
  • Title

    Code Compaction of an Operating System Kernel

  • Author

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

  • Author_Institution
    Dept. of Comput. Sci., Arizona Univ., Tucson, AZ
  • fYear
    2007
  • fDate
    11-14 March 2007
  • Firstpage
    283
  • Lastpage
    298
  • 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%
  • Keywords
    Linux; embedded systems; operating system kernels; program diagnostics; Intel x86 platform; Linux kernel; approximate decompilation; code compaction; embedded processors; embedded systems; hand-written assembly code; operating system kernel; source-level program analysis; Assembly; Cellular phones; Compaction; Embedded system; Hardware; Kernel; Linux; Operating systems; Prototypes; Runtime;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2007. CGO '07. International Symposium on
  • Conference_Location
    San Jose, CA
  • Print_ISBN
    0-7695-2764-7
  • Type

    conf

  • DOI
    10.1109/CGO.2007.3
  • Filename
    4145122